@corelicense/node 0.2.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 +126 -0
- package/dist/audit/local-audit.d.ts +22 -0
- package/dist/audit/local-audit.d.ts.map +1 -0
- package/dist/audit/local-audit.js +21 -0
- package/dist/audit/local-audit.js.map +1 -0
- package/dist/cache/cache-store.d.ts +8 -0
- package/dist/cache/cache-store.d.ts.map +1 -0
- package/dist/cache/cache-store.js +2 -0
- package/dist/cache/cache-store.js.map +1 -0
- package/dist/cache/file-cache-store.d.ts +12 -0
- package/dist/cache/file-cache-store.d.ts.map +1 -0
- package/dist/cache/file-cache-store.js +64 -0
- package/dist/cache/file-cache-store.js.map +1 -0
- package/dist/cache/memory-cache-store.d.ts +9 -0
- package/dist/cache/memory-cache-store.d.ts.map +1 -0
- package/dist/cache/memory-cache-store.js +17 -0
- package/dist/cache/memory-cache-store.js.map +1 -0
- package/dist/client/license-api-client.d.ts +14 -0
- package/dist/client/license-api-client.d.ts.map +1 -0
- package/dist/client/license-api-client.js +36 -0
- package/dist/client/license-api-client.js.map +1 -0
- package/dist/client/public-keys-client.d.ts +11 -0
- package/dist/client/public-keys-client.d.ts.map +1 -0
- package/dist/client/public-keys-client.js +31 -0
- package/dist/client/public-keys-client.js.map +1 -0
- package/dist/core-license.d.ts +56 -0
- package/dist/core-license.d.ts.map +1 -0
- package/dist/core-license.js +411 -0
- package/dist/core-license.js.map +1 -0
- package/dist/crypto/key-loader.d.ts +4 -0
- package/dist/crypto/key-loader.d.ts.map +1 -0
- package/dist/crypto/key-loader.js +19 -0
- package/dist/crypto/key-loader.js.map +1 -0
- package/dist/crypto/public-key-resolver.d.ts +16 -0
- package/dist/crypto/public-key-resolver.d.ts.map +1 -0
- package/dist/crypto/public-key-resolver.js +61 -0
- package/dist/crypto/public-key-resolver.js.map +1 -0
- package/dist/crypto/verify-policy-token.d.ts +7 -0
- package/dist/crypto/verify-policy-token.d.ts.map +1 -0
- package/dist/crypto/verify-policy-token.js +47 -0
- package/dist/crypto/verify-policy-token.js.map +1 -0
- package/dist/env/load-options-from-env.d.ts +7 -0
- package/dist/env/load-options-from-env.d.ts.map +1 -0
- package/dist/env/load-options-from-env.js +34 -0
- package/dist/env/load-options-from-env.js.map +1 -0
- package/dist/env/resolve-api-url.d.ts +12 -0
- package/dist/env/resolve-api-url.d.ts.map +1 -0
- package/dist/env/resolve-api-url.js +44 -0
- package/dist/env/resolve-api-url.js.map +1 -0
- package/dist/errors/feature-error.d.ts +6 -0
- package/dist/errors/feature-error.d.ts.map +1 -0
- package/dist/errors/feature-error.js +10 -0
- package/dist/errors/feature-error.js.map +1 -0
- package/dist/errors/index.d.ts +5 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +5 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/license-error.d.ts +22 -0
- package/dist/errors/license-error.d.ts.map +1 -0
- package/dist/errors/license-error.js +41 -0
- package/dist/errors/license-error.js.map +1 -0
- package/dist/errors/policy-error.d.ts +5 -0
- package/dist/errors/policy-error.d.ts.map +1 -0
- package/dist/errors/policy-error.js +8 -0
- package/dist/errors/policy-error.js.map +1 -0
- package/dist/errors/quota-error.d.ts +8 -0
- package/dist/errors/quota-error.d.ts.map +1 -0
- package/dist/errors/quota-error.js +14 -0
- package/dist/errors/quota-error.js.map +1 -0
- package/dist/events/event-bus.d.ts +17 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +21 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/guards/cli-guard.d.ts +3 -0
- package/dist/guards/cli-guard.d.ts.map +1 -0
- package/dist/guards/cli-guard.js +22 -0
- package/dist/guards/cli-guard.js.map +1 -0
- package/dist/guards/express-middleware.d.ts +5 -0
- package/dist/guards/express-middleware.d.ts.map +1 -0
- package/dist/guards/express-middleware.js +27 -0
- package/dist/guards/express-middleware.js.map +1 -0
- package/dist/guards/fastify-plugin.d.ts +9 -0
- package/dist/guards/fastify-plugin.d.ts.map +1 -0
- package/dist/guards/fastify-plugin.js +32 -0
- package/dist/guards/fastify-plugin.js.map +1 -0
- package/dist/guards/feature-guard.d.ts +3 -0
- package/dist/guards/feature-guard.d.ts.map +1 -0
- package/dist/guards/feature-guard.js +18 -0
- package/dist/guards/feature-guard.js.map +1 -0
- package/dist/guards/nest-guard.d.ts +8 -0
- package/dist/guards/nest-guard.d.ts.map +1 -0
- package/dist/guards/nest-guard.js +11 -0
- package/dist/guards/nest-guard.js.map +1 -0
- package/dist/guards/nest-module.d.ts +6 -0
- package/dist/guards/nest-module.d.ts.map +1 -0
- package/dist/guards/nest-module.js +21 -0
- package/dist/guards/nest-module.js.map +1 -0
- package/dist/guards/quota-guard.d.ts +7 -0
- package/dist/guards/quota-guard.d.ts.map +1 -0
- package/dist/guards/quota-guard.js +24 -0
- package/dist/guards/quota-guard.js.map +1 -0
- package/dist/guards/worker-guard.d.ts +3 -0
- package/dist/guards/worker-guard.d.ts.map +1 -0
- package/dist/guards/worker-guard.js +23 -0
- package/dist/guards/worker-guard.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/instance/install-id.d.ts +9 -0
- package/dist/instance/install-id.d.ts.map +1 -0
- package/dist/instance/install-id.js +27 -0
- package/dist/instance/install-id.js.map +1 -0
- package/dist/instance/instance-id.d.ts +9 -0
- package/dist/instance/instance-id.d.ts.map +1 -0
- package/dist/instance/instance-id.js +21 -0
- package/dist/instance/instance-id.js.map +1 -0
- package/dist/runtime/module-registry.d.ts +8 -0
- package/dist/runtime/module-registry.d.ts.map +1 -0
- package/dist/runtime/module-registry.js +19 -0
- package/dist/runtime/module-registry.js.map +1 -0
- package/dist/runtime/runtime-config.d.ts +4 -0
- package/dist/runtime/runtime-config.d.ts.map +1 -0
- package/dist/runtime/runtime-config.js +41 -0
- package/dist/runtime/runtime-config.js.map +1 -0
- package/dist/runtime/service-container.d.ts +9 -0
- package/dist/runtime/service-container.d.ts.map +1 -0
- package/dist/runtime/service-container.js +17 -0
- package/dist/runtime/service-container.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/limits.d.ts +11 -0
- package/dist/types/limits.d.ts.map +1 -0
- package/dist/types/limits.js +2 -0
- package/dist/types/limits.js.map +1 -0
- package/dist/types/options.d.ts +62 -0
- package/dist/types/options.d.ts.map +1 -0
- package/dist/types/options.js +2 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/policy.d.ts +41 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +2 -0
- package/dist/types/policy.js.map +1 -0
- package/dist/types/public-keys.d.ts +19 -0
- package/dist/types/public-keys.d.ts.map +1 -0
- package/dist/types/public-keys.js +2 -0
- package/dist/types/public-keys.js.map +1 -0
- package/dist/types/runtime.d.ts +11 -0
- package/dist/types/runtime.d.ts.map +1 -0
- package/dist/types/runtime.js +2 -0
- package/dist/types/runtime.js.map +1 -0
- package/dist/types/status.d.ts +14 -0
- package/dist/types/status.d.ts.map +1 -0
- package/dist/types/status.js +2 -0
- package/dist/types/status.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-guard.d.ts","sourceRoot":"","sources":["../../src/guards/worker-guard.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB1F"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FeatureDisabledError } from '../errors/feature-error.js';
|
|
2
|
+
import { LicenseExpiredError, LicenseInvalidError, LicenseRevokedError, LicenseSuspendedError, OfflineGraceExpiredError, } from '../errors/license-error.js';
|
|
3
|
+
export async function guardWorker(status, workerName) {
|
|
4
|
+
switch (status.status) {
|
|
5
|
+
case 'active':
|
|
6
|
+
case 'limited':
|
|
7
|
+
case 'offline':
|
|
8
|
+
return;
|
|
9
|
+
case 'suspended':
|
|
10
|
+
throw new LicenseSuspendedError(`Worker "${workerName}" is suspended`);
|
|
11
|
+
case 'revoked':
|
|
12
|
+
throw new LicenseRevokedError(`Worker "${workerName}" is revoked`);
|
|
13
|
+
case 'expired':
|
|
14
|
+
throw new LicenseExpiredError(`Worker "${workerName}" is expired`);
|
|
15
|
+
case 'grace_expired':
|
|
16
|
+
throw new OfflineGraceExpiredError(`Worker "${workerName}" grace expired`);
|
|
17
|
+
case 'invalid':
|
|
18
|
+
throw new LicenseInvalidError(`Worker "${workerName}" invalid license`);
|
|
19
|
+
default:
|
|
20
|
+
throw new FeatureDisabledError(`worker.${workerName}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=worker-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-guard.js","sourceRoot":"","sources":["../../src/guards/worker-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAqB,EAAE,UAAkB;IACzE,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,WAAW,UAAU,gBAAgB,CAAC,CAAC;QACzE,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;QACrE,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;QACrE,KAAK,eAAe;YAClB,MAAM,IAAI,wBAAwB,CAAC,WAAW,UAAU,iBAAiB,CAAC,CAAC;QAC7E,KAAK,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC,WAAW,UAAU,mBAAmB,CAAC,CAAC;QAC1E;YACE,MAAM,IAAI,oBAAoB,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { CoreLicense } from './core-license.js';
|
|
2
|
+
export { loadOptionsFromEnv } from './env/load-options-from-env.js';
|
|
3
|
+
export { resolveApiUrl, parseEmbeddedApiUrl } from './env/resolve-api-url.js';
|
|
4
|
+
export * from './types/index.js';
|
|
5
|
+
export * from './errors/index.js';
|
|
6
|
+
export { ModuleRegistry } from './runtime/module-registry.js';
|
|
7
|
+
export { ServiceContainer } from './runtime/service-container.js';
|
|
8
|
+
export { buildRuntimeConfigFromPolicy } from './runtime/runtime-config.js';
|
|
9
|
+
export { createExpressMiddleware } from './guards/express-middleware.js';
|
|
10
|
+
export { coreLicenseFastifyPlugin, createFastifyPlugin } from './guards/fastify-plugin.js';
|
|
11
|
+
export { CoreLicenseGuard } from './guards/nest-guard.js';
|
|
12
|
+
export { CoreLicenseModule } from './guards/nest-module.js';
|
|
13
|
+
export { FileCacheStore } from './cache/file-cache-store.js';
|
|
14
|
+
export { MemoryCacheStore } from './cache/memory-cache-store.js';
|
|
15
|
+
export type { CacheStore, CacheKey } from './cache/cache-store.js';
|
|
16
|
+
export { LicenseApiClient } from './client/license-api-client.js';
|
|
17
|
+
export { PublicKeysClient } from './client/public-keys-client.js';
|
|
18
|
+
export { PublicKeyResolver } from './crypto/public-key-resolver.js';
|
|
19
|
+
export { verifyPolicyToken } from './crypto/verify-policy-token.js';
|
|
20
|
+
export { LocalAudit } from './audit/local-audit.js';
|
|
21
|
+
export { EventBus } from './events/event-bus.js';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export { CoreLicense } from './core-license.js';
|
|
2
|
+
export { loadOptionsFromEnv } from './env/load-options-from-env.js';
|
|
3
|
+
export { resolveApiUrl, parseEmbeddedApiUrl } from './env/resolve-api-url.js';
|
|
4
|
+
export * from './types/index.js';
|
|
5
|
+
export * from './errors/index.js';
|
|
6
|
+
export { ModuleRegistry } from './runtime/module-registry.js';
|
|
7
|
+
export { ServiceContainer } from './runtime/service-container.js';
|
|
8
|
+
export { buildRuntimeConfigFromPolicy } from './runtime/runtime-config.js';
|
|
9
|
+
export { createExpressMiddleware } from './guards/express-middleware.js';
|
|
10
|
+
export { coreLicenseFastifyPlugin, createFastifyPlugin } from './guards/fastify-plugin.js';
|
|
11
|
+
export { CoreLicenseGuard } from './guards/nest-guard.js';
|
|
12
|
+
export { CoreLicenseModule } from './guards/nest-module.js';
|
|
13
|
+
export { FileCacheStore } from './cache/file-cache-store.js';
|
|
14
|
+
export { MemoryCacheStore } from './cache/memory-cache-store.js';
|
|
15
|
+
export { LicenseApiClient } from './client/license-api-client.js';
|
|
16
|
+
export { PublicKeysClient } from './client/public-keys-client.js';
|
|
17
|
+
export { PublicKeyResolver } from './crypto/public-key-resolver.js';
|
|
18
|
+
export { verifyPolicyToken } from './crypto/verify-policy-token.js';
|
|
19
|
+
export { LocalAudit } from './audit/local-audit.js';
|
|
20
|
+
export { EventBus } from './events/event-bus.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface InstallIdStore {
|
|
2
|
+
getOrCreate(): Promise<string>;
|
|
3
|
+
}
|
|
4
|
+
export declare class FileInstallIdStore implements InstallIdStore {
|
|
5
|
+
private readonly cachePath;
|
|
6
|
+
constructor(cachePath: string);
|
|
7
|
+
getOrCreate(): Promise<string>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=install-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-id.d.ts","sourceRoot":"","sources":["../../src/instance/install-id.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,qBAAa,kBAAmB,YAAW,cAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAkBrC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
export class FileInstallIdStore {
|
|
5
|
+
cachePath;
|
|
6
|
+
constructor(cachePath) {
|
|
7
|
+
this.cachePath = cachePath;
|
|
8
|
+
}
|
|
9
|
+
async getOrCreate() {
|
|
10
|
+
const filePath = join(this.cachePath, 'install.id');
|
|
11
|
+
try {
|
|
12
|
+
const existing = await readFile(filePath, 'utf8');
|
|
13
|
+
const trimmed = existing.trim();
|
|
14
|
+
if (trimmed) {
|
|
15
|
+
return trimmed;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// file does not exist yet
|
|
20
|
+
}
|
|
21
|
+
const installId = randomUUID();
|
|
22
|
+
await mkdir(this.cachePath, { recursive: true });
|
|
23
|
+
await writeFile(filePath, installId, 'utf8');
|
|
24
|
+
return installId;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=install-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-id.js","sourceRoot":"","sources":["../../src/instance/install-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAElD,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { InstanceOptions } from '../types/options.js';
|
|
2
|
+
import type { InstallIdStore } from './install-id.js';
|
|
3
|
+
export interface InstanceIdContext {
|
|
4
|
+
productId: string;
|
|
5
|
+
licenseKey: string;
|
|
6
|
+
options?: InstanceOptions;
|
|
7
|
+
}
|
|
8
|
+
export declare function resolveInstanceId(context: InstanceIdContext, installIdStore: InstallIdStore): Promise<string>;
|
|
9
|
+
//# sourceMappingURL=instance-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-id.d.ts","sourceRoot":"","sources":["../../src/instance/instance-id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export async function resolveInstanceId(context, installIdStore) {
|
|
3
|
+
const strategy = context.options?.strategy ?? 'install-id-domain-hash';
|
|
4
|
+
if (strategy === 'custom' && context.options?.customId) {
|
|
5
|
+
return hashSeed(context.options.customId);
|
|
6
|
+
}
|
|
7
|
+
const installId = await installIdStore.getOrCreate();
|
|
8
|
+
const domain = normalizeDomain(context.options?.domain);
|
|
9
|
+
const seed = `${context.productId}:${context.licenseKey}:${installId}:${domain}`;
|
|
10
|
+
return hashSeed(seed);
|
|
11
|
+
}
|
|
12
|
+
function normalizeDomain(domain) {
|
|
13
|
+
if (!domain) {
|
|
14
|
+
return 'default';
|
|
15
|
+
}
|
|
16
|
+
return domain.trim().toLowerCase().replace(/^https?:\/\//, '').replace(/\/$/, '');
|
|
17
|
+
}
|
|
18
|
+
function hashSeed(seed) {
|
|
19
|
+
return createHash('sha256').update(seed).digest('hex');
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=instance-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-id.js","sourceRoot":"","sources":["../../src/instance/instance-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA0B,EAC1B,cAA8B;IAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,IAAI,wBAAwB,CAAC;IAEvE,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;IAEjF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/runtime/module-registry.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAI7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAQvB,IAAI,IAAI,MAAM,EAAE;CAGjB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class ModuleRegistry {
|
|
2
|
+
modules = new Map();
|
|
3
|
+
register(name, module) {
|
|
4
|
+
this.modules.set(name, module);
|
|
5
|
+
}
|
|
6
|
+
has(name) {
|
|
7
|
+
return this.modules.has(name);
|
|
8
|
+
}
|
|
9
|
+
get(name) {
|
|
10
|
+
if (!this.modules.has(name)) {
|
|
11
|
+
throw new Error(`Module ${name} is not available`);
|
|
12
|
+
}
|
|
13
|
+
return this.modules.get(name);
|
|
14
|
+
}
|
|
15
|
+
list() {
|
|
16
|
+
return [...this.modules.keys()];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=module-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/runtime/module-registry.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACR,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEtD,QAAQ,CAAC,IAAY,EAAE,MAAe;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAI,IAAY;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;IACrC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Policy, PolicyTokenPayload } from '../types/policy.js';
|
|
2
|
+
import type { RuntimeConfig } from '../types/runtime.js';
|
|
3
|
+
export declare function buildRuntimeConfigFromPolicy(policy: Policy | PolicyTokenPayload): RuntimeConfig;
|
|
4
|
+
//# sourceMappingURL=runtime-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAa/F"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export function buildRuntimeConfigFromPolicy(policy) {
|
|
2
|
+
const modules = { ...policy.features };
|
|
3
|
+
const routes = deriveRouteFlags(modules);
|
|
4
|
+
const workers = deriveWorkerFlags(modules);
|
|
5
|
+
return {
|
|
6
|
+
mode: policy.status,
|
|
7
|
+
modules,
|
|
8
|
+
limits: { ...policy.limits },
|
|
9
|
+
routes,
|
|
10
|
+
workers,
|
|
11
|
+
policyVersion: policy.policyVersion,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function deriveRouteFlags(modules) {
|
|
15
|
+
const routes = {};
|
|
16
|
+
for (const [name, enabled] of Object.entries(modules)) {
|
|
17
|
+
if (name === 'api' || name === 'dashboard' || name.endsWith('.route')) {
|
|
18
|
+
routes[name] = enabled;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (modules.automation !== undefined) {
|
|
22
|
+
routes.automation = modules.automation;
|
|
23
|
+
}
|
|
24
|
+
if (modules.export !== undefined) {
|
|
25
|
+
routes.export = modules.export;
|
|
26
|
+
}
|
|
27
|
+
return routes;
|
|
28
|
+
}
|
|
29
|
+
function deriveWorkerFlags(modules) {
|
|
30
|
+
const workers = {};
|
|
31
|
+
if (modules.worker !== undefined) {
|
|
32
|
+
workers.main = modules.worker;
|
|
33
|
+
}
|
|
34
|
+
for (const [name, enabled] of Object.entries(modules)) {
|
|
35
|
+
if (name.startsWith('worker.')) {
|
|
36
|
+
workers[name.replace('worker.', '')] = enabled;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return workers;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=runtime-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../../src/runtime/runtime-config.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,4BAA4B,CAAC,MAAmC;IAC9E,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE3C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,OAAO;QACP,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;QAC5B,MAAM;QACN,OAAO;QACP,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgC;IACxD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgC;IACzD,MAAM,OAAO,GAA4B,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;QACjD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type Resolver<T> = () => T | Promise<T>;
|
|
2
|
+
export declare class ServiceContainer {
|
|
3
|
+
private readonly bindings;
|
|
4
|
+
bind<T>(name: string, resolver: Resolver<T>): void;
|
|
5
|
+
resolve<T>(name: string): Promise<T>;
|
|
6
|
+
has(name: string): boolean;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=service-container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-container.d.ts","sourceRoot":"","sources":["../../src/runtime/service-container.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAExC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IAEjE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAI5C,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAU1C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG3B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class ServiceContainer {
|
|
2
|
+
bindings = new Map();
|
|
3
|
+
bind(name, resolver) {
|
|
4
|
+
this.bindings.set(name, resolver);
|
|
5
|
+
}
|
|
6
|
+
async resolve(name) {
|
|
7
|
+
const resolver = this.bindings.get(name);
|
|
8
|
+
if (!resolver) {
|
|
9
|
+
throw new Error(`Service ${name} is not bound`);
|
|
10
|
+
}
|
|
11
|
+
return (await resolver());
|
|
12
|
+
}
|
|
13
|
+
has(name) {
|
|
14
|
+
return this.bindings.has(name);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=service-container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-container.js","sourceRoot":"","sources":["../../src/runtime/service-container.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IACV,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEjE,IAAI,CAAI,IAAY,EAAE,QAAqB;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAA6B,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,IAAY;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,eAAe,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,EAAE,CAAM,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type LimitName = string;
|
|
2
|
+
export type QuotaName = string;
|
|
3
|
+
export interface UsageRecord {
|
|
4
|
+
date: string;
|
|
5
|
+
[quotaName: string]: string | number;
|
|
6
|
+
}
|
|
7
|
+
export interface QuotaUsage {
|
|
8
|
+
date: string;
|
|
9
|
+
quotas: Record<string, number>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/types/limits.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/types/limits.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { LicenseStatusValue } from './status.js';
|
|
2
|
+
export type InstanceStrategy = 'install-id-domain-hash' | 'custom';
|
|
3
|
+
export interface InstanceOptions {
|
|
4
|
+
strategy?: InstanceStrategy;
|
|
5
|
+
domain?: string;
|
|
6
|
+
customId?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AuditOptions {
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
path?: string;
|
|
11
|
+
}
|
|
12
|
+
export type BlockMode = 'block' | 'limited';
|
|
13
|
+
export interface CoreLicenseOptions {
|
|
14
|
+
productId: string;
|
|
15
|
+
licenseKey: string;
|
|
16
|
+
/** Optional override. SDK resolves automatically from license key (CL1.*) or cache. */
|
|
17
|
+
apiUrl?: string;
|
|
18
|
+
/** Optional. When set, SDK skips fetching keys from the server (pin mode). */
|
|
19
|
+
publicKey?: string;
|
|
20
|
+
cachePath?: string;
|
|
21
|
+
checkIntervalMs?: number;
|
|
22
|
+
requestTimeoutMs?: number;
|
|
23
|
+
offlineGrace?: boolean;
|
|
24
|
+
defaultBlockMode?: BlockMode;
|
|
25
|
+
instance?: InstanceOptions;
|
|
26
|
+
audit?: AuditOptions;
|
|
27
|
+
appVersion?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ExpressGuardOptions {
|
|
30
|
+
allowPaths?: string[];
|
|
31
|
+
mode?: BlockMode;
|
|
32
|
+
}
|
|
33
|
+
export interface FastifyGuardOptions {
|
|
34
|
+
allowPaths?: string[];
|
|
35
|
+
mode?: BlockMode;
|
|
36
|
+
}
|
|
37
|
+
export type CoreLicenseEvent = 'statusChanged' | 'policyUpdated' | 'licenseRevoked' | 'licenseSuspended' | 'offlineMode';
|
|
38
|
+
export type CoreLicenseEventHandler<T = unknown> = (payload: T) => void | Promise<void>;
|
|
39
|
+
export interface SdkInfo {
|
|
40
|
+
name: string;
|
|
41
|
+
version: string;
|
|
42
|
+
runtime: 'node';
|
|
43
|
+
nodeVersion: string;
|
|
44
|
+
}
|
|
45
|
+
export interface LicenseCheckRequest {
|
|
46
|
+
productId: string;
|
|
47
|
+
licenseKey: string;
|
|
48
|
+
instanceId: string;
|
|
49
|
+
sdk: SdkInfo;
|
|
50
|
+
appVersion?: string;
|
|
51
|
+
policyTokenHash?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface LicenseCheckResponse {
|
|
54
|
+
ok: boolean;
|
|
55
|
+
status: LicenseStatusValue;
|
|
56
|
+
policyToken?: string;
|
|
57
|
+
serverTime?: string;
|
|
58
|
+
message?: string;
|
|
59
|
+
/** Canonical license server URL returned by check/activate. */
|
|
60
|
+
apiUrl?: string;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { LicenseStatusValue } from './status.js';
|
|
2
|
+
export interface PolicyFeatures {
|
|
3
|
+
[feature: string]: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface PolicyLimits {
|
|
6
|
+
maxUsers?: number;
|
|
7
|
+
maxWorkers?: number;
|
|
8
|
+
maxJobsPerDay?: number;
|
|
9
|
+
maxConcurrentJobs?: number;
|
|
10
|
+
maxDomains?: number;
|
|
11
|
+
maxProjects?: number;
|
|
12
|
+
[limit: string]: number | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface PolicyTokenPayload {
|
|
15
|
+
licenseId: string;
|
|
16
|
+
productId: string;
|
|
17
|
+
customerId?: string;
|
|
18
|
+
instanceId: string;
|
|
19
|
+
status: LicenseStatusValue;
|
|
20
|
+
features: PolicyFeatures;
|
|
21
|
+
limits: PolicyLimits;
|
|
22
|
+
policyVersion: string;
|
|
23
|
+
issuedAt: number;
|
|
24
|
+
expiresAt: number;
|
|
25
|
+
graceUntil: number;
|
|
26
|
+
}
|
|
27
|
+
export interface Policy {
|
|
28
|
+
licenseId: string;
|
|
29
|
+
productId: string;
|
|
30
|
+
customerId?: string;
|
|
31
|
+
instanceId: string;
|
|
32
|
+
status: LicenseStatusValue;
|
|
33
|
+
features: PolicyFeatures;
|
|
34
|
+
limits: PolicyLimits;
|
|
35
|
+
policyVersion: string;
|
|
36
|
+
issuedAt: number;
|
|
37
|
+
expiresAt: number;
|
|
38
|
+
graceUntil: number;
|
|
39
|
+
token?: string;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ProductPublicKey {
|
|
2
|
+
kid: string;
|
|
3
|
+
alg: 'Ed25519';
|
|
4
|
+
publicKey: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ProductKeysResponse {
|
|
7
|
+
keys: ProductPublicKey[];
|
|
8
|
+
}
|
|
9
|
+
export interface CachedPublicKeys {
|
|
10
|
+
productId: string;
|
|
11
|
+
keys: ProductPublicKey[];
|
|
12
|
+
fetchedAt: number;
|
|
13
|
+
}
|
|
14
|
+
export type PublicKeyMode = 'pinned' | 'fetched';
|
|
15
|
+
export interface ResolvedPublicKeys {
|
|
16
|
+
mode: PublicKeyMode;
|
|
17
|
+
keys: ProductPublicKey[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=public-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-keys.d.ts","sourceRoot":"","sources":["../../src/types/public-keys.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,gBAAgB,EAAE,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-keys.js","sourceRoot":"","sources":["../../src/types/public-keys.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LicenseStatusValue } from './status.js';
|
|
2
|
+
import type { PolicyFeatures, PolicyLimits } from './policy.js';
|
|
3
|
+
export interface RuntimeConfig {
|
|
4
|
+
mode: LicenseStatusValue;
|
|
5
|
+
modules: PolicyFeatures;
|
|
6
|
+
limits: PolicyLimits;
|
|
7
|
+
routes: Record<string, boolean>;
|
|
8
|
+
workers: Record<string, boolean>;
|
|
9
|
+
policyVersion: string;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/types/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/types/runtime.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type LicenseStatusValue = 'active' | 'limited' | 'suspended' | 'revoked' | 'expired' | 'offline' | 'grace_expired' | 'invalid';
|
|
2
|
+
export interface LicenseStatus {
|
|
3
|
+
status: LicenseStatusValue;
|
|
4
|
+
licenseId?: string;
|
|
5
|
+
productId?: string;
|
|
6
|
+
instanceId?: string;
|
|
7
|
+
policyVersion?: string;
|
|
8
|
+
issuedAt?: number;
|
|
9
|
+
expiresAt?: number;
|
|
10
|
+
graceUntil?: number;
|
|
11
|
+
offline?: boolean;
|
|
12
|
+
message?: string;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/types/status.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,SAAS,GACT,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/types/status.ts"],"names":[],"mappings":""}
|