@nestwork/chevron 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +82 -0
- package/dist/chevron-core.module.d.ts +37 -0
- package/dist/chevron-core.module.d.ts.map +1 -0
- package/dist/chevron-core.module.js +296 -0
- package/dist/chevron-core.module.js.map +1 -0
- package/dist/chevron.constants.d.ts +3 -0
- package/dist/chevron.constants.d.ts.map +1 -0
- package/dist/chevron.constants.js +6 -0
- package/dist/chevron.constants.js.map +1 -0
- package/dist/chevron.module-definition.d.ts +5 -0
- package/dist/chevron.module-definition.d.ts.map +1 -0
- package/dist/chevron.module-definition.js +12 -0
- package/dist/chevron.module-definition.js.map +1 -0
- package/dist/chevron.module.d.ts +8 -0
- package/dist/chevron.module.d.ts.map +1 -0
- package/dist/chevron.module.js +36 -0
- package/dist/chevron.module.js.map +1 -0
- package/dist/chevron.registry.d.ts +32 -0
- package/dist/chevron.registry.d.ts.map +1 -0
- package/dist/chevron.registry.js +171 -0
- package/dist/chevron.registry.js.map +1 -0
- package/dist/chevron.service.d.ts +16 -0
- package/dist/chevron.service.d.ts.map +1 -0
- package/dist/chevron.service.js +53 -0
- package/dist/chevron.service.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/chevron-driver-options.interface.d.ts +15 -0
- package/dist/interfaces/chevron-driver-options.interface.d.ts.map +1 -0
- package/dist/interfaces/chevron-driver-options.interface.js +3 -0
- package/dist/interfaces/chevron-driver-options.interface.js.map +1 -0
- package/dist/interfaces/chevron-options.interface.d.ts +31 -0
- package/dist/interfaces/chevron-options.interface.d.ts.map +1 -0
- package/dist/interfaces/chevron-options.interface.js +3 -0
- package/dist/interfaces/chevron-options.interface.js.map +1 -0
- package/dist/interfaces/chevron-resolver.type.d.ts +4 -0
- package/dist/interfaces/chevron-resolver.type.d.ts.map +1 -0
- package/dist/interfaces/chevron-resolver.type.js +3 -0
- package/dist/interfaces/chevron-resolver.type.js.map +1 -0
- package/dist/interfaces/chevron-storage.interface.d.ts +10 -0
- package/dist/interfaces/chevron-storage.interface.d.ts.map +1 -0
- package/dist/interfaces/chevron-storage.interface.js +3 -0
- package/dist/interfaces/chevron-storage.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +5 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/storage/create-chevron-storage.d.ts +4 -0
- package/dist/storage/create-chevron-storage.d.ts.map +1 -0
- package/dist/storage/create-chevron-storage.js +40 -0
- package/dist/storage/create-chevron-storage.js.map +1 -0
- package/dist/storage/in-memory-chevron.storage.d.ts +11 -0
- package/dist/storage/in-memory-chevron.storage.d.ts.map +1 -0
- package/dist/storage/in-memory-chevron.storage.js +35 -0
- package/dist/storage/in-memory-chevron.storage.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/chevron-process-state.d.ts +8 -0
- package/dist/utils/chevron-process-state.d.ts.map +1 -0
- package/dist/utils/chevron-process-state.js +38 -0
- package/dist/utils/chevron-process-state.js.map +1 -0
- package/dist/utils/chevron.utils.d.ts +17 -0
- package/dist/utils/chevron.utils.d.ts.map +1 -0
- package/dist/utils/chevron.utils.js +76 -0
- package/dist/utils/chevron.utils.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ChevronModuleOptions } from '../interfaces';
|
|
2
|
+
export declare function resetRegisteredGateNamesForTesting(): void;
|
|
3
|
+
export declare function isGateShutdownComplete(name: string | symbol): boolean;
|
|
4
|
+
export declare function markGateShutdownComplete(name: string | symbol): void;
|
|
5
|
+
export declare function releaseRegisteredGateName(name: string | symbol): void;
|
|
6
|
+
export declare function assertGateNameNotExplicitDefault(options: Pick<ChevronModuleOptions, 'name'>): void;
|
|
7
|
+
export declare function assertGateNameAvailable(name: string | symbol): void;
|
|
8
|
+
//# sourceMappingURL=chevron-process-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chevron-process-state.d.ts","sourceRoot":"","sources":["../../src/utils/chevron-process-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAKrD,wBAAgB,kCAAkC,IAAI,IAAI,CAGzD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAErE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEpE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,IAAI,CAIlG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASnE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resetRegisteredGateNamesForTesting = resetRegisteredGateNamesForTesting;
|
|
4
|
+
exports.isGateShutdownComplete = isGateShutdownComplete;
|
|
5
|
+
exports.markGateShutdownComplete = markGateShutdownComplete;
|
|
6
|
+
exports.releaseRegisteredGateName = releaseRegisteredGateName;
|
|
7
|
+
exports.assertGateNameNotExplicitDefault = assertGateNameNotExplicitDefault;
|
|
8
|
+
exports.assertGateNameAvailable = assertGateNameAvailable;
|
|
9
|
+
const chevron_constants_1 = require("../chevron.constants");
|
|
10
|
+
const registeredGateNames = new Set();
|
|
11
|
+
const shutdownCompletedGateNames = new Set();
|
|
12
|
+
function resetRegisteredGateNamesForTesting() {
|
|
13
|
+
registeredGateNames.clear();
|
|
14
|
+
shutdownCompletedGateNames.clear();
|
|
15
|
+
}
|
|
16
|
+
function isGateShutdownComplete(name) {
|
|
17
|
+
return shutdownCompletedGateNames.has(String(name));
|
|
18
|
+
}
|
|
19
|
+
function markGateShutdownComplete(name) {
|
|
20
|
+
shutdownCompletedGateNames.add(String(name));
|
|
21
|
+
}
|
|
22
|
+
function releaseRegisteredGateName(name) {
|
|
23
|
+
registeredGateNames.delete(String(name));
|
|
24
|
+
}
|
|
25
|
+
function assertGateNameNotExplicitDefault(options) {
|
|
26
|
+
if (options.name === chevron_constants_1.DEFAULT_CHEVRON_NAME) {
|
|
27
|
+
throw new Error('Omit "name" for the default gate instead of using name: "default".');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function assertGateNameAvailable(name) {
|
|
31
|
+
const key = String(name);
|
|
32
|
+
if (registeredGateNames.has(key)) {
|
|
33
|
+
throw new Error(`Chevron "${key}" is already registered.`);
|
|
34
|
+
}
|
|
35
|
+
registeredGateNames.add(key);
|
|
36
|
+
shutdownCompletedGateNames.delete(key);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=chevron-process-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chevron-process-state.js","sourceRoot":"","sources":["../../src/utils/chevron-process-state.ts"],"names":[],"mappings":";;AAMA,gFAGC;AAED,wDAEC;AAED,4DAEC;AAED,8DAEC;AAED,4EAIC;AAED,0DASC;AAtCD,4DAA4D;AAG5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC9C,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;AAErD,SAAgB,kCAAkC;IAC9C,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC5B,0BAA0B,CAAC,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAqB;IACxD,OAAO,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAAqB;IAC1D,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAAqB;IAC3D,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,gCAAgC,CAAC,OAA2C;IACxF,IAAI,OAAO,CAAC,IAAI,KAAK,wCAAoB,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAC1F,CAAC;AACL,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAAqB;IACzD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzB,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,0BAA0B,CAAC,CAAC;IAC/D,CAAC;IAED,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,0BAA0B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Inject, Type } from '@nestjs/common';
|
|
2
|
+
import { ChevronService } from '../chevron.service';
|
|
3
|
+
import { ChevronModuleAsyncOptions, ChevronModuleOptions, ChevronStorageRegistration } from '../interfaces';
|
|
4
|
+
export declare function getChevronName(options: Pick<ChevronModuleOptions, 'name'>): string | symbol;
|
|
5
|
+
export declare function resolveIsGlobal(options: Pick<ChevronModuleOptions, 'name' | 'isGlobal'>): boolean;
|
|
6
|
+
export declare function resolveAsyncRegistrationChevronName(asyncOptions: ChevronModuleAsyncOptions): string | symbol;
|
|
7
|
+
export declare function getChevronToken(name?: string | symbol): string | Type<ChevronService>;
|
|
8
|
+
export declare function getChevronStorageToken(name?: string | symbol): symbol;
|
|
9
|
+
export declare function getChevronRegistryToken(name?: string | symbol): symbol;
|
|
10
|
+
export type ResolvedChevronModuleOptions = ChevronModuleOptions & {
|
|
11
|
+
storage: ChevronStorageRegistration;
|
|
12
|
+
};
|
|
13
|
+
export declare function withDefaultChevronOptions(options?: Partial<ChevronModuleOptions>): ResolvedChevronModuleOptions;
|
|
14
|
+
export declare function mergeAsyncChevronOptions(asyncOptions: ChevronModuleAsyncOptions, resolvedOptions: Partial<ChevronModuleOptions>): ResolvedChevronModuleOptions;
|
|
15
|
+
export declare function finalizeAsyncChevronOptions(asyncOptions: ChevronModuleAsyncOptions, resolvedOptions: Partial<ChevronModuleOptions>): ResolvedChevronModuleOptions;
|
|
16
|
+
export declare const InjectChevron: (name?: string | symbol) => ReturnType<typeof Inject>;
|
|
17
|
+
//# sourceMappingURL=chevron.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chevron.utils.d.ts","sourceRoot":"","sources":["../../src/utils/chevron.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAEH,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC7B,MAAM,eAAe,CAAC;AAEvB,wBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAE3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,OAAO,CAMjG;AAED,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,yBAAyB,GAAG,MAAM,GAAG,MAAM,CAE5G;AAED,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAAM,GAAG,MAA6B,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAM3G;AAED,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,MAAM,GAAG,MAA6B,GAAG,MAAM,CAE3F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,MAAM,GAAG,MAA6B,GAAG,MAAM,CAE5F;AAED,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,GAAG;IAC9D,OAAO,EAAE,0BAA0B,CAAC;CACvC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAAG,4BAA4B,CAOnH;AAED,wBAAgB,wBAAwB,CACpC,YAAY,EAAE,yBAAyB,EACvC,eAAe,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC/C,4BAA4B,CAY9B;AAED,wBAAgB,2BAA2B,CACvC,YAAY,EAAE,yBAAyB,EACvC,eAAe,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC/C,4BAA4B,CAwB9B;AAED,eAAO,MAAM,aAAa,GAAI,OAAM,MAAM,GAAG,MAA6B,KAAG,UAAU,CAAC,OAAO,MAAM,CACpE,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InjectChevron = void 0;
|
|
4
|
+
exports.getChevronName = getChevronName;
|
|
5
|
+
exports.resolveIsGlobal = resolveIsGlobal;
|
|
6
|
+
exports.resolveAsyncRegistrationChevronName = resolveAsyncRegistrationChevronName;
|
|
7
|
+
exports.getChevronToken = getChevronToken;
|
|
8
|
+
exports.getChevronStorageToken = getChevronStorageToken;
|
|
9
|
+
exports.getChevronRegistryToken = getChevronRegistryToken;
|
|
10
|
+
exports.withDefaultChevronOptions = withDefaultChevronOptions;
|
|
11
|
+
exports.mergeAsyncChevronOptions = mergeAsyncChevronOptions;
|
|
12
|
+
exports.finalizeAsyncChevronOptions = finalizeAsyncChevronOptions;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const chevron_constants_1 = require("../chevron.constants");
|
|
15
|
+
const chevron_service_1 = require("../chevron.service");
|
|
16
|
+
function getChevronName(options) {
|
|
17
|
+
return options.name ?? chevron_constants_1.DEFAULT_CHEVRON_NAME;
|
|
18
|
+
}
|
|
19
|
+
function resolveIsGlobal(options) {
|
|
20
|
+
if (options.isGlobal !== undefined) {
|
|
21
|
+
return options.isGlobal;
|
|
22
|
+
}
|
|
23
|
+
return options.name === undefined;
|
|
24
|
+
}
|
|
25
|
+
function resolveAsyncRegistrationChevronName(asyncOptions) {
|
|
26
|
+
return asyncOptions.name ?? chevron_constants_1.DEFAULT_CHEVRON_NAME;
|
|
27
|
+
}
|
|
28
|
+
function getChevronToken(name = chevron_constants_1.DEFAULT_CHEVRON_NAME) {
|
|
29
|
+
if (name === chevron_constants_1.DEFAULT_CHEVRON_NAME) {
|
|
30
|
+
return chevron_service_1.ChevronService;
|
|
31
|
+
}
|
|
32
|
+
return `${String(name)}ChevronService`;
|
|
33
|
+
}
|
|
34
|
+
function getChevronStorageToken(name = chevron_constants_1.DEFAULT_CHEVRON_NAME) {
|
|
35
|
+
return Symbol.for(`ChevronStorage:${String(name)}`);
|
|
36
|
+
}
|
|
37
|
+
function getChevronRegistryToken(name = chevron_constants_1.DEFAULT_CHEVRON_NAME) {
|
|
38
|
+
return Symbol.for(`ChevronRegistry:${String(name)}`);
|
|
39
|
+
}
|
|
40
|
+
function withDefaultChevronOptions(options = {}) {
|
|
41
|
+
const defaultStorage = { driver: 'memory' };
|
|
42
|
+
return {
|
|
43
|
+
...options,
|
|
44
|
+
storage: options.storage ?? defaultStorage,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function mergeAsyncChevronOptions(asyncOptions, resolvedOptions) {
|
|
48
|
+
const merged = { ...resolvedOptions };
|
|
49
|
+
if (asyncOptions.name !== undefined) {
|
|
50
|
+
merged.name = asyncOptions.name;
|
|
51
|
+
}
|
|
52
|
+
if (asyncOptions.isGlobal !== undefined) {
|
|
53
|
+
merged.isGlobal = asyncOptions.isGlobal;
|
|
54
|
+
}
|
|
55
|
+
return withDefaultChevronOptions(merged);
|
|
56
|
+
}
|
|
57
|
+
function finalizeAsyncChevronOptions(asyncOptions, resolvedOptions) {
|
|
58
|
+
const merged = mergeAsyncChevronOptions(asyncOptions, resolvedOptions);
|
|
59
|
+
const registrationName = resolveAsyncRegistrationChevronName(asyncOptions);
|
|
60
|
+
const effectiveName = getChevronName(merged);
|
|
61
|
+
if (String(registrationName) !== String(effectiveName)) {
|
|
62
|
+
throw new Error('Named chevrons require top-level "name" on forRootAsync when the factory returns a custom gate name.');
|
|
63
|
+
}
|
|
64
|
+
if (resolvedOptions.isGlobal !== undefined && asyncOptions.isGlobal === undefined) {
|
|
65
|
+
throw new Error('Chevrons require top-level "isGlobal" on forRootAsync when the factory returns isGlobal.');
|
|
66
|
+
}
|
|
67
|
+
if (resolvedOptions.isGlobal !== undefined &&
|
|
68
|
+
asyncOptions.isGlobal !== undefined &&
|
|
69
|
+
resolvedOptions.isGlobal !== asyncOptions.isGlobal) {
|
|
70
|
+
throw new Error('Conflicting "isGlobal" values between forRootAsync options and factory return.');
|
|
71
|
+
}
|
|
72
|
+
return merged;
|
|
73
|
+
}
|
|
74
|
+
const InjectChevron = (name = chevron_constants_1.DEFAULT_CHEVRON_NAME) => (0, common_1.Inject)(getChevronToken(name));
|
|
75
|
+
exports.InjectChevron = InjectChevron;
|
|
76
|
+
//# sourceMappingURL=chevron.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chevron.utils.js","sourceRoot":"","sources":["../../src/utils/chevron.utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nestwork/chevron",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Lightweight feature-flag module for NestJS with async resolvers, pluggable storage, and named or global gates",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/malyshev/chevron.git"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"nestjs",
|
|
12
|
+
"nest",
|
|
13
|
+
"nodejs",
|
|
14
|
+
"feature",
|
|
15
|
+
"flags",
|
|
16
|
+
"feature-flags",
|
|
17
|
+
"feature-toggles"
|
|
18
|
+
],
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"main": "./dist/index.js",
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"files": [
|
|
25
|
+
"dist",
|
|
26
|
+
"README.md"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "rimraf dist && tsc -p tsconfig.build.json",
|
|
30
|
+
"build:all": "pnpm run build && pnpm run -r build",
|
|
31
|
+
"dev": "tsc -p tsconfig.build.json --watch",
|
|
32
|
+
"dev:sample": "pnpm run build && concurrently -n src,sample -c blue,green \"pnpm dev\" \"pnpm --dir sample/000-in-memory-app dev\"",
|
|
33
|
+
"test": "TZ=UTC jest",
|
|
34
|
+
"test:all": "pnpm run test && pnpm run -r --if-present test",
|
|
35
|
+
"lint": "eslint \"src/**/*.ts\" --no-error-on-unmatched-pattern",
|
|
36
|
+
"lint:fix": "eslint \"src/**/*.ts\" --fix --no-error-on-unmatched-pattern",
|
|
37
|
+
"check-types": "tsc -p tsconfig.build.json --noEmit",
|
|
38
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
39
|
+
"format": "prettier --write \"**/*.{ts,tsx,md,json,mjs,yaml,yml}\"",
|
|
40
|
+
"changeset": "changeset",
|
|
41
|
+
"version-packages": "changeset version",
|
|
42
|
+
"release": "pnpm build && changeset publish",
|
|
43
|
+
"prepare": "husky"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"@nestjs/common": "catalog:",
|
|
47
|
+
"@nestjs/core": "catalog:"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@changesets/cli": "^2.29.0",
|
|
51
|
+
"@eslint/js": "^10.0.1",
|
|
52
|
+
"@nestjs/common": "catalog:",
|
|
53
|
+
"@nestjs/core": "catalog:",
|
|
54
|
+
"@nestjs/testing": "catalog:",
|
|
55
|
+
"@types/jest": "^30.0.0",
|
|
56
|
+
"@types/node": "^22.10.0",
|
|
57
|
+
"concurrently": "^9.2.1",
|
|
58
|
+
"eslint": "^10.10.0",
|
|
59
|
+
"eslint-config-prettier": "^10.1.8",
|
|
60
|
+
"eslint-plugin-prettier": "^5.5.6",
|
|
61
|
+
"globals": "^17.12.0",
|
|
62
|
+
"husky": "^9.1.7",
|
|
63
|
+
"jest": "^30.2.0",
|
|
64
|
+
"lint-staged": "^15.5.2",
|
|
65
|
+
"prettier": "^3.9.6",
|
|
66
|
+
"reflect-metadata": "catalog:",
|
|
67
|
+
"rimraf": "^6.0.1",
|
|
68
|
+
"rxjs": "catalog:",
|
|
69
|
+
"ts-jest": "^29.4.6",
|
|
70
|
+
"typescript": "catalog:typescript",
|
|
71
|
+
"typescript-eslint": "^8.69.0"
|
|
72
|
+
},
|
|
73
|
+
"lint-staged": {
|
|
74
|
+
"*.{ts,tsx}": [
|
|
75
|
+
"prettier --write",
|
|
76
|
+
"eslint --fix"
|
|
77
|
+
],
|
|
78
|
+
"*.{md,json,mjs,yml,yaml}": [
|
|
79
|
+
"prettier --write"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
"packageManager": "pnpm@11.25.0",
|
|
83
|
+
"engines": {
|
|
84
|
+
"node": ">=20"
|
|
85
|
+
}
|
|
86
|
+
}
|