@corelicense/node 0.2.0 → 0.5.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/README.md +71 -4
- package/dist/client/license-api-client.d.ts +3 -2
- package/dist/client/license-api-client.d.ts.map +1 -1
- package/dist/client/license-api-client.js +44 -4
- package/dist/client/license-api-client.js.map +1 -1
- package/dist/client/map-client-error.d.ts +5 -0
- package/dist/client/map-client-error.d.ts.map +1 -0
- package/dist/client/map-client-error.js +63 -0
- package/dist/client/map-client-error.js.map +1 -0
- package/dist/client/public-keys-client.d.ts.map +1 -1
- package/dist/client/public-keys-client.js +20 -2
- package/dist/client/public-keys-client.js.map +1 -1
- package/dist/core-license.d.ts +19 -1
- package/dist/core-license.d.ts.map +1 -1
- package/dist/core-license.js +195 -51
- package/dist/core-license.js.map +1 -1
- package/dist/crypto/verify-policy-token.d.ts.map +1 -1
- package/dist/crypto/verify-policy-token.js +75 -5
- package/dist/crypto/verify-policy-token.js.map +1 -1
- package/dist/env/load-options-from-env.d.ts.map +1 -1
- package/dist/env/load-options-from-env.js +2 -1
- package/dist/env/load-options-from-env.js.map +1 -1
- package/dist/env/resolve-api-url.js +1 -1
- package/dist/env/resolve-api-url.js.map +1 -1
- package/dist/errors/api-error.d.ts +17 -0
- package/dist/errors/api-error.d.ts.map +1 -0
- package/dist/errors/api-error.js +43 -0
- package/dist/errors/api-error.js.map +1 -0
- package/dist/errors/codes.d.ts +40 -0
- package/dist/errors/codes.d.ts.map +1 -0
- package/dist/errors/codes.js +39 -0
- package/dist/errors/codes.js.map +1 -0
- package/dist/errors/config-error.d.ts +7 -0
- package/dist/errors/config-error.d.ts.map +1 -0
- package/dist/errors/config-error.js +21 -0
- package/dist/errors/config-error.js.map +1 -0
- package/dist/errors/feature-error.d.ts +2 -1
- package/dist/errors/feature-error.d.ts.map +1 -1
- package/dist/errors/feature-error.js +13 -2
- package/dist/errors/feature-error.js.map +1 -1
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +6 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/license-error.d.ts +48 -7
- package/dist/errors/license-error.d.ts.map +1 -1
- package/dist/errors/license-error.js +104 -14
- package/dist/errors/license-error.js.map +1 -1
- package/dist/errors/module-error.d.ts +7 -0
- package/dist/errors/module-error.d.ts.map +1 -0
- package/dist/errors/module-error.js +20 -0
- package/dist/errors/module-error.js.map +1 -0
- package/dist/errors/policy-error.d.ts +10 -1
- package/dist/errors/policy-error.d.ts.map +1 -1
- package/dist/errors/policy-error.js +16 -2
- package/dist/errors/policy-error.js.map +1 -1
- package/dist/errors/quota-error.d.ts +2 -1
- package/dist/errors/quota-error.d.ts.map +1 -1
- package/dist/errors/quota-error.js +15 -2
- package/dist/errors/quota-error.js.map +1 -1
- package/dist/errors/runtime-error.d.ts +12 -0
- package/dist/errors/runtime-error.d.ts.map +1 -0
- package/dist/errors/runtime-error.js +37 -0
- package/dist/errors/runtime-error.js.map +1 -0
- package/dist/errors/throw-for-status.d.ts +3 -0
- package/dist/errors/throw-for-status.d.ts.map +1 -0
- package/dist/errors/throw-for-status.js +21 -0
- package/dist/errors/throw-for-status.js.map +1 -0
- package/dist/guards/cli-guard.d.ts.map +1 -1
- package/dist/guards/cli-guard.js +12 -6
- package/dist/guards/cli-guard.js.map +1 -1
- package/dist/guards/express-middleware.d.ts.map +1 -1
- package/dist/guards/express-middleware.js +1 -5
- package/dist/guards/express-middleware.js.map +1 -1
- package/dist/guards/express-routes.d.ts +9 -0
- package/dist/guards/express-routes.d.ts.map +1 -0
- package/dist/guards/express-routes.js +12 -0
- package/dist/guards/express-routes.js.map +1 -0
- package/dist/guards/fastify-plugin.d.ts.map +1 -1
- package/dist/guards/fastify-plugin.js +1 -5
- package/dist/guards/fastify-plugin.js.map +1 -1
- package/dist/guards/feature-guard.d.ts +1 -0
- package/dist/guards/feature-guard.d.ts.map +1 -1
- package/dist/guards/feature-guard.js +14 -0
- package/dist/guards/feature-guard.js.map +1 -1
- package/dist/guards/nest-exception-filter.d.ts +6 -0
- package/dist/guards/nest-exception-filter.d.ts.map +1 -0
- package/dist/guards/nest-exception-filter.js +60 -0
- package/dist/guards/nest-exception-filter.js.map +1 -0
- package/dist/guards/nest-feature-guard.d.ts +10 -0
- package/dist/guards/nest-feature-guard.d.ts.map +1 -0
- package/dist/guards/nest-feature-guard.js +72 -0
- package/dist/guards/nest-feature-guard.js.map +1 -0
- package/dist/guards/nest-module.d.ts +3 -0
- package/dist/guards/nest-module.d.ts.map +1 -1
- package/dist/guards/nest-module.js +13 -2
- package/dist/guards/nest-module.js.map +1 -1
- package/dist/guards/nestjs.d.ts +6 -0
- package/dist/guards/nestjs.d.ts.map +1 -0
- package/dist/guards/nestjs.js +6 -0
- package/dist/guards/nestjs.js.map +1 -0
- package/dist/guards/quota-guard.d.ts.map +1 -1
- package/dist/guards/quota-guard.js +6 -1
- package/dist/guards/quota-guard.js.map +1 -1
- package/dist/guards/require-feature.decorator.d.ts +3 -0
- package/dist/guards/require-feature.decorator.d.ts.map +1 -0
- package/dist/guards/require-feature.decorator.js +4 -0
- package/dist/guards/require-feature.decorator.js.map +1 -0
- package/dist/guards/worker-guard.d.ts.map +1 -1
- package/dist/guards/worker-guard.js +8 -6
- package/dist/guards/worker-guard.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/instance/domain-hash.d.ts +3 -0
- package/dist/instance/domain-hash.d.ts.map +1 -0
- package/dist/instance/domain-hash.js +11 -0
- package/dist/instance/domain-hash.js.map +1 -0
- package/dist/instance/instance-id.d.ts.map +1 -1
- package/dist/instance/instance-id.js +1 -6
- package/dist/instance/instance-id.js.map +1 -1
- package/dist/runtime/licensed-module-registry.d.ts +22 -0
- package/dist/runtime/licensed-module-registry.d.ts.map +1 -0
- package/dist/runtime/licensed-module-registry.js +80 -0
- package/dist/runtime/licensed-module-registry.js.map +1 -0
- package/dist/runtime/licensed-service-container.d.ts +23 -0
- package/dist/runtime/licensed-service-container.d.ts.map +1 -0
- package/dist/runtime/licensed-service-container.js +89 -0
- package/dist/runtime/licensed-service-container.js.map +1 -0
- package/dist/runtime/licensed-service.d.ts +7 -0
- package/dist/runtime/licensed-service.d.ts.map +1 -0
- package/dist/runtime/licensed-service.js +10 -0
- package/dist/runtime/licensed-service.js.map +1 -0
- package/dist/runtime/module-registry.d.ts.map +1 -1
- package/dist/runtime/module-registry.js +2 -1
- package/dist/runtime/module-registry.js.map +1 -1
- package/dist/runtime/service-container.d.ts.map +1 -1
- package/dist/runtime/service-container.js +2 -1
- package/dist/runtime/service-container.js.map +1 -1
- package/dist/types/bootstrap.d.ts +32 -0
- package/dist/types/bootstrap.d.ts.map +1 -0
- package/dist/types/bootstrap.js +2 -0
- package/dist/types/bootstrap.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +14 -3
- package/dist/types/options.d.ts.map +1 -1
- package/dist/types/policy.d.ts +2 -0
- package/dist/types/policy.d.ts.map +1 -1
- package/package.json +20 -5
|
@@ -3,6 +3,7 @@ export declare class QuotaExceededError extends LicenseError {
|
|
|
3
3
|
readonly quotaName: string;
|
|
4
4
|
readonly limit?: number;
|
|
5
5
|
readonly current?: number;
|
|
6
|
-
constructor(quotaName: string, limit?: number, current?: number);
|
|
6
|
+
constructor(quotaName: string, limit?: number, current?: number, source?: string);
|
|
7
|
+
toJSON(): Record<string, unknown>;
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=quota-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-error.d.ts","sourceRoot":"","sources":["../../src/errors/quota-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quota-error.d.ts","sourceRoot":"","sources":["../../src/errors/quota-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAevE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQ3C"}
|
|
@@ -1,14 +1,27 @@
|
|
|
1
|
+
import { LicenseErrorCode } from './codes.js';
|
|
1
2
|
import { LicenseError } from './license-error.js';
|
|
2
3
|
export class QuotaExceededError extends LicenseError {
|
|
3
4
|
quotaName;
|
|
4
5
|
limit;
|
|
5
6
|
current;
|
|
6
|
-
constructor(quotaName, limit, current) {
|
|
7
|
-
super(`Quota "${quotaName}" exceeded${limit !== undefined ? ` (limit: ${limit})` : ''}`,
|
|
7
|
+
constructor(quotaName, limit, current, source) {
|
|
8
|
+
super(`Quota "${quotaName}" exceeded${limit !== undefined ? ` (limit: ${limit})` : ''}`, {
|
|
9
|
+
code: LicenseErrorCode.QUOTA_EXCEEDED,
|
|
10
|
+
status: 'limited',
|
|
11
|
+
source: source ?? 'quota-guard',
|
|
12
|
+
});
|
|
8
13
|
this.name = 'QuotaExceededError';
|
|
9
14
|
this.quotaName = quotaName;
|
|
10
15
|
this.limit = limit;
|
|
11
16
|
this.current = current;
|
|
12
17
|
}
|
|
18
|
+
toJSON() {
|
|
19
|
+
return {
|
|
20
|
+
...super.toJSON(),
|
|
21
|
+
quotaName: this.quotaName,
|
|
22
|
+
limit: this.limit,
|
|
23
|
+
current: this.current,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
13
26
|
}
|
|
14
27
|
//# sourceMappingURL=quota-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-error.js","sourceRoot":"","sources":["../../src/errors/quota-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IACzC,SAAS,CAAS;IAClB,KAAK,CAAU;IACf,OAAO,CAAU;IAE1B,YAAY,SAAiB,EAAE,KAAc,EAAE,OAAgB;
|
|
1
|
+
{"version":3,"file":"quota-error.js","sourceRoot":"","sources":["../../src/errors/quota-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IACzC,SAAS,CAAS;IAClB,KAAK,CAAU;IACf,OAAO,CAAU;IAE1B,YAAY,SAAiB,EAAE,KAAc,EAAE,OAAgB,EAAE,MAAe;QAC9E,KAAK,CACH,UAAU,SAAS,aAAa,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EACjF;YACE,IAAI,EAAE,gBAAgB,CAAC,cAAc;YACrC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM,IAAI,aAAa;SAChC,CACF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEQ,MAAM;QACb,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LicenseError } from './license-error.js';
|
|
2
|
+
export declare class ServiceNotBoundError extends LicenseError {
|
|
3
|
+
readonly serviceName: string;
|
|
4
|
+
constructor(serviceName: string);
|
|
5
|
+
toJSON(): Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export declare class ModuleNotRegisteredError extends LicenseError {
|
|
8
|
+
readonly moduleName: string;
|
|
9
|
+
constructor(moduleName: string);
|
|
10
|
+
toJSON(): Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=runtime-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-error.d.ts","sourceRoot":"","sources":["../../src/errors/runtime-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,MAAM;IAStB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM3C;AAED,qBAAa,wBAAyB,SAAQ,YAAY;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,UAAU,EAAE,MAAM;IASrB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM3C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { LicenseErrorCode } from './codes.js';
|
|
2
|
+
import { LicenseError } from './license-error.js';
|
|
3
|
+
export class ServiceNotBoundError extends LicenseError {
|
|
4
|
+
serviceName;
|
|
5
|
+
constructor(serviceName) {
|
|
6
|
+
super(`Service "${serviceName}" is not bound`, {
|
|
7
|
+
code: LicenseErrorCode.SERVICE_NOT_BOUND,
|
|
8
|
+
source: 'service-container.resolve',
|
|
9
|
+
});
|
|
10
|
+
this.name = 'ServiceNotBoundError';
|
|
11
|
+
this.serviceName = serviceName;
|
|
12
|
+
}
|
|
13
|
+
toJSON() {
|
|
14
|
+
return {
|
|
15
|
+
...super.toJSON(),
|
|
16
|
+
serviceName: this.serviceName,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class ModuleNotRegisteredError extends LicenseError {
|
|
21
|
+
moduleName;
|
|
22
|
+
constructor(moduleName) {
|
|
23
|
+
super(`Module "${moduleName}" is not registered`, {
|
|
24
|
+
code: LicenseErrorCode.MODULE_NOT_REGISTERED,
|
|
25
|
+
source: 'module-registry.get',
|
|
26
|
+
});
|
|
27
|
+
this.name = 'ModuleNotRegisteredError';
|
|
28
|
+
this.moduleName = moduleName;
|
|
29
|
+
}
|
|
30
|
+
toJSON() {
|
|
31
|
+
return {
|
|
32
|
+
...super.toJSON(),
|
|
33
|
+
moduleName: this.moduleName,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=runtime-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-error.js","sourceRoot":"","sources":["../../src/errors/runtime-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAC3C,WAAW,CAAS;IAE7B,YAAY,WAAmB;QAC7B,KAAK,CAAC,YAAY,WAAW,gBAAgB,EAAE;YAC7C,IAAI,EAAE,gBAAgB,CAAC,iBAAiB;YACxC,MAAM,EAAE,2BAA2B;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAEQ,MAAM;QACb,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,YAAY;IAC/C,UAAU,CAAS;IAE5B,YAAY,UAAkB;QAC5B,KAAK,CAAC,WAAW,UAAU,qBAAqB,EAAE;YAChD,IAAI,EAAE,gBAAgB,CAAC,qBAAqB;YAC5C,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEQ,MAAM;QACb,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throw-for-status.d.ts","sourceRoot":"","sources":["../../src/errors/throw-for-status.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,SAAwC,GAC7C,IAAI,CAkBN"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LicenseExpiredError, LicenseInvalidError, LicenseRevokedError, LicenseSuspendedError, OfflineGraceExpiredError, } from './license-error.js';
|
|
2
|
+
export function throwForTerminalStatus(status, source = 'core-license.throwForTerminalStatus') {
|
|
3
|
+
switch (status) {
|
|
4
|
+
case 'active':
|
|
5
|
+
case 'limited':
|
|
6
|
+
case 'offline':
|
|
7
|
+
return;
|
|
8
|
+
case 'suspended':
|
|
9
|
+
throw new LicenseSuspendedError(undefined, source);
|
|
10
|
+
case 'revoked':
|
|
11
|
+
throw new LicenseRevokedError(undefined, source);
|
|
12
|
+
case 'expired':
|
|
13
|
+
throw new LicenseExpiredError(undefined, source);
|
|
14
|
+
case 'grace_expired':
|
|
15
|
+
throw new OfflineGraceExpiredError(undefined, source);
|
|
16
|
+
case 'invalid':
|
|
17
|
+
default:
|
|
18
|
+
throw new LicenseInvalidError(undefined, { source });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=throw-for-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throw-for-status.js","sourceRoot":"","sources":["../../src/errors/throw-for-status.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,UAAU,sBAAsB,CACpC,MAA0B,EAC1B,MAAM,GAAG,qCAAqC;IAE9C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO;QACT,KAAK,WAAW;YACd,MAAM,IAAI,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrD,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,eAAe;YAClB,MAAM,IAAI,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,KAAK,SAAS,CAAC;QACf;YACE,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-guard.d.ts","sourceRoot":"","sources":["../../src/guards/cli-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-guard.d.ts","sourceRoot":"","sources":["../../src/guards/cli-guard.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB5F"}
|
package/dist/guards/cli-guard.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LicenseExpiredError, LicenseInvalidError, LicenseRevokedError, LicenseSuspendedError, OfflineGraceExpiredError, } from '../errors/license-error.js';
|
|
2
|
+
import { LicenseErrorCode } from '../errors/codes.js';
|
|
2
3
|
export async function guardCommand(status, commandName) {
|
|
3
4
|
switch (status.status) {
|
|
4
5
|
case 'active':
|
|
@@ -6,17 +7,22 @@ export async function guardCommand(status, commandName) {
|
|
|
6
7
|
case 'offline':
|
|
7
8
|
return;
|
|
8
9
|
case 'suspended':
|
|
9
|
-
throw new LicenseSuspendedError(`Command "${commandName}" is suspended
|
|
10
|
+
throw new LicenseSuspendedError(`Command "${commandName}" is suspended`, 'cli-guard');
|
|
10
11
|
case 'revoked':
|
|
11
|
-
throw new LicenseRevokedError(`Command "${commandName}" is revoked
|
|
12
|
+
throw new LicenseRevokedError(`Command "${commandName}" is revoked`, 'cli-guard');
|
|
12
13
|
case 'expired':
|
|
13
|
-
throw new LicenseExpiredError(`Command "${commandName}" is expired
|
|
14
|
+
throw new LicenseExpiredError(`Command "${commandName}" is expired`, 'cli-guard');
|
|
14
15
|
case 'grace_expired':
|
|
15
|
-
throw new OfflineGraceExpiredError(`Command "${commandName}" grace expired
|
|
16
|
+
throw new OfflineGraceExpiredError(`Command "${commandName}" grace expired`, 'cli-guard');
|
|
16
17
|
case 'invalid':
|
|
17
|
-
throw new LicenseInvalidError(`Command "${commandName}" invalid license
|
|
18
|
+
throw new LicenseInvalidError(`Command "${commandName}" invalid license`, {
|
|
19
|
+
source: 'cli-guard',
|
|
20
|
+
});
|
|
18
21
|
default:
|
|
19
|
-
throw new LicenseInvalidError(`Command "${commandName}" is not allowed
|
|
22
|
+
throw new LicenseInvalidError(`Command "${commandName}" is not allowed`, {
|
|
23
|
+
code: LicenseErrorCode.COMMAND_NOT_ALLOWED,
|
|
24
|
+
source: 'cli-guard',
|
|
25
|
+
});
|
|
20
26
|
}
|
|
21
27
|
}
|
|
22
28
|
//# sourceMappingURL=cli-guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-guard.js","sourceRoot":"","sources":["../../src/guards/cli-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-guard.js","sourceRoot":"","sources":["../../src/guards/cli-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAqB,EAAE,WAAmB;IAC3E,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO;QACT,KAAK,WAAW;YACd,MAAM,IAAI,qBAAqB,CAAC,YAAY,WAAW,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACxF,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,YAAY,WAAW,cAAc,EAAE,WAAW,CAAC,CAAC;QACpF,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,YAAY,WAAW,cAAc,EAAE,WAAW,CAAC,CAAC;QACpF,KAAK,eAAe;YAClB,MAAM,IAAI,wBAAwB,CAAC,YAAY,WAAW,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC5F,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,YAAY,WAAW,mBAAmB,EAAE;gBACxE,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL;YACE,MAAM,IAAI,mBAAmB,CAAC,YAAY,WAAW,kBAAkB,EAAE;gBACvE,IAAI,EAAE,gBAAgB,CAAC,mBAAmB;gBAC1C,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-middleware.d.ts","sourceRoot":"","sources":["../../src/guards/express-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,mBAAwB,GAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"express-middleware.d.ts","sourceRoot":"","sources":["../../src/guards/express-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,mBAAwB,GAChC,cAAc,CAuBhB"}
|
|
@@ -13,11 +13,7 @@ export function createExpressMiddleware(license, options = {}) {
|
|
|
13
13
|
}
|
|
14
14
|
catch (error) {
|
|
15
15
|
if (error instanceof LicenseError) {
|
|
16
|
-
res.status(403).json(
|
|
17
|
-
code: error.code,
|
|
18
|
-
message: error.message,
|
|
19
|
-
status: error.status,
|
|
20
|
-
});
|
|
16
|
+
res.status(403).json(error.toClientPayload());
|
|
21
17
|
return;
|
|
22
18
|
}
|
|
23
19
|
next(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-middleware.js","sourceRoot":"","sources":["../../src/guards/express-middleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,UAAU,uBAAuB,CACrC,OAAoB,EACpB,UAA+B,EAAE;IAEjC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAErD,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC;QAEjC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"express-middleware.js","sourceRoot":"","sources":["../../src/guards/express-middleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,UAAU,uBAAuB,CACrC,OAAoB,EACpB,UAA+B,EAAE;IAEjC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAErD,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC;QAEjC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Application, RequestHandler } from 'express';
|
|
2
|
+
import type { LicensedModuleRegistry } from '../runtime/licensed-module-registry.js';
|
|
3
|
+
export interface LicensedRouteDefinition {
|
|
4
|
+
path: string;
|
|
5
|
+
module: string;
|
|
6
|
+
router: RequestHandler;
|
|
7
|
+
}
|
|
8
|
+
export declare function registerLicensedRoutes(app: Application, registry: LicensedModuleRegistry, routes: LicensedRouteDefinition[]): string[];
|
|
9
|
+
//# sourceMappingURL=express-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express-routes.d.ts","sourceRoot":"","sources":["../../src/guards/express-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAErF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,uBAAuB,EAAE,GAChC,MAAM,EAAE,CAaV"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function registerLicensedRoutes(app, registry, routes) {
|
|
2
|
+
const mounted = [];
|
|
3
|
+
for (const route of routes) {
|
|
4
|
+
if (!registry.has(route.module)) {
|
|
5
|
+
continue;
|
|
6
|
+
}
|
|
7
|
+
app.use(route.path, route.router);
|
|
8
|
+
mounted.push(route.path);
|
|
9
|
+
}
|
|
10
|
+
return mounted;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=express-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express-routes.js","sourceRoot":"","sources":["../../src/guards/express-routes.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,sBAAsB,CACpC,GAAgB,EAChB,QAAgC,EAChC,MAAiC;IAEjC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify-plugin.d.ts","sourceRoot":"","sources":["../../src/guards/fastify-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,+BAA+B,
|
|
1
|
+
{"version":3,"file":"fastify-plugin.d.ts","sourceRoot":"","sources":["../../src/guards/fastify-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;IAC1E,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,+BAA+B,CAuBxF,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,YAAY,GAAE,mBAAwB,GACrC,kBAAkB,CAOpB"}
|
|
@@ -11,11 +11,7 @@ export const coreLicenseFastifyPlugin = async (fastify, options) => {
|
|
|
11
11
|
}
|
|
12
12
|
catch (error) {
|
|
13
13
|
if (error instanceof LicenseError) {
|
|
14
|
-
return reply.status(403).send(
|
|
15
|
-
code: error.code,
|
|
16
|
-
message: error.message,
|
|
17
|
-
status: error.status,
|
|
18
|
-
});
|
|
14
|
+
return reply.status(403).send(error.toClientPayload());
|
|
19
15
|
}
|
|
20
16
|
throw error;
|
|
21
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify-plugin.js","sourceRoot":"","sources":["../../src/guards/fastify-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,MAAM,CAAC,MAAM,wBAAwB,GAAwD,KAAK,EAChG,OAAO,EACP,OAAO,EACP,EAAE;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAErD,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"fastify-plugin.js","sourceRoot":"","sources":["../../src/guards/fastify-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,MAAM,CAAC,MAAM,wBAAwB,GAAwD,KAAK,EAChG,OAAO,EACP,OAAO,EACP,EAAE;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAErD,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CACjC,OAAoB,EACpB,eAAoC,EAAE;IAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,OAAO,CAAC,QAAQ,CAAC,wBAAwB,EAAE;YAC/C,GAAG,YAAY;YACf,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { Policy } from '../types/policy.js';
|
|
2
2
|
export declare function assertFeatureEnabled(policy: Policy | null, feature: string): void;
|
|
3
|
+
export declare function isFeatureEnabled(policy: Policy | null, feature: string): boolean;
|
|
3
4
|
//# sourceMappingURL=feature-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-guard.d.ts","sourceRoot":"","sources":["../../src/guards/feature-guard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmBjF"}
|
|
1
|
+
{"version":3,"file":"feature-guard.d.ts","sourceRoot":"","sources":["../../src/guards/feature-guard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmBjF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAiBhF"}
|
|
@@ -15,4 +15,18 @@ export function assertFeatureEnabled(policy, feature) {
|
|
|
15
15
|
throw new FeatureDisabledError(feature);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
export function isFeatureEnabled(policy, feature) {
|
|
19
|
+
if (!policy) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const segments = feature.split('.');
|
|
23
|
+
let current = policy.features;
|
|
24
|
+
for (const segment of segments) {
|
|
25
|
+
if (typeof current !== 'object' || current === null) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
current = current[segment];
|
|
29
|
+
}
|
|
30
|
+
return current === true;
|
|
31
|
+
}
|
|
18
32
|
//# sourceMappingURL=feature-guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-guard.js","sourceRoot":"","sources":["../../src/guards/feature-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,MAAM,UAAU,oBAAoB,CAAC,MAAqB,EAAE,OAAe;IACzE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"feature-guard.js","sourceRoot":"","sources":["../../src/guards/feature-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,MAAM,UAAU,oBAAoB,CAAC,MAAqB,EAAE,OAAe;IACzE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAqB,EAAE,OAAe;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,GAAY,MAAM,CAAC,QAAQ,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,OAAO,KAAK,IAAI,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ArgumentsHost, type ExceptionFilter } from '@nestjs/common';
|
|
2
|
+
import { LicenseError } from '../errors/license-error.js';
|
|
3
|
+
export declare class CoreLicenseExceptionFilter implements ExceptionFilter {
|
|
4
|
+
catch(exception: LicenseError, host: ArgumentsHost): void;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=nest-exception-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nest-exception-filter.d.ts","sourceRoot":"","sources":["../../src/guards/nest-exception-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,eAAe,EAErB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,qBACa,0BAA2B,YAAW,eAAe;IAChE,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;CAM1D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { Catch, HttpStatus, } from '@nestjs/common';
|
|
36
|
+
import { LicenseError } from '../errors/license-error.js';
|
|
37
|
+
let CoreLicenseExceptionFilter = (() => {
|
|
38
|
+
let _classDecorators = [Catch(LicenseError)];
|
|
39
|
+
let _classDescriptor;
|
|
40
|
+
let _classExtraInitializers = [];
|
|
41
|
+
let _classThis;
|
|
42
|
+
var CoreLicenseExceptionFilter = class {
|
|
43
|
+
static { _classThis = this; }
|
|
44
|
+
static {
|
|
45
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
46
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
47
|
+
CoreLicenseExceptionFilter = _classThis = _classDescriptor.value;
|
|
48
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
49
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
50
|
+
}
|
|
51
|
+
catch(exception, host) {
|
|
52
|
+
const ctx = host.switchToHttp();
|
|
53
|
+
const response = ctx.getResponse();
|
|
54
|
+
response.status(HttpStatus.FORBIDDEN).json(exception.toClientPayload());
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return CoreLicenseExceptionFilter = _classThis;
|
|
58
|
+
})();
|
|
59
|
+
export { CoreLicenseExceptionFilter };
|
|
60
|
+
//# sourceMappingURL=nest-exception-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nest-exception-filter.js","sourceRoot":"","sources":["../../src/guards/nest-exception-filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,KAAK,EAGL,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;IAG7C,0BAA0B;4BADtC,KAAK,CAAC,YAAY,CAAC;;;;;;;;YACpB,6KAOC;;;YAPY,uDAA0B;;QACrC,KAAK,CAAC,SAAuB,EAAE,IAAmB;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;YAE7C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1E,CAAC;;;;SANU,0BAA0B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type CanActivate, type ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { Reflector } from '@nestjs/core';
|
|
3
|
+
import { CoreLicense } from '../core-license.js';
|
|
4
|
+
export declare class CoreLicenseFeatureGuard implements CanActivate {
|
|
5
|
+
private readonly license;
|
|
6
|
+
private readonly reflector;
|
|
7
|
+
constructor(license: CoreLicense, reflector: Reflector);
|
|
8
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=nest-feature-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nest-feature-guard.d.ts","sourceRoot":"","sources":["../../src/guards/nest-feature-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,qBACa,uBAAwB,YAAW,WAAW;IAEvD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,SAAS;IAGjC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAc/D"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { Injectable, } from '@nestjs/common';
|
|
36
|
+
import { REQUIRE_FEATURE_KEY } from './require-feature.decorator.js';
|
|
37
|
+
let CoreLicenseFeatureGuard = (() => {
|
|
38
|
+
let _classDecorators = [Injectable()];
|
|
39
|
+
let _classDescriptor;
|
|
40
|
+
let _classExtraInitializers = [];
|
|
41
|
+
let _classThis;
|
|
42
|
+
var CoreLicenseFeatureGuard = class {
|
|
43
|
+
static { _classThis = this; }
|
|
44
|
+
static {
|
|
45
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
46
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
47
|
+
CoreLicenseFeatureGuard = _classThis = _classDescriptor.value;
|
|
48
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
49
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
50
|
+
}
|
|
51
|
+
license;
|
|
52
|
+
reflector;
|
|
53
|
+
constructor(license, reflector) {
|
|
54
|
+
this.license = license;
|
|
55
|
+
this.reflector = reflector;
|
|
56
|
+
}
|
|
57
|
+
async canActivate(context) {
|
|
58
|
+
const feature = this.reflector.getAllAndOverride(REQUIRE_FEATURE_KEY, [
|
|
59
|
+
context.getHandler(),
|
|
60
|
+
context.getClass(),
|
|
61
|
+
]);
|
|
62
|
+
if (!feature) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
await this.license.requireFeature(feature);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
return CoreLicenseFeatureGuard = _classThis;
|
|
70
|
+
})();
|
|
71
|
+
export { CoreLicenseFeatureGuard };
|
|
72
|
+
//# sourceMappingURL=nest-feature-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nest-feature-guard.js","sourceRoot":"","sources":["../../src/guards/nest-feature-guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,UAAU,GAGX,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;IAGxD,uBAAuB;4BADnC,UAAU,EAAE;;;;;;;;YACb,6KAoBC;;;YApBY,uDAAuB;;QAEf,OAAO;QACP,SAAS;QAF5B,YACmB,OAAoB,EACpB,SAAoB;YADpB,YAAO,GAAP,OAAO,CAAa;YACpB,cAAS,GAAT,SAAS,CAAW;QACpC,CAAC;QAEJ,KAAK,CAAC,WAAW,CAAC,OAAyB;YACzC,MAAM,OAAO,GACX,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAqB,mBAAmB,EAAE;gBACxE,OAAO,CAAC,UAAU,EAAE;gBACpB,OAAO,CAAC,QAAQ,EAAE;aACnB,CAAC,CAAC;YAEL,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;;;;SAnBU,uBAAuB"}
|
|
@@ -3,4 +3,7 @@ import type { CoreLicenseOptions } from '../types/options.js';
|
|
|
3
3
|
export declare class CoreLicenseModule {
|
|
4
4
|
static forRoot(options: CoreLicenseOptions): DynamicModule;
|
|
5
5
|
}
|
|
6
|
+
export { CoreLicenseGuard } from './nest-guard.js';
|
|
7
|
+
export { CoreLicenseFeatureGuard } from './nest-feature-guard.js';
|
|
8
|
+
export { RequireFeature, REQUIRE_FEATURE_KEY } from './require-feature.decorator.js';
|
|
6
9
|
//# sourceMappingURL=nest-module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nest-module.d.ts","sourceRoot":"","sources":["../../src/guards/nest-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"nest-module.d.ts","sourceRoot":"","sources":["../../src/guards/nest-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa;CAsB3D;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { APP_FILTER } from '@nestjs/core';
|
|
1
2
|
import { CoreLicense } from '../core-license.js';
|
|
3
|
+
import { CoreLicenseExceptionFilter } from './nest-exception-filter.js';
|
|
4
|
+
import { CoreLicenseFeatureGuard } from './nest-feature-guard.js';
|
|
2
5
|
import { CoreLicenseGuard } from './nest-guard.js';
|
|
3
6
|
export class CoreLicenseModule {
|
|
4
7
|
static forRoot(options) {
|
|
@@ -12,10 +15,18 @@ export class CoreLicenseModule {
|
|
|
12
15
|
};
|
|
13
16
|
return {
|
|
14
17
|
module: CoreLicenseModule,
|
|
15
|
-
providers: [
|
|
16
|
-
|
|
18
|
+
providers: [
|
|
19
|
+
licenseProvider,
|
|
20
|
+
CoreLicenseGuard,
|
|
21
|
+
CoreLicenseFeatureGuard,
|
|
22
|
+
{ provide: APP_FILTER, useClass: CoreLicenseExceptionFilter },
|
|
23
|
+
],
|
|
24
|
+
exports: [CoreLicense, CoreLicenseGuard, CoreLicenseFeatureGuard],
|
|
17
25
|
global: true,
|
|
18
26
|
};
|
|
19
27
|
}
|
|
20
28
|
}
|
|
29
|
+
export { CoreLicenseGuard } from './nest-guard.js';
|
|
30
|
+
export { CoreLicenseFeatureGuard } from './nest-feature-guard.js';
|
|
31
|
+
export { RequireFeature, REQUIRE_FEATURE_KEY } from './require-feature.decorator.js';
|
|
21
32
|
//# sourceMappingURL=nest-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nest-module.js","sourceRoot":"","sources":["../../src/guards/nest-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,MAAM,eAAe,GAAG;YACtB,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,iBAAiB;YACzB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"nest-module.js","sourceRoot":"","sources":["../../src/guards/nest-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,MAAM,eAAe,GAAG;YACtB,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,iBAAiB;YACzB,SAAS,EAAE;gBACT,eAAe;gBACf,gBAAgB;gBAChB,uBAAuB;gBACvB,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,0BAA0B,EAAE;aAC9D;YACD,OAAO,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,uBAAuB,CAAC;YACjE,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { CoreLicenseModule } from './nest-module.js';
|
|
2
|
+
export { CoreLicenseGuard } from './nest-guard.js';
|
|
3
|
+
export { CoreLicenseFeatureGuard } from './nest-feature-guard.js';
|
|
4
|
+
export { CoreLicenseExceptionFilter } from './nest-exception-filter.js';
|
|
5
|
+
export { RequireFeature, REQUIRE_FEATURE_KEY } from './require-feature.decorator.js';
|
|
6
|
+
//# sourceMappingURL=nestjs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../../src/guards/nestjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { CoreLicenseModule } from './nest-module.js';
|
|
2
|
+
export { CoreLicenseGuard } from './nest-guard.js';
|
|
3
|
+
export { CoreLicenseFeatureGuard } from './nest-feature-guard.js';
|
|
4
|
+
export { CoreLicenseExceptionFilter } from './nest-exception-filter.js';
|
|
5
|
+
export { RequireFeature, REQUIRE_FEATURE_KEY } from './require-feature.decorator.js';
|
|
6
|
+
//# sourceMappingURL=nestjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../src/guards/nestjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-guard.d.ts","sourceRoot":"","sources":["../../src/guards/quota-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quota-guard.d.ts","sourceRoot":"","sources":["../../src/guards/quota-guard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,IAAI,CAaN;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAON;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,SAAoB,GAAG,UAAU,CAErE"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { QuotaExceededError } from '../errors/quota-error.js';
|
|
2
|
+
import { LicenseInvalidError } from '../errors/license-error.js';
|
|
3
|
+
import { LicenseErrorCode } from '../errors/codes.js';
|
|
2
4
|
export function assertWithinLimit(policy, limitName, currentValue) {
|
|
3
5
|
if (!policy) {
|
|
4
|
-
|
|
6
|
+
throw new LicenseInvalidError('No active policy available', {
|
|
7
|
+
code: LicenseErrorCode.POLICY_NOT_AVAILABLE,
|
|
8
|
+
source: 'quota-guard.assertWithinLimit',
|
|
9
|
+
});
|
|
5
10
|
}
|
|
6
11
|
const limit = policy.limits[limitName];
|
|
7
12
|
if (limit !== undefined && currentValue > limit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-guard.js","sourceRoot":"","sources":["../../src/guards/quota-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-guard.js","sourceRoot":"","sources":["../../src/guards/quota-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,SAAiB,EACjB,YAAoB;IAEpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,EAAE;YAC1D,IAAI,EAAE,gBAAgB,CAAC,oBAAoB;YAC3C,MAAM,EAAE,+BAA+B;SACxC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;QAChD,MAAM,IAAI,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAiB,EACjB,SAAiB,EACjB,MAAc,EACd,UAAmB;IAEnB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;IAE9B,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,GAAG,UAAU,EAAE,CAAC;QAClD,MAAM,IAAI,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAI,GAAG,eAAe,EAAE;IACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC9B,CAAC"}
|