mirror of
https://github.com/RocketChat/Rocket.Chat.git
synced 2025-12-28 06:47:25 +00:00
Chore: Move ddp-streamer micro service to its own sub-repo (#25246)
This commit is contained in:
parent
b70894833c
commit
1b9a5f0984
16
.github/workflows/build_and_test.yml
vendored
16
.github/workflows/build_and_test.yml
vendored
@ -368,7 +368,7 @@ jobs:
|
||||
run: yarn
|
||||
|
||||
- name: Build micro services
|
||||
run: yarn build:services
|
||||
run: yarn build
|
||||
|
||||
- name: E2E Test API
|
||||
env:
|
||||
@ -617,14 +617,14 @@ jobs:
|
||||
IMAGE_TAG: check
|
||||
run: |
|
||||
yarn
|
||||
yarn build:services
|
||||
yarn build
|
||||
|
||||
echo "Building Docker image for service: ${{ matrix.service }}:${IMAGE_TAG}"
|
||||
|
||||
docker build \
|
||||
--build-arg SERVICE=${{ matrix.service }} \
|
||||
-t rocketchat/${{ matrix.service }}-service:${IMAGE_TAG} \
|
||||
-f ./apps/meteor/ee/server/services/Dockerfile \
|
||||
-f ./ee/apps/ddp-streamer/Dockerfile \
|
||||
.
|
||||
|
||||
release-versions:
|
||||
@ -872,14 +872,20 @@ jobs:
|
||||
|
||||
# first install repo dependencies
|
||||
yarn
|
||||
yarn build:services
|
||||
yarn build
|
||||
|
||||
echo "Building Docker image for service: ${{ matrix.service }}:${IMAGE_TAG}"
|
||||
|
||||
if [[ "${{ matrix.service }}" == "ddp-streamer" ]]; then
|
||||
DOCKERFILE_PATH="./ee/apps/ddp-streamer/Dockerfile"
|
||||
else
|
||||
DOCKERFILE_PATH="./apps/meteor/ee/server/services/Dockerfile"
|
||||
fi
|
||||
|
||||
docker build \
|
||||
--build-arg SERVICE=${{ matrix.service }} \
|
||||
-t rocketchat/${{ matrix.service }}-service:${IMAGE_TAG} \
|
||||
-f ./apps/meteor/ee/server/services/Dockerfile \
|
||||
-f ${DOCKERFILE_PATH} \
|
||||
.
|
||||
|
||||
docker push rocketchat/${{ matrix.service }}-service:${IMAGE_TAG}
|
||||
|
||||
5
LICENSE
5
LICENSE
@ -2,8 +2,9 @@ Copyright (c) 2015-2022 Rocket.Chat Technologies Corp.
|
||||
|
||||
Portions of this software are licensed as follows:
|
||||
|
||||
* All content that resides under the "apps/meteor/ee/" directory of this repository, if
|
||||
that directory exists, is licensed under the license defined in "apps/meteor/ee/LICENSE".
|
||||
* All content that resides under the "apps/meteor/ee/" and "ee/" directories
|
||||
of this repository, if that directory exists, is licensed under the license
|
||||
defined in "apps/meteor/ee/LICENSE".
|
||||
* All third-party components incorporated into the Rocket.Chat Software are
|
||||
licensed under the original license provided by the owner of the applicable
|
||||
component.
|
||||
|
||||
@ -69,6 +69,7 @@ function killAllProcesses(mainExitCode) {
|
||||
}
|
||||
|
||||
function startProcess(opts) {
|
||||
console.log('Starting process', opts.name, opts.command, opts.params, opts.options.cwd);
|
||||
const proc = spawn(opts.command, opts.params, opts.options);
|
||||
processes.push(proc);
|
||||
|
||||
@ -125,20 +126,25 @@ function startRocketChat() {
|
||||
}
|
||||
|
||||
async function startMicroservices() {
|
||||
const waitStart = (resolve) => (message) => {
|
||||
if (message.toString().match('NetworkBroker started successfully')) {
|
||||
return resolve();
|
||||
}
|
||||
};
|
||||
const startService = (name) => {
|
||||
return new Promise((resolve) => {
|
||||
const waitStart = (message) => {
|
||||
if (message.toString().match('NetworkBroker started successfully')) {
|
||||
return resolve();
|
||||
}
|
||||
};
|
||||
const cwd =
|
||||
name === 'ddp-streamer'
|
||||
? path.resolve(srcDir, '..', '..', 'ee', 'apps', name, 'dist', 'ee', 'apps', name)
|
||||
: path.resolve(srcDir, 'ee', 'server', 'services', 'dist', 'ee', 'server', 'services', name);
|
||||
|
||||
startProcess({
|
||||
name: `${name} service`,
|
||||
command: 'node',
|
||||
params: ['service.js'],
|
||||
onData: waitStart,
|
||||
params: [name === 'ddp-streamer' ? 'src/service.js' : 'service.js'],
|
||||
onData: waitStart(resolve),
|
||||
options: {
|
||||
cwd: path.resolve(srcDir, 'ee', 'server', 'services', 'dist', 'ee', 'server', 'services', name),
|
||||
cwd,
|
||||
env: {
|
||||
...appOptions.env,
|
||||
...process.env,
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
import '../../startup/broker';
|
||||
|
||||
import { api } from '../../../../server/sdk/api';
|
||||
import { DDPStreamer } from './DDPStreamer';
|
||||
|
||||
api.registerService(new DDPStreamer());
|
||||
@ -1,25 +0,0 @@
|
||||
import type { ISubscription, IRoom, IUser, ISetting } from '@rocket.chat/core-typings';
|
||||
|
||||
import { NotificationsModule } from '../../../../../server/modules/notifications/notifications.module';
|
||||
import { Stream } from '../Streamer';
|
||||
import { Collections, getConnection } from '../../mongo';
|
||||
import { RoomsRaw } from '../../../../../app/models/server/raw/Rooms';
|
||||
import { SubscriptionsRaw } from '../../../../../app/models/server/raw/Subscriptions';
|
||||
import { UsersRaw } from '../../../../../app/models/server/raw/Users';
|
||||
import { SettingsRaw } from '../../../../../app/models/server/raw/Settings';
|
||||
|
||||
const notifications = new NotificationsModule(Stream);
|
||||
|
||||
getConnection().then((db) => {
|
||||
const Users = new UsersRaw(db.collection<IUser>(Collections.User));
|
||||
notifications.configure({
|
||||
Rooms: new RoomsRaw(db.collection<IRoom>(Collections.Rooms)),
|
||||
Subscriptions: new SubscriptionsRaw(db.collection<ISubscription>(Collections.Subscriptions), {
|
||||
Users,
|
||||
}),
|
||||
Users,
|
||||
Settings: new SettingsRaw(db.collection<ISetting>(Collections.Settings)),
|
||||
});
|
||||
});
|
||||
|
||||
export default notifications;
|
||||
@ -1,7 +1,7 @@
|
||||
import { IVoipCallServerConfig, IVoipManagementServerConfig, ServerType, IRegistrationInfo } from '@rocket.chat/core-typings';
|
||||
import type { IVoipConnectorResult, IManagementServerConnectionStatus } from '@rocket.chat/core-typings';
|
||||
|
||||
import { CommandHandler } from '../../services/voip/connector/asterisk/CommandHandler';
|
||||
import type { CommandHandler } from '../../services/voip/connector/asterisk/CommandHandler';
|
||||
|
||||
export interface IVoipService {
|
||||
getServerConfigData(serverType: ServerType): IVoipCallServerConfig | IVoipManagementServerConfig;
|
||||
|
||||
16
ee/apps/ddp-streamer/.eslintrc
Normal file
16
ee/apps/ddp-streamer/.eslintrc
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"extends": ["@rocket.chat/eslint-config"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["**/*.spec.js", "**/*.spec.jsx"],
|
||||
"env": {
|
||||
"jest": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"ignorePatterns": ["**/dist"],
|
||||
"plugins": ["jest"],
|
||||
"env": {
|
||||
"jest/globals": true
|
||||
}
|
||||
}
|
||||
32
ee/apps/ddp-streamer/Dockerfile
Normal file
32
ee/apps/ddp-streamer/Dockerfile
Normal file
@ -0,0 +1,32 @@
|
||||
FROM node:14.18.3-alpine
|
||||
|
||||
ARG SERVICE
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY ./packages/core-typings/package.json packages/core-typings/package.json
|
||||
COPY ./packages/core-typings/dist packages/core-typings/dist
|
||||
COPY ./packages/rest-typings/package.json packages/rest-typings/package.json
|
||||
COPY ./packages/rest-typings/dist packages/rest-typings/dist
|
||||
COPY ./packages/ui-contexts/package.json packages/ui-contexts/package.json
|
||||
COPY ./packages/ui-contexts/dist packages/ui-contexts/dist
|
||||
|
||||
COPY ./ee/apps/${SERVICE}/dist .
|
||||
|
||||
COPY ./package.json .
|
||||
COPY ./yarn.lock .
|
||||
COPY ./.yarnrc.yml .
|
||||
COPY ./.yarn/plugins .yarn/plugins
|
||||
COPY ./.yarn/releases .yarn/releases
|
||||
COPY ./ee/apps/${SERVICE}/package.json ee/apps/${SERVICE}/package.json
|
||||
|
||||
ENV NODE_ENV=production \
|
||||
PORT=3000
|
||||
|
||||
WORKDIR /app/ee/apps/${SERVICE}
|
||||
|
||||
RUN yarn workspaces focus --production
|
||||
|
||||
EXPOSE 3000 9458
|
||||
|
||||
CMD ["node", "src/service.js"]
|
||||
50
ee/apps/ddp-streamer/package.json
Normal file
50
ee/apps/ddp-streamer/package.json
Normal file
@ -0,0 +1,50 @@
|
||||
{
|
||||
"name": "@rocket.chat/ddp-streamer",
|
||||
"private": true,
|
||||
"version": "0.0.1",
|
||||
"description": "Rocket.Chat DDP-Streamer service",
|
||||
"scripts": {
|
||||
"build": "tsc -p tsconfig.json",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [
|
||||
"rocketchat"
|
||||
],
|
||||
"author": "Rocket.Chat",
|
||||
"dependencies": {
|
||||
"@rocket.chat/apps-engine": "^1.31.0",
|
||||
"@rocket.chat/core-typings": "workspace:^",
|
||||
"@rocket.chat/emitter": "~0.31.9",
|
||||
"@rocket.chat/rest-typings": "workspace:^",
|
||||
"@rocket.chat/string-helpers": "~0.31.9",
|
||||
"@rocket.chat/ui-contexts": "workspace:^",
|
||||
"colorette": "^1.3.0",
|
||||
"ejson": "^2.2.2",
|
||||
"eventemitter3": "^4.0.7",
|
||||
"fibers": "^5.0.1",
|
||||
"jaeger-client": "^3.19.0",
|
||||
"moleculer": "^0.14.19",
|
||||
"mongodb": "^3.6.10",
|
||||
"nats": "^2.4.0",
|
||||
"pino": "^7.9.2",
|
||||
"sharp": "^0.30.4",
|
||||
"uuid": "^7.0.3",
|
||||
"ws": "^8.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rocket.chat/eslint-config": "workspace:^",
|
||||
"@types/ejson": "^2.1.3",
|
||||
"@types/meteor": "1.4.81",
|
||||
"@types/mongodb": "^3.6.20",
|
||||
"@types/node": "^14.18.12",
|
||||
"@types/sharp": "^0.30.2",
|
||||
"@types/uuid": "^8.3.4",
|
||||
"@types/ws": "^8.5.3",
|
||||
"pino-pretty": "^7.6.0",
|
||||
"typescript": "~4.3.5"
|
||||
},
|
||||
"main": "./dist/service.js",
|
||||
"files": [
|
||||
"/dist"
|
||||
]
|
||||
}
|
||||
@ -3,15 +3,15 @@ import url from 'url';
|
||||
|
||||
import WebSocket from 'ws';
|
||||
|
||||
import { ListenersModule } from '../../../../server/modules/listeners/listeners.module';
|
||||
import { StreamerCentral } from '../../../../server/modules/streamer/streamer.module';
|
||||
import { MeteorService } from '../../../../server/sdk';
|
||||
import { ServiceClass } from '../../../../server/sdk/types/ServiceClass';
|
||||
import { ListenersModule } from '../../../../apps/meteor/server/modules/listeners/listeners.module';
|
||||
import { StreamerCentral } from '../../../../apps/meteor/server/modules/streamer/streamer.module';
|
||||
import { MeteorService } from '../../../../apps/meteor/server/sdk';
|
||||
import { ServiceClass } from '../../../../apps/meteor/server/sdk/types/ServiceClass';
|
||||
import { Client } from './Client';
|
||||
import { events, server } from './configureServer';
|
||||
import { DDP_EVENTS } from './constants';
|
||||
import { Autoupdate } from './lib/Autoupdate';
|
||||
import notifications from './streams';
|
||||
import { notifications } from './streams';
|
||||
|
||||
const { PORT: port = 4000 } = process.env;
|
||||
|
||||
@ -8,9 +8,9 @@ import { DDP_EVENTS } from './constants';
|
||||
import { Publication } from './Publication';
|
||||
import { Client } from './Client';
|
||||
import { IPacket } from './types/IPacket';
|
||||
import { MeteorService } from '../../../../server/sdk';
|
||||
import { isMeteorError, MeteorError } from '../../../../server/sdk/errors';
|
||||
import { Logger } from '../../../../server/lib/logger/Logger';
|
||||
import { MeteorService } from '../../../../apps/meteor/server/sdk';
|
||||
import { isMeteorError, MeteorError } from '../../../../apps/meteor/server/sdk/errors';
|
||||
import { Logger } from '../../../../apps/meteor/server/lib/logger/Logger';
|
||||
|
||||
const logger = new Logger('DDP-Streamer');
|
||||
|
||||
@ -4,8 +4,8 @@ import type { DDPSubscription, Connection, TransformMessage } from 'meteor/rocke
|
||||
import { server } from './configureServer';
|
||||
import { DDP_EVENTS } from './constants';
|
||||
import { isEmpty } from './lib/utils';
|
||||
import { Streamer, StreamerCentral } from '../../../../server/modules/streamer/streamer.module';
|
||||
import { api } from '../../../../server/sdk/api';
|
||||
import { Streamer, StreamerCentral } from '../../../../apps/meteor/server/modules/streamer/streamer.module';
|
||||
import { api } from '../../../../apps/meteor/server/sdk/api';
|
||||
|
||||
StreamerCentral.on('broadcast', (name, eventName, args) => {
|
||||
api.broadcast('stream', [name, eventName, args]);
|
||||
@ -3,10 +3,10 @@ import { EventEmitter } from 'events';
|
||||
import { UserStatus } from '@rocket.chat/core-typings';
|
||||
|
||||
import { DDP_EVENTS, WS_ERRORS } from './constants';
|
||||
import { Account, Presence, MeteorService } from '../../../../server/sdk';
|
||||
import { Account, Presence, MeteorService } from '../../../../apps/meteor/server/sdk';
|
||||
import { Server } from './Server';
|
||||
import { api } from '../../../../server/sdk/api';
|
||||
import { MeteorError } from '../../../../server/sdk/errors';
|
||||
import { api } from '../../../../apps/meteor/server/sdk/api';
|
||||
import { MeteorError } from '../../../../apps/meteor/server/sdk/errors';
|
||||
import { Autoupdate } from './lib/Autoupdate';
|
||||
|
||||
export const server = new Server();
|
||||
@ -1,8 +1,8 @@
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
import { AutoUpdateRecord } from '../../../../../server/sdk/types/IMeteor';
|
||||
import { AutoUpdateRecord } from '../../../../../apps/meteor/server/sdk/types/IMeteor';
|
||||
|
||||
export const Autoupdate = new (class Autoupdate extends EventEmitter {
|
||||
class AutoupdateSingleton extends EventEmitter {
|
||||
private versions = new Map<string, Omit<AutoUpdateRecord, '_id'>>();
|
||||
|
||||
public updateVersion(record: AutoUpdateRecord): void {
|
||||
@ -15,4 +15,6 @@ export const Autoupdate = new (class Autoupdate extends EventEmitter {
|
||||
public getVersions(): Map<string, Omit<AutoUpdateRecord, '_id'>> {
|
||||
return this.versions;
|
||||
}
|
||||
})();
|
||||
}
|
||||
|
||||
export const Autoupdate = new AutoupdateSingleton();
|
||||
6
ee/apps/ddp-streamer/src/service.ts
Executable file
6
ee/apps/ddp-streamer/src/service.ts
Executable file
@ -0,0 +1,6 @@
|
||||
import '../../../../apps/meteor/ee/server/startup/broker';
|
||||
|
||||
import { api } from '../../../../apps/meteor/server/sdk/api';
|
||||
import { DDPStreamer } from './DDPStreamer';
|
||||
|
||||
api.registerService(new DDPStreamer());
|
||||
23
ee/apps/ddp-streamer/src/streams.ts
Normal file
23
ee/apps/ddp-streamer/src/streams.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import type { ISubscription, IRoom, IUser, ISetting } from '@rocket.chat/core-typings';
|
||||
|
||||
import { NotificationsModule } from '../../../../apps/meteor/server/modules/notifications/notifications.module';
|
||||
import { Stream } from './Streamer';
|
||||
import { Collections, getConnection } from '../../../../apps/meteor/ee/server/services/mongo';
|
||||
import { RoomsRaw } from '../../../../apps/meteor/app/models/server/raw/Rooms';
|
||||
import { SubscriptionsRaw } from '../../../../apps/meteor/app/models/server/raw/Subscriptions';
|
||||
import { UsersRaw } from '../../../../apps/meteor/app/models/server/raw/Users';
|
||||
import { SettingsRaw } from '../../../../apps/meteor/app/models/server/raw/Settings';
|
||||
|
||||
export const notifications = new NotificationsModule(Stream);
|
||||
|
||||
getConnection().then((db) => {
|
||||
const Users = new UsersRaw(db.collection<IUser>(Collections.User));
|
||||
notifications.configure({
|
||||
Rooms: new RoomsRaw(db.collection<IRoom>(Collections.Rooms)),
|
||||
Subscriptions: new SubscriptionsRaw(db.collection<ISubscription>(Collections.Subscriptions), {
|
||||
Users,
|
||||
}),
|
||||
Users,
|
||||
Settings: new SettingsRaw(db.collection<ISetting>(Collections.Settings)),
|
||||
});
|
||||
});
|
||||
29
ee/apps/ddp-streamer/tsconfig.json
Normal file
29
ee/apps/ddp-streamer/tsconfig.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"extends": "../../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"target": "es2018",
|
||||
"lib": ["esnext", "dom"],
|
||||
"allowJs": true,
|
||||
"checkJs": false,
|
||||
"incremental": true,
|
||||
|
||||
/* Strict Type-Checking Options */
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"strictPropertyInitialization": false,
|
||||
|
||||
/* Additional Checks */
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noImplicitReturns": false,
|
||||
"noFallthroughCasesInSwitch": false,
|
||||
|
||||
/* Module Resolution Options */
|
||||
"outDir": "./dist",
|
||||
"importsNotUsedAsValues": "preserve",
|
||||
"declaration": false,
|
||||
"declarationMap": false
|
||||
},
|
||||
"include": ["./src/**/*", "../../../apps/meteor/definition", "./definition"],
|
||||
"exclude": ["./dist", "./ecosystem.config.js"]
|
||||
}
|
||||
@ -21,6 +21,8 @@
|
||||
"workspaces": [
|
||||
"apps/*",
|
||||
"packages/*",
|
||||
"ee/apps/*",
|
||||
"ee/packages/*",
|
||||
"apps/meteor/ee/server/services"
|
||||
],
|
||||
"repository": {
|
||||
|
||||
104
yarn.lock
104
yarn.lock
@ -3638,6 +3638,41 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rocket.chat/ddp-streamer@workspace:ee/apps/ddp-streamer":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@rocket.chat/ddp-streamer@workspace:ee/apps/ddp-streamer"
|
||||
dependencies:
|
||||
"@rocket.chat/apps-engine": ^1.31.0
|
||||
"@rocket.chat/core-typings": "workspace:^"
|
||||
"@rocket.chat/emitter": ~0.31.9
|
||||
"@rocket.chat/eslint-config": "workspace:^"
|
||||
"@rocket.chat/rest-typings": "workspace:^"
|
||||
"@rocket.chat/string-helpers": ~0.31.9
|
||||
"@rocket.chat/ui-contexts": "workspace:^"
|
||||
"@types/ejson": ^2.1.3
|
||||
"@types/meteor": 1.4.81
|
||||
"@types/mongodb": ^3.6.20
|
||||
"@types/node": ^14.18.12
|
||||
"@types/sharp": ^0.30.2
|
||||
"@types/uuid": ^8.3.4
|
||||
"@types/ws": ^8.5.3
|
||||
colorette: ^1.3.0
|
||||
ejson: ^2.2.2
|
||||
eventemitter3: ^4.0.7
|
||||
fibers: ^5.0.1
|
||||
jaeger-client: ^3.19.0
|
||||
moleculer: ^0.14.19
|
||||
mongodb: ^3.6.10
|
||||
nats: ^2.4.0
|
||||
pino: ^7.9.2
|
||||
pino-pretty: ^7.6.0
|
||||
sharp: ^0.30.4
|
||||
typescript: ~4.3.5
|
||||
uuid: ^7.0.3
|
||||
ws: ^8.5.0
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@rocket.chat/emitter@npm:^0.31.11, @rocket.chat/emitter@npm:~0.31.11, @rocket.chat/emitter@npm:~0.31.9":
|
||||
version: 0.31.11
|
||||
resolution: "@rocket.chat/emitter@npm:0.31.11"
|
||||
@ -6964,6 +6999,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/sharp@npm:^0.30.2":
|
||||
version: 0.30.2
|
||||
resolution: "@types/sharp@npm:0.30.2"
|
||||
dependencies:
|
||||
"@types/node": "*"
|
||||
checksum: dc6b332c309e1eb62e98b62f92829c4b06c3adb474c1ee8b504eb95e6d43be8804b8d541874d0769160595fdf46f7a7a0fe544a3659482ad0a19ac700944f3a4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/sinonjs__fake-timers@npm:^6.0.2":
|
||||
version: 6.0.4
|
||||
resolution: "@types/sinonjs__fake-timers@npm:6.0.4"
|
||||
@ -7121,7 +7165,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/uuid@npm:^8.3.1":
|
||||
"@types/uuid@npm:^8.3.1, @types/uuid@npm:^8.3.4":
|
||||
version: 8.3.4
|
||||
resolution: "@types/uuid@npm:8.3.4"
|
||||
checksum: 6f11f3ff70f30210edaa8071422d405e9c1d4e53abbe50fdce365150d3c698fe7bbff65c1e71ae080cbfb8fded860dbb5e174da96fdbbdfcaa3fb3daa474d20f
|
||||
@ -11252,7 +11296,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color@npm:^4.0.1":
|
||||
"color@npm:^4.0.1, color@npm:^4.2.3":
|
||||
version: 4.2.3
|
||||
resolution: "color@npm:4.2.3"
|
||||
dependencies:
|
||||
@ -11262,7 +11306,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"colorette@npm:^1.4.0":
|
||||
"colorette@npm:^1.3.0, colorette@npm:^1.4.0":
|
||||
version: 1.4.0
|
||||
resolution: "colorette@npm:1.4.0"
|
||||
checksum: 01c3c16058b182a4ab4c126a65a75faa4d38a20fa7c845090b25453acec6c371bb2c5dceb0a2338511f17902b9d1a9af0cadd8509c9403894b79311032c256c3
|
||||
@ -13176,7 +13220,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"detect-libc@npm:^2.0.0":
|
||||
"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "detect-libc@npm:2.0.1"
|
||||
checksum: ccb05fcabbb555beb544d48080179c18523a343face9ee4e1a86605a8715b4169f94d663c21a03c310ac824592f2ba9a5270218819bb411ad7be578a527593d7
|
||||
@ -23042,7 +23086,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"moleculer@npm:^0.14.20":
|
||||
"moleculer@npm:^0.14.19, moleculer@npm:^0.14.20":
|
||||
version: 0.14.20
|
||||
resolution: "moleculer@npm:0.14.20"
|
||||
dependencies:
|
||||
@ -23610,7 +23654,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-addon-api@npm:^4.2.0":
|
||||
"node-addon-api@npm:^4.2.0, node-addon-api@npm:^4.3.0":
|
||||
version: 4.3.0
|
||||
resolution: "node-addon-api@npm:4.3.0"
|
||||
dependencies:
|
||||
@ -25460,7 +25504,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pino-pretty@npm:^7.6.1":
|
||||
"pino-pretty@npm:^7.6.0, pino-pretty@npm:^7.6.1":
|
||||
version: 7.6.1
|
||||
resolution: "pino-pretty@npm:7.6.1"
|
||||
dependencies:
|
||||
@ -25490,7 +25534,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pino@npm:^7.10.0":
|
||||
"pino@npm:^7.10.0, pino@npm:^7.9.2":
|
||||
version: 7.10.0
|
||||
resolution: "pino@npm:7.10.0"
|
||||
dependencies:
|
||||
@ -26549,6 +26593,29 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prebuild-install@npm:^7.0.1":
|
||||
version: 7.1.0
|
||||
resolution: "prebuild-install@npm:7.1.0"
|
||||
dependencies:
|
||||
detect-libc: ^2.0.0
|
||||
expand-template: ^2.0.3
|
||||
github-from-package: 0.0.0
|
||||
minimist: ^1.2.3
|
||||
mkdirp-classic: ^0.5.3
|
||||
napi-build-utils: ^1.0.1
|
||||
node-abi: ^3.3.0
|
||||
npmlog: ^4.0.1
|
||||
pump: ^3.0.0
|
||||
rc: ^1.2.7
|
||||
simple-get: ^4.0.0
|
||||
tar-fs: ^2.0.0
|
||||
tunnel-agent: ^0.6.0
|
||||
bin:
|
||||
prebuild-install: bin.js
|
||||
checksum: 204f2d89c6d6179fa1039036514aa72f7d0b537e421ef72c40840286e318f41489f00f22c6acc725cce6e10d43825b69dcabeaadfc917db781c58cd56fc25f90
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"precond@npm:0.2":
|
||||
version: 0.2.3
|
||||
resolution: "precond@npm:0.2.3"
|
||||
@ -29377,7 +29444,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:7.x, semver@npm:^7.2, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5":
|
||||
"semver@npm:7.x, semver@npm:^7.2, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7":
|
||||
version: 7.3.7
|
||||
resolution: "semver@npm:7.3.7"
|
||||
dependencies:
|
||||
@ -29625,6 +29692,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"sharp@npm:^0.30.4":
|
||||
version: 0.30.4
|
||||
resolution: "sharp@npm:0.30.4"
|
||||
dependencies:
|
||||
color: ^4.2.3
|
||||
detect-libc: ^2.0.1
|
||||
node-addon-api: ^4.3.0
|
||||
node-gyp: latest
|
||||
prebuild-install: ^7.0.1
|
||||
semver: ^7.3.7
|
||||
simple-get: ^4.0.1
|
||||
tar-fs: ^2.1.1
|
||||
tunnel-agent: ^0.6.0
|
||||
checksum: 80070d8cad5fe20e7bbb2a1cfddda3f7d421f6af8302c05af8307c0b3b1972e6ed2690563e90b2897b4b499b32967d28a15e37f5d196a1f8867d630609052211
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"shebang-command@npm:^1.2.0":
|
||||
version: 1.2.0
|
||||
resolution: "shebang-command@npm:1.2.0"
|
||||
@ -29718,7 +29802,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"simple-get@npm:^4.0.0":
|
||||
"simple-get@npm:^4.0.0, simple-get@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "simple-get@npm:4.0.1"
|
||||
dependencies:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user