Renamed the coordinator app to wss (web socket server)

This commit is contained in:
Eric Allam
2023-01-05 16:30:02 +00:00
parent 87c781ca16
commit f5ea64ef4f
22 changed files with 143 additions and 151 deletions
+3 -3
View File
@@ -56,13 +56,13 @@ windows:
- cwd: /Users/eric/code/triggerdotdev/trigger.dev
commands:
- exec: ./scripts/proxy-pizzly.sh <your-pizzly-dev>
- title: coordinator and examples
- title: wss and examples
layout:
split_direction: horizontal
panes:
- cwd: /Users/eric/code/triggerdotdev/trigger.dev/apps/coordinator
- cwd: /Users/eric/code/triggerdotdev/trigger.dev/apps/wss
commands:
- exec: pnpm run dev
- exec: LOG_LEVEL=debug pnpm run dev
- cwd: /Users/eric/code/triggerdotdev/trigger.dev/examples
- title: emails
layout:
+2 -2
View File
@@ -182,10 +182,10 @@ pnpm run docker:db
pnpm run dev --filter=webapp
```
3. Run the coordinator
3. Run the Web Socket Server
```bash
pnpm run dev --filter=coordinator
pnpm run dev --filter=wss
```
4. Run the @trigger.dev/sdk:dev
@@ -1,8 +1,8 @@
import { JsonSchema } from "@trigger.dev/common-schemas";
import { DeliverEmailSchema } from "emails";
import type { CoordinatorCatalog, PlatformCatalog } from "internal-platform";
import type { WSSCatalog, PlatformCatalog } from "internal-platform";
import {
coordinatorCatalog,
wssCatalog,
platformCatalog,
ZodPublisher,
ZodPubSub,
@@ -35,7 +35,7 @@ import { WorkflowRunDisconnected } from "./runs/runDisconnected.server";
let pulsarClient: PulsarClient;
let triggerPublisher: ZodPublisher<PlatformCatalog>;
let triggerSubscriber: ZodSubscriber<CoordinatorCatalog>;
let triggerSubscriber: ZodSubscriber<WSSCatalog>;
let internalPubSub: ZodPubSub<typeof InternalCatalog>;
let requestPubSub: ZodPubSub<typeof RequestCatalog>;
@@ -128,15 +128,15 @@ async function createTriggerPublisher() {
}
async function createTriggerSubscriber() {
const subscriber = new ZodSubscriber<CoordinatorCatalog>({
const subscriber = new ZodSubscriber<WSSCatalog>({
client: pulsarClient,
config: {
topic: "persistent://public/default/coordinator-events",
topic: "persistent://public/default/wss-events",
subscription: "webapp",
subscriptionType: "KeyShared",
subscriptionInitialPosition: "Earliest",
},
schema: coordinatorCatalog,
schema: wssCatalog,
handlers: {
LOG_MESSAGE: async (id, data, properties) => {
await logMessageInRun(
@@ -1,7 +1,7 @@
{
"name": "coordinator",
"name": "wss",
"version": "1.0.0",
"description": "Coordinates with host sockets and Apache Pulsar to route messages to and from workflows",
"description": "Web Socket server that hosts connect to and Apache Pulsar to route messages to and from workflows",
"main": "dist/index.js",
"scripts": {
"clean": "rimraf dist",
@@ -1,8 +1,4 @@
import {
coordinatorCatalog,
CoordinatorCatalog,
ZodPublisher,
} from "internal-platform";
import { wssCatalog, WSSCatalog, ZodPublisher } from "internal-platform";
import { createServer } from "node:http";
import process from "node:process";
import { WebSocketServer } from "ws";
@@ -36,11 +32,11 @@ process.on("SIGINT", async (code) => {
// main
async function main() {
const triggerPublisher = new ZodPublisher<CoordinatorCatalog>({
schema: coordinatorCatalog,
const triggerPublisher = new ZodPublisher<WSSCatalog>({
schema: wssCatalog,
client: pulsarClient,
config: {
topic: `persistent://public/default/coordinator-events`,
topic: `persistent://public/default/wss-events`,
},
});
@@ -5,7 +5,7 @@ import {
ZodRPC,
} from "internal-bridge";
import {
CoordinatorCatalog,
WSSCatalog,
platformCatalog,
PlatformCatalog,
ZodPublisher,
@@ -16,7 +16,7 @@ import { pulsarClient } from "./pulsarClient";
export type WorkflowRunControllerOptions = {
hostRPC: ZodRPC<typeof HostRPCSchema, typeof ServerRPCSchema>;
publisher: ZodPublisher<CoordinatorCatalog>;
publisher: ZodPublisher<WSSCatalog>;
runId: string;
metadata: {
workflowId: string;
@@ -29,7 +29,7 @@ export type WorkflowRunControllerOptions = {
export class WorkflowRunController {
#runId: string;
#hostRPC: ZodRPC<typeof HostRPCSchema, typeof ServerRPCSchema>;
#publisher: ZodPublisher<CoordinatorCatalog>;
#publisher: ZodPublisher<WSSCatalog>;
#subscriber: ZodSubscriber<Omit<PlatformCatalog, "TRIGGER_WORKFLOW">>;
#metadata: {
workflowId: string;
@@ -166,9 +166,9 @@ export class WorkflowRunController {
this.#logger.debug("Workflow run closed");
}
async publish<TEventName extends keyof CoordinatorCatalog>(
async publish<TEventName extends keyof WSSCatalog>(
eventName: TEventName,
data: z.infer<CoordinatorCatalog[TEventName]["data"]>
data: z.infer<WSSCatalog[TEventName]["data"]>
) {
this.#logger.debug(`Publishing event ${eventName} with data`, data);
@@ -6,7 +6,7 @@ import {
ZodRPC,
} from "internal-bridge";
import {
CoordinatorCatalog,
WSSCatalog,
InternalApiClient,
MessageCatalogSchema,
platformCatalog,
@@ -32,7 +32,7 @@ export class TriggerServer {
#organizationId?: string;
#isInitialized = false;
#triggerSubscriber?: ZodSubscriber<PlatformCatalog>;
#triggerPublisher: ZodPublisher<CoordinatorCatalog>;
#triggerPublisher: ZodPublisher<WSSCatalog>;
#apiClient: InternalApiClient;
#workflowId?: string;
#apiKey: string;
@@ -43,7 +43,7 @@ export class TriggerServer {
constructor(
socket: WebSocket,
apiKey: string,
publisher: ZodPublisher<CoordinatorCatalog>
publisher: ZodPublisher<WSSCatalog>
) {
this.#socket = socket;
this.#apiKey = apiKey;
@@ -329,7 +329,7 @@ export class TriggerServer {
client: pulsarClient,
config: {
topic: `persistent://public/default/workflow-triggers`,
subscription: `coordinator-${this.#workflowId}`,
subscription: `wss-${this.#workflowId}`,
subscriptionType: "Shared",
subscriptionInitialPosition: "Earliest",
},
+1 -1
View File
@@ -2,7 +2,7 @@
"private": true,
"name": "internal-bridge",
"version": "0.0.1",
"description": "Common code for both the @trigger.dev/sdk and the coordinator server",
"description": "Common code for both the @trigger.dev/sdk and the wss",
"main": "./src/index.ts",
"types": "./src/index.ts",
"devDependencies": {
@@ -1,15 +0,0 @@
import { coordinator as integrationRequests } from "../schemas/integrationRequests";
import { coordinator as workflowRuns } from "../schemas/workflowRuns";
import { coordinator as logs } from "../schemas/logs";
import { coordinator as customEvents } from "../schemas/customEvents";
import { coordinator as delays } from "../schemas/delays";
const Catalog = {
...integrationRequests,
...workflowRuns,
...logs,
...customEvents,
...delays,
};
export default Catalog;
@@ -0,0 +1,15 @@
import { wss as integrationRequests } from "../schemas/integrationRequests";
import { wss as workflowRuns } from "../schemas/workflowRuns";
import { wss as logs } from "../schemas/logs";
import { wss as customEvents } from "../schemas/customEvents";
import { wss as delays } from "../schemas/delays";
const Catalog = {
...integrationRequests,
...workflowRuns,
...logs,
...customEvents,
...delays,
};
export default Catalog;
@@ -1,13 +1,13 @@
export type { MessageCatalogSchema } from "./messageCatalogSchema";
import coordinatorCatalog from "./catalogs/coordinator";
import wssCatalog from "./catalogs/wss";
import platformCatalog from "./catalogs/platform";
type CoordinatorCatalog = typeof coordinatorCatalog;
type WSSCatalog = typeof wssCatalog;
type PlatformCatalog = typeof platformCatalog;
export type { CoordinatorCatalog, PlatformCatalog };
export { coordinatorCatalog, platformCatalog };
export type { WSSCatalog, PlatformCatalog };
export { wssCatalog, platformCatalog };
export * from "./zodPublisher";
export * from "./zodSubscriber";
export * from "./zodPubSub";
@@ -2,7 +2,7 @@ import { z } from "zod";
import { CustomEventSchema } from "@trigger.dev/common-schemas";
import { WorkflowRunEventPropertiesSchema } from "../sharedSchemas";
export const coordinator = {
export const wss = {
TRIGGER_CUSTOM_EVENT: {
data: z.object({
key: z.string(),
@@ -5,7 +5,7 @@ import {
WorkflowSendRunEventPropertiesSchema,
} from "../sharedSchemas";
export const coordinator = {
export const wss = {
INITIALIZE_DELAY: {
data: z.object({
key: z.string(),
@@ -24,7 +24,7 @@ export const platform = {
},
};
export const coordinator = {
export const wss = {
SEND_INTEGRATION_REQUEST: {
data: z.object({
key: z.string(),
@@ -2,7 +2,7 @@ import { LogMessageSchema } from "@trigger.dev/common-schemas";
import { z } from "zod";
import { WorkflowSendRunEventPropertiesSchema } from "../sharedSchemas";
export const coordinator = {
export const wss = {
LOG_MESSAGE: {
data: z.object({
key: z.string(),
@@ -2,7 +2,7 @@ import { ErrorSchema } from "@trigger.dev/common-schemas";
import { z } from "zod";
import { WorkflowSendRunEventPropertiesSchema } from "../sharedSchemas";
export const coordinator = {
export const wss = {
WORKFLOW_RUN_COMPLETE: {
data: z.object({
output: z.string(),
+92 -96
View File
@@ -26,45 +26,6 @@ importers:
tsx: 3.12.1
turbo: 1.6.3
apps/coordinator:
specifiers:
'@trigger.dev/common-schemas': workspace:*
'@trigger.dev/tsconfig': workspace:*
'@types/debug': ^4.1.7
'@types/node': ^18.11.9
'@types/uuid': ^9.0.0
'@types/ws': ^8.5.3
dotenv: ^16.0.3
evt: ^2.4.13
internal-bridge: workspace:*
internal-platform: workspace:*
pulsar-client: ^1.7.0
rimraf: ^3.0.2
tsup: ^6.5.0
typescript: ^4.9.4
uuid: ^9.0.0
ws: ^8.11.0
zod: ^3.20.2
dependencies:
'@trigger.dev/common-schemas': link:../../packages/common-schemas
evt: 2.4.13
internal-bridge: link:../../packages/internal-bridge
internal-platform: link:../../packages/internal-platform
pulsar-client: 1.7.0
uuid: 9.0.0
ws: 8.11.0
zod: 3.20.2
devDependencies:
'@trigger.dev/tsconfig': link:../../config-packages/tsconfig
'@types/debug': 4.1.7
'@types/node': 18.11.11
'@types/uuid': 9.0.0
'@types/ws': 8.5.3
dotenv: 16.0.3
rimraf: 3.0.2
tsup: 6.5.0_typescript@4.9.4
typescript: 4.9.4
apps/docs:
specifiers:
mintlify: ^1.3.0
@@ -214,7 +175,7 @@ importers:
'@aws-sdk/client-s3': 3.226.0
'@aws-sdk/s3-request-presigner': 3.226.0
'@cfworker/json-schema': 1.12.5
'@codemirror/autocomplete': 6.3.4_jvia4rcxqiacrvood3734bhyuy
'@codemirror/autocomplete': 6.3.4_4npvozs3agsv66jx2b7pfvr53q
'@codemirror/commands': 6.1.2
'@codemirror/lang-javascript': 6.1.1
'@codemirror/lang-json': 6.0.1
@@ -238,7 +199,7 @@ importers:
'@tailwindcss/forms': 0.5.3_tailwindcss@3.1.8
'@tanstack/react-table': 8.7.0_biqbaboplfbrettd7655fr4n2y
'@trigger.dev/common-schemas': link:../../packages/common-schemas
'@uiw/react-codemirror': 4.17.1_c746qxthrd2ism2rvn4crnq5om
'@uiw/react-codemirror': 4.17.1_c6ric56h4625lhpbtenqifztqq
bcryptjs: 2.4.3
classnames: 2.3.2
clsx: 1.2.1
@@ -350,6 +311,45 @@ importers:
vite-tsconfig-paths: 3.6.0_vite@3.2.5
vitest: 0.23.4_happy-dom@6.0.4
apps/wss:
specifiers:
'@trigger.dev/common-schemas': workspace:*
'@trigger.dev/tsconfig': workspace:*
'@types/debug': ^4.1.7
'@types/node': ^18.11.9
'@types/uuid': ^9.0.0
'@types/ws': ^8.5.3
dotenv: ^16.0.3
evt: ^2.4.13
internal-bridge: workspace:*
internal-platform: workspace:*
pulsar-client: ^1.7.0
rimraf: ^3.0.2
tsup: ^6.5.0
typescript: ^4.9.4
uuid: ^9.0.0
ws: ^8.11.0
zod: ^3.20.2
dependencies:
'@trigger.dev/common-schemas': link:../../packages/common-schemas
evt: 2.4.13
internal-bridge: link:../../packages/internal-bridge
internal-platform: link:../../packages/internal-platform
pulsar-client: 1.7.0
uuid: 9.0.0
ws: 8.11.0
zod: 3.20.2
devDependencies:
'@trigger.dev/tsconfig': link:../../config-packages/tsconfig
'@types/debug': 4.1.7
'@types/node': 18.11.15
'@types/uuid': 9.0.0
'@types/ws': 8.5.3
dotenv: 16.0.3
rimraf: 3.0.2
tsup: 6.5.0_typescript@4.9.4
typescript: 4.9.4
config-packages/eslint-config-custom:
specifiers:
eslint: ^8.24.0
@@ -3381,13 +3381,12 @@ packages:
resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
dev: true
/@codemirror/autocomplete/6.3.4_jvia4rcxqiacrvood3734bhyuy:
/@codemirror/autocomplete/6.3.4_4npvozs3agsv66jx2b7pfvr53q:
resolution: {integrity: sha512-irxKsTSjS0OkfMWWt9YxtNK97++/E+XIHfKnRpSVfZyHzda/amYF0BR+T8mMkrGQWidx2zApxHx08GT13egyQA==}
peerDependencies:
'@codemirror/language': ^6.0.0
'@codemirror/state': ^6.0.0
'@codemirror/view': ^6.0.0
'@lezer/common': ^1.0.0
dependencies:
'@codemirror/language': 6.3.1
'@codemirror/state': 6.1.4
@@ -3407,7 +3406,7 @@ packages:
/@codemirror/lang-javascript/6.1.1:
resolution: {integrity: sha512-F4+kiuC5d5dUSJmff96tJQwpEXs/tX/4bapMRnZWW6bHKK1Fx6MunTzopkCUWRa9bF87GPmb9m7Qtg7Yv8f3uQ==}
dependencies:
'@codemirror/autocomplete': 6.3.4_jvia4rcxqiacrvood3734bhyuy
'@codemirror/autocomplete': 6.3.4_4npvozs3agsv66jx2b7pfvr53q
'@codemirror/language': 6.3.1
'@codemirror/lint': 6.1.0
'@codemirror/state': 6.1.4
@@ -4456,7 +4455,7 @@ packages:
eslint: 8.29.0
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 3.5.2_lt3hqehuojhfcbzgzqfngbtmrq
eslint-plugin-import: 2.26.0_i656iqvetrvx3ajhg4t6psfrl4
eslint-plugin-import: 2.26.0_qfsg7upu5e4dqco5ntekgyqxwu
eslint-plugin-jest: 26.9.0_gtacs36c3cng3fu32eiajkw5qm
eslint-plugin-jest-dom: 4.0.3_eslint@8.29.0
eslint-plugin-jsx-a11y: 6.6.1_eslint@8.29.0
@@ -5526,18 +5525,17 @@ packages:
eslint-visitor-keys: 3.3.0
dev: true
/@uiw/codemirror-extensions-basic-setup/4.17.1_yoq5blswu3ydocenanojwujrum:
/@uiw/codemirror-extensions-basic-setup/4.17.1_mldjzacanzbudgr2aukt2yvcyy:
resolution: {integrity: sha512-lFH3gFPcpKDckaioYL2KonTYeeoP7gGtaDtDai7DV5UVEyuVPlkGukKCmHz6u0ol/Krs/RTbF4ylt8cDlBT1uA==}
peerDependencies:
'@codemirror/autocomplete': '>=6.0.0'
'@codemirror/commands': '>=6.0.0'
'@codemirror/language': '>=6.0.0'
'@codemirror/lint': '>=6.0.0'
'@codemirror/search': '>=6.0.0'
'@codemirror/state': '>=6.0.0'
'@codemirror/view': '>=6.0.0'
dependencies:
'@codemirror/autocomplete': 6.3.4_jvia4rcxqiacrvood3734bhyuy
'@codemirror/autocomplete': 6.3.4_4npvozs3agsv66jx2b7pfvr53q
'@codemirror/commands': 6.1.2
'@codemirror/language': 6.3.1
'@codemirror/lint': 6.1.0
@@ -5546,14 +5544,11 @@ packages:
'@codemirror/view': 6.6.0
dev: false
/@uiw/react-codemirror/4.17.1_c746qxthrd2ism2rvn4crnq5om:
/@uiw/react-codemirror/4.17.1_c6ric56h4625lhpbtenqifztqq:
resolution: {integrity: sha512-ah7wFhvVW/uKbQR5D12AqDK51XGZaZI1WYO9/sraZzq32TGphL5BU3vcQd1P0YEZR6YLc23+KWNi2DCQ+EEAbA==}
peerDependencies:
'@babel/runtime': '>=7.11.0'
'@codemirror/state': '>=6.0.0'
'@codemirror/theme-one-dark': '>=6.0.0'
'@codemirror/view': '>=6.0.0'
codemirror: '>=6.0.0'
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
@@ -5562,14 +5557,13 @@ packages:
'@codemirror/state': 6.1.4
'@codemirror/theme-one-dark': 6.1.0
'@codemirror/view': 6.6.0
'@uiw/codemirror-extensions-basic-setup': 4.17.1_yoq5blswu3ydocenanojwujrum
codemirror: 6.0.1_@lezer+common@1.0.2
'@uiw/codemirror-extensions-basic-setup': 4.17.1_mldjzacanzbudgr2aukt2yvcyy
codemirror: 6.0.1
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
transitivePeerDependencies:
- '@codemirror/autocomplete'
- '@codemirror/language'
- '@codemirror/lint'
- '@codemirror/search'
dev: false
@@ -6854,18 +6848,16 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
/codemirror/6.0.1_@lezer+common@1.0.2:
/codemirror/6.0.1:
resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==}
dependencies:
'@codemirror/autocomplete': 6.3.4_jvia4rcxqiacrvood3734bhyuy
'@codemirror/autocomplete': 6.3.4_4npvozs3agsv66jx2b7pfvr53q
'@codemirror/commands': 6.1.2
'@codemirror/language': 6.3.1
'@codemirror/lint': 6.1.0
'@codemirror/search': 6.2.3
'@codemirror/state': 6.1.4
'@codemirror/view': 6.6.0
transitivePeerDependencies:
- '@lezer/common'
dev: false
/collection-visit/1.0.0:
@@ -8314,7 +8306,7 @@ packages:
eslint: 8.29.0
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 2.7.1_lt3hqehuojhfcbzgzqfngbtmrq
eslint-plugin-import: 2.26.0_eslint@8.29.0
eslint-plugin-import: 2.26.0_dgd2m3r3ibazmk3pmfoyze3fka
eslint-plugin-jsx-a11y: 6.6.1_eslint@8.29.0
eslint-plugin-react: 7.31.8_eslint@8.29.0
eslint-plugin-react-hooks: 4.6.0_eslint@8.29.0
@@ -8360,7 +8352,7 @@ packages:
dependencies:
debug: 4.3.4
eslint: 8.29.0
eslint-plugin-import: 2.26.0_eslint@8.29.0
eslint-plugin-import: 2.26.0_dgd2m3r3ibazmk3pmfoyze3fka
glob: 7.2.3
is-glob: 4.0.3
resolve: 1.22.1
@@ -8379,7 +8371,7 @@ packages:
debug: 4.3.4
enhanced-resolve: 5.12.0
eslint: 8.29.0
eslint-plugin-import: 2.26.0_i656iqvetrvx3ajhg4t6psfrl4
eslint-plugin-import: 2.26.0_qfsg7upu5e4dqco5ntekgyqxwu
get-tsconfig: 4.2.0
globby: 13.1.2
is-core-module: 2.11.0
@@ -8389,7 +8381,7 @@ packages:
- supports-color
dev: true
/eslint-module-utils/2.7.4_jnakocfte2jywffz4vixv5kpsq:
/eslint-module-utils/2.7.4_457k6wn3tjkduxg6oi6e76gicy:
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
engines: {node: '>=4'}
peerDependencies:
@@ -8414,11 +8406,12 @@ packages:
debug: 3.2.7
eslint: 8.29.0
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 2.7.1_lt3hqehuojhfcbzgzqfngbtmrq
transitivePeerDependencies:
- supports-color
dev: true
/eslint-module-utils/2.7.4_uplb3bqnui63takc5j27khdnpm:
/eslint-module-utils/2.7.4_wbv6cezew2qbikiravago3ef2u:
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
engines: {node: '>=4'}
peerDependencies:
@@ -8439,9 +8432,11 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.45.1_s5ps7njkmjlaqajutnox5ntcla
debug: 3.2.7
eslint: 8.29.0
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 3.5.2_lt3hqehuojhfcbzgzqfngbtmrq
transitivePeerDependencies:
- supports-color
dev: true
@@ -8466,37 +8461,7 @@ packages:
regexpp: 3.2.0
dev: true
/eslint-plugin-import/2.26.0_eslint@8.29.0:
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
peerDependenciesMeta:
'@typescript-eslint/parser':
optional: true
dependencies:
array-includes: 3.1.6
array.prototype.flat: 1.3.1
debug: 2.6.9
doctrine: 2.1.0
eslint: 8.29.0
eslint-import-resolver-node: 0.3.6
eslint-module-utils: 2.7.4_uplb3bqnui63takc5j27khdnpm
has: 1.0.3
is-core-module: 2.11.0
is-glob: 4.0.3
minimatch: 3.1.2
object.values: 1.1.6
resolve: 1.22.1
tsconfig-paths: 3.14.1
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-plugin-import/2.26.0_i656iqvetrvx3ajhg4t6psfrl4:
/eslint-plugin-import/2.26.0_dgd2m3r3ibazmk3pmfoyze3fka:
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
engines: {node: '>=4'}
peerDependencies:
@@ -8513,7 +8478,38 @@ packages:
doctrine: 2.1.0
eslint: 8.29.0
eslint-import-resolver-node: 0.3.6
eslint-module-utils: 2.7.4_jnakocfte2jywffz4vixv5kpsq
eslint-module-utils: 2.7.4_457k6wn3tjkduxg6oi6e76gicy
has: 1.0.3
is-core-module: 2.11.0
is-glob: 4.0.3
minimatch: 3.1.2
object.values: 1.1.6
resolve: 1.22.1
tsconfig-paths: 3.14.1
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-plugin-import/2.26.0_qfsg7upu5e4dqco5ntekgyqxwu:
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
peerDependenciesMeta:
'@typescript-eslint/parser':
optional: true
dependencies:
'@typescript-eslint/parser': 5.45.1_s5ps7njkmjlaqajutnox5ntcla
array-includes: 3.1.6
array.prototype.flat: 1.3.1
debug: 2.6.9
doctrine: 2.1.0
eslint: 8.29.0
eslint-import-resolver-node: 0.3.6
eslint-module-utils: 2.7.4_wbv6cezew2qbikiravago3ef2u
has: 1.0.3
is-core-module: 2.11.0
is-glob: 4.0.3