@xemahq/license-verifier 0.1.4 → 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/dist/embedded/license-material.generated.d.ts +1 -1
- package/dist/embedded/license-material.generated.d.ts.map +1 -1
- package/dist/embedded/license-material.generated.js +1 -1
- package/dist/embedded/license-material.generated.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/ed25519-fingerprint.d.ts +4 -0
- package/dist/lib/ed25519-fingerprint.d.ts.map +1 -0
- package/dist/lib/ed25519-fingerprint.js +19 -0
- package/dist/lib/ed25519-fingerprint.js.map +1 -0
- package/dist/lib/effective-license.d.ts +2 -0
- package/dist/lib/effective-license.d.ts.map +1 -1
- package/dist/lib/effective-license.js +10 -0
- package/dist/lib/effective-license.js.map +1 -1
- package/dist/lib/evaluate-binding.d.ts +8 -0
- package/dist/lib/evaluate-binding.d.ts.map +1 -0
- package/dist/lib/evaluate-binding.js +21 -0
- package/dist/lib/evaluate-binding.js.map +1 -0
- package/dist/lib/installation-identity.d.ts +18 -0
- package/dist/lib/installation-identity.d.ts.map +1 -0
- package/dist/lib/installation-identity.js +55 -0
- package/dist/lib/installation-identity.js.map +1 -0
- package/dist/lib/license-claims.d.ts +10 -1
- package/dist/lib/license-claims.d.ts.map +1 -1
- package/dist/lib/license-enums.d.ts +7 -1
- package/dist/lib/license-enums.d.ts.map +1 -1
- package/dist/lib/license-enums.js +9 -2
- package/dist/lib/license-enums.js.map +1 -1
- package/dist/lib/oss-license.d.ts.map +1 -1
- package/dist/lib/oss-license.js +2 -1
- package/dist/lib/oss-license.js.map +1 -1
- package/dist/lib/parse-license-claims.d.ts.map +1 -1
- package/dist/lib/parse-license-claims.js +36 -1
- package/dist/lib/parse-license-claims.js.map +1 -1
- package/dist/lib/trust-store.d.ts.map +1 -1
- package/dist/lib/trust-store.js +3 -12
- package/dist/lib/trust-store.js.map +1 -1
- package/dist/lib/verification-failure.d.ts +3 -1
- package/dist/lib/verification-failure.d.ts.map +1 -1
- package/dist/lib/verification-failure.js +2 -0
- package/dist/lib/verification-failure.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const LICENSE_MATERIAL_PROVISIONED = true;
|
|
2
2
|
export declare const EMBEDDED_LICENSE_PUBLIC_KEYS: readonly string[];
|
|
3
|
-
export declare const EMBEDDED_OSS_LICENSE = "eyJhbGciOiJFZERTQSIsImtpZCI6IkN2b0VUVlNGQTY1c2R6SjJlY0pCcEY3cm4tbXhJNjJVYU54UU50WmttdUUiLCJ0eXAiOiJhcHBsaWNhdGlvbi92bmQueGVtYS5saWNlbnNlK2p3cyJ9.
|
|
3
|
+
export declare const EMBEDDED_OSS_LICENSE = "eyJhbGciOiJFZERTQSIsImtpZCI6IkN2b0VUVlNGQTY1c2R6SjJlY0pCcEY3cm4tbXhJNjJVYU54UU50WmttdUUiLCJ0eXAiOiJhcHBsaWNhdGlvbi92bmQueGVtYS5saWNlbnNlK2p3cyJ9.eyJ2ZXJzaW9uIjoyLCJsaWNlbnNlSWQiOiJ4ZW1hLW9zcyIsImlzc3VlciI6Imh0dHBzOi8vbGljZW5zZS54ZW1hLmRldiIsInN1YmplY3QiOnsiY3VzdG9tZXJJZCI6InhlbWEtb3Blbi1zb3VyY2UiLCJjdXN0b21lck5hbWUiOiJYZW1hIE9wZW4gU291cmNlIn0sInRpZXIiOiJvcGVuLXNvdXJjZSIsInN0YXR1cyI6ImFjdGl2ZSIsImVudGl0bGVtZW50cyI6W3sia2luZCI6ImRpc3RyaWJ1dGlvbiIsImlkIjoib3NzIn1dLCJsaW1pdHMiOnsibm9kZXMiOm51bGwsInNlYXRzIjpudWxsfSwiYmluZGluZyI6eyJraW5kIjoidW5ib3VuZCJ9LCJpc3N1ZWRBdCI6IjIwMjYtMDktMTBUMTM6MTU6MDUuOTI1WiIsImV4cGlyZXNBdCI6bnVsbH0.sh-LyGOScDoGBMCEaebfnDIeFbPWnem6ax3mw_FXIUVvAyUwtrS13qTAyMTUPASWsUe7hNERStwLv2Tq_KDaCA";
|
|
4
4
|
//# sourceMappingURL=license-material.generated.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-material.generated.d.ts","sourceRoot":"","sources":["../../src/embedded/license-material.generated.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAGjD,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAEzD,CAAC;AAGF,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"license-material.generated.d.ts","sourceRoot":"","sources":["../../src/embedded/license-material.generated.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAGjD,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAEzD,CAAC;AAGF,eAAO,MAAM,oBAAoB,gtBAC8qB,CAAC"}
|
|
@@ -5,5 +5,5 @@ exports.LICENSE_MATERIAL_PROVISIONED = true;
|
|
|
5
5
|
exports.EMBEDDED_LICENSE_PUBLIC_KEYS = [
|
|
6
6
|
'-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVFnSEzN+VQLGQbDozqRCN5LQLXNq68GPL9i+nLwBmgo=\n-----END PUBLIC KEY-----\n',
|
|
7
7
|
];
|
|
8
|
-
exports.EMBEDDED_OSS_LICENSE = 'eyJhbGciOiJFZERTQSIsImtpZCI6IkN2b0VUVlNGQTY1c2R6SjJlY0pCcEY3cm4tbXhJNjJVYU54UU50WmttdUUiLCJ0eXAiOiJhcHBsaWNhdGlvbi92bmQueGVtYS5saWNlbnNlK2p3cyJ9.
|
|
8
|
+
exports.EMBEDDED_OSS_LICENSE = 'eyJhbGciOiJFZERTQSIsImtpZCI6IkN2b0VUVlNGQTY1c2R6SjJlY0pCcEY3cm4tbXhJNjJVYU54UU50WmttdUUiLCJ0eXAiOiJhcHBsaWNhdGlvbi92bmQueGVtYS5saWNlbnNlK2p3cyJ9.eyJ2ZXJzaW9uIjoyLCJsaWNlbnNlSWQiOiJ4ZW1hLW9zcyIsImlzc3VlciI6Imh0dHBzOi8vbGljZW5zZS54ZW1hLmRldiIsInN1YmplY3QiOnsiY3VzdG9tZXJJZCI6InhlbWEtb3Blbi1zb3VyY2UiLCJjdXN0b21lck5hbWUiOiJYZW1hIE9wZW4gU291cmNlIn0sInRpZXIiOiJvcGVuLXNvdXJjZSIsInN0YXR1cyI6ImFjdGl2ZSIsImVudGl0bGVtZW50cyI6W3sia2luZCI6ImRpc3RyaWJ1dGlvbiIsImlkIjoib3NzIn1dLCJsaW1pdHMiOnsibm9kZXMiOm51bGwsInNlYXRzIjpudWxsfSwiYmluZGluZyI6eyJraW5kIjoidW5ib3VuZCJ9LCJpc3N1ZWRBdCI6IjIwMjYtMDktMTBUMTM6MTU6MDUuOTI1WiIsImV4cGlyZXNBdCI6bnVsbH0.sh-LyGOScDoGBMCEaebfnDIeFbPWnem6ax3mw_FXIUVvAyUwtrS13qTAyMTUPASWsUe7hNERStwLv2Tq_KDaCA';
|
|
9
9
|
//# sourceMappingURL=license-material.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-material.generated.js","sourceRoot":"","sources":["../../src/embedded/license-material.generated.ts"],"names":[],"mappings":";;;AAUa,QAAA,4BAA4B,GAAG,IAAI,CAAC;AAGpC,QAAA,4BAA4B,GAAsB;IAC7D,sHAAsH;CACvH,CAAC;AAGW,QAAA,oBAAoB,GAC/B,
|
|
1
|
+
{"version":3,"file":"license-material.generated.js","sourceRoot":"","sources":["../../src/embedded/license-material.generated.ts"],"names":[],"mappings":";;;AAUa,QAAA,4BAA4B,GAAG,IAAI,CAAC;AAGpC,QAAA,4BAA4B,GAAsB;IAC7D,sHAAsH;CACvH,CAAC;AAGW,QAAA,oBAAoB,GAC/B,6sBAA6sB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { LicenseSource, resolveEffectiveLicense, type EffectiveLicense, type EffectiveLicenseUnverifiable, type EffectiveLicenseVerified, type ResolveEffectiveLicenseInput, } from './lib/effective-license.ts';
|
|
2
2
|
export { getEmbeddedOssLicense, getProductionLicenseTrustStore, isLicenseMaterialProvisioned, verifyEmbeddedOssLicense, } from './lib/embedded-license.ts';
|
|
3
|
+
export { evaluateLicenseBinding, type LicenseBindingDecision, } from './lib/evaluate-binding.ts';
|
|
4
|
+
export { computeInstallationId, generateInstallationIdentity, installationIdentityFromPrivateKey, proveInstallationIdentity, type GeneratedInstallationIdentity, type InstallationIdentity, type ProvenInstallationIdentity, } from './lib/installation-identity.ts';
|
|
3
5
|
export { EntitlementDenialReason, evaluateEntitlement, type EntitlementDecision, type EntitlementQuery, } from './lib/evaluate-entitlement.ts';
|
|
4
6
|
export { LimitDecisionReason, evaluateLimit, type LimitDecision, } from './lib/evaluate-limit.ts';
|
|
5
|
-
export type { LicenseClaims, LicenseEntitlement, LicenseJwsHeader, LicenseLimitValue, LicenseLimits, LicenseSubject, } from './lib/license-claims.ts';
|
|
6
|
-
export { CANONICAL_IDENTIFIER_PATTERN, ENTITLEMENT_ID_WILDCARD, EntitlementAction, EntitlementKind, LICENSE_GRACE_PERIOD_MS, LICENSE_JWS_TYPE, LICENSE_LIMIT_UNLIMITED, LicenseClaimsVersion, LicenseLifecycleStage, LicenseLimitKind, LicenseSignatureAlgorithm, LicenseStatus, LicenseTier, OSS_DISTRIBUTION_ID, OSS_LICENSE_CUSTOMER_ID, OSS_LICENSE_CUSTOMER_NAME, OSS_LICENSE_ID, XEMA_LICENSE_ISSUER, } from './lib/license-enums.ts';
|
|
7
|
+
export type { LicenseBinding, LicenseClaims, LicenseEntitlement, LicenseInstallationBinding, LicenseJwsHeader, LicenseLimitValue, LicenseLimits, LicenseSubject, LicenseUnboundBinding, } from './lib/license-claims.ts';
|
|
8
|
+
export { CANONICAL_IDENTIFIER_PATTERN, ENTITLEMENT_ID_WILDCARD, EntitlementAction, EntitlementKind, INSTALLATION_ID_PATTERN, INSTALLATION_ID_PREFIX, LICENSE_GRACE_PERIOD_MS, LICENSE_JWS_TYPE, LICENSE_LIMIT_UNLIMITED, LicenseBindingKind, LicenseClaimsVersion, LicenseLifecycleStage, LicenseLimitKind, LicenseSignatureAlgorithm, LicenseStatus, LicenseTier, OSS_DISTRIBUTION_ID, OSS_LICENSE_CUSTOMER_ID, OSS_LICENSE_CUSTOMER_NAME, OSS_LICENSE_ID, XEMA_LICENSE_ISSUER, } from './lib/license-enums.ts';
|
|
7
9
|
export { buildOssLicenseClaims } from './lib/oss-license.ts';
|
|
8
10
|
export { DEFAULT_CLOCK_SKEW_TOLERANCE_MS, MAX_CLOCK_SKEW_TOLERANCE_MS, resolveLicenseState, type LicenseState, type ResolveLicenseStateOptions, } from './lib/resolve-license-state.ts';
|
|
9
11
|
export { computeLicenseKeyId, createLicenseTrustStore, type LicenseTrustStore, } from './lib/trust-store.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,KAAK,aAAa,GACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,KAAK,aAAa,GACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,0BAA0B,GAChC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,8BAA8B,EAC9B,KAAK,0BAA0B,GAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EACb,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.verifyLicense = exports.LicenseVerificationFailureCode = exports.createLicenseTrustStore = exports.computeLicenseKeyId = exports.resolveLicenseState = exports.MAX_CLOCK_SKEW_TOLERANCE_MS = exports.DEFAULT_CLOCK_SKEW_TOLERANCE_MS = exports.buildOssLicenseClaims = exports.XEMA_LICENSE_ISSUER = exports.OSS_LICENSE_ID = exports.OSS_LICENSE_CUSTOMER_NAME = exports.OSS_LICENSE_CUSTOMER_ID = exports.OSS_DISTRIBUTION_ID = exports.LicenseTier = exports.LicenseStatus = exports.LicenseSignatureAlgorithm = exports.LicenseLimitKind = exports.LicenseLifecycleStage = exports.LicenseClaimsVersion = exports.LICENSE_LIMIT_UNLIMITED = exports.LICENSE_JWS_TYPE = exports.LICENSE_GRACE_PERIOD_MS = exports.EntitlementKind = exports.EntitlementAction = exports.ENTITLEMENT_ID_WILDCARD = exports.CANONICAL_IDENTIFIER_PATTERN = exports.evaluateLimit = exports.LimitDecisionReason = exports.evaluateEntitlement = exports.EntitlementDenialReason = exports.verifyEmbeddedOssLicense = exports.isLicenseMaterialProvisioned = exports.getProductionLicenseTrustStore = exports.getEmbeddedOssLicense = exports.resolveEffectiveLicense = exports.LicenseSource = void 0;
|
|
3
|
+
exports.verifyLicense = exports.LicenseVerificationFailureCode = exports.createLicenseTrustStore = exports.computeLicenseKeyId = exports.resolveLicenseState = exports.MAX_CLOCK_SKEW_TOLERANCE_MS = exports.DEFAULT_CLOCK_SKEW_TOLERANCE_MS = exports.buildOssLicenseClaims = exports.XEMA_LICENSE_ISSUER = exports.OSS_LICENSE_ID = exports.OSS_LICENSE_CUSTOMER_NAME = exports.OSS_LICENSE_CUSTOMER_ID = exports.OSS_DISTRIBUTION_ID = exports.LicenseTier = exports.LicenseStatus = exports.LicenseSignatureAlgorithm = exports.LicenseLimitKind = exports.LicenseLifecycleStage = exports.LicenseClaimsVersion = exports.LicenseBindingKind = exports.LICENSE_LIMIT_UNLIMITED = exports.LICENSE_JWS_TYPE = exports.LICENSE_GRACE_PERIOD_MS = exports.INSTALLATION_ID_PREFIX = exports.INSTALLATION_ID_PATTERN = exports.EntitlementKind = exports.EntitlementAction = exports.ENTITLEMENT_ID_WILDCARD = exports.CANONICAL_IDENTIFIER_PATTERN = exports.evaluateLimit = exports.LimitDecisionReason = exports.evaluateEntitlement = exports.EntitlementDenialReason = exports.proveInstallationIdentity = exports.installationIdentityFromPrivateKey = exports.generateInstallationIdentity = exports.computeInstallationId = exports.evaluateLicenseBinding = exports.verifyEmbeddedOssLicense = exports.isLicenseMaterialProvisioned = exports.getProductionLicenseTrustStore = exports.getEmbeddedOssLicense = exports.resolveEffectiveLicense = exports.LicenseSource = void 0;
|
|
4
4
|
var effective_license_ts_1 = require("./lib/effective-license.js");
|
|
5
5
|
Object.defineProperty(exports, "LicenseSource", { enumerable: true, get: function () { return effective_license_ts_1.LicenseSource; } });
|
|
6
6
|
Object.defineProperty(exports, "resolveEffectiveLicense", { enumerable: true, get: function () { return effective_license_ts_1.resolveEffectiveLicense; } });
|
|
@@ -9,6 +9,13 @@ Object.defineProperty(exports, "getEmbeddedOssLicense", { enumerable: true, get:
|
|
|
9
9
|
Object.defineProperty(exports, "getProductionLicenseTrustStore", { enumerable: true, get: function () { return embedded_license_ts_1.getProductionLicenseTrustStore; } });
|
|
10
10
|
Object.defineProperty(exports, "isLicenseMaterialProvisioned", { enumerable: true, get: function () { return embedded_license_ts_1.isLicenseMaterialProvisioned; } });
|
|
11
11
|
Object.defineProperty(exports, "verifyEmbeddedOssLicense", { enumerable: true, get: function () { return embedded_license_ts_1.verifyEmbeddedOssLicense; } });
|
|
12
|
+
var evaluate_binding_ts_1 = require("./lib/evaluate-binding.js");
|
|
13
|
+
Object.defineProperty(exports, "evaluateLicenseBinding", { enumerable: true, get: function () { return evaluate_binding_ts_1.evaluateLicenseBinding; } });
|
|
14
|
+
var installation_identity_ts_1 = require("./lib/installation-identity.js");
|
|
15
|
+
Object.defineProperty(exports, "computeInstallationId", { enumerable: true, get: function () { return installation_identity_ts_1.computeInstallationId; } });
|
|
16
|
+
Object.defineProperty(exports, "generateInstallationIdentity", { enumerable: true, get: function () { return installation_identity_ts_1.generateInstallationIdentity; } });
|
|
17
|
+
Object.defineProperty(exports, "installationIdentityFromPrivateKey", { enumerable: true, get: function () { return installation_identity_ts_1.installationIdentityFromPrivateKey; } });
|
|
18
|
+
Object.defineProperty(exports, "proveInstallationIdentity", { enumerable: true, get: function () { return installation_identity_ts_1.proveInstallationIdentity; } });
|
|
12
19
|
var evaluate_entitlement_ts_1 = require("./lib/evaluate-entitlement.js");
|
|
13
20
|
Object.defineProperty(exports, "EntitlementDenialReason", { enumerable: true, get: function () { return evaluate_entitlement_ts_1.EntitlementDenialReason; } });
|
|
14
21
|
Object.defineProperty(exports, "evaluateEntitlement", { enumerable: true, get: function () { return evaluate_entitlement_ts_1.evaluateEntitlement; } });
|
|
@@ -20,9 +27,12 @@ Object.defineProperty(exports, "CANONICAL_IDENTIFIER_PATTERN", { enumerable: tru
|
|
|
20
27
|
Object.defineProperty(exports, "ENTITLEMENT_ID_WILDCARD", { enumerable: true, get: function () { return license_enums_ts_1.ENTITLEMENT_ID_WILDCARD; } });
|
|
21
28
|
Object.defineProperty(exports, "EntitlementAction", { enumerable: true, get: function () { return license_enums_ts_1.EntitlementAction; } });
|
|
22
29
|
Object.defineProperty(exports, "EntitlementKind", { enumerable: true, get: function () { return license_enums_ts_1.EntitlementKind; } });
|
|
30
|
+
Object.defineProperty(exports, "INSTALLATION_ID_PATTERN", { enumerable: true, get: function () { return license_enums_ts_1.INSTALLATION_ID_PATTERN; } });
|
|
31
|
+
Object.defineProperty(exports, "INSTALLATION_ID_PREFIX", { enumerable: true, get: function () { return license_enums_ts_1.INSTALLATION_ID_PREFIX; } });
|
|
23
32
|
Object.defineProperty(exports, "LICENSE_GRACE_PERIOD_MS", { enumerable: true, get: function () { return license_enums_ts_1.LICENSE_GRACE_PERIOD_MS; } });
|
|
24
33
|
Object.defineProperty(exports, "LICENSE_JWS_TYPE", { enumerable: true, get: function () { return license_enums_ts_1.LICENSE_JWS_TYPE; } });
|
|
25
34
|
Object.defineProperty(exports, "LICENSE_LIMIT_UNLIMITED", { enumerable: true, get: function () { return license_enums_ts_1.LICENSE_LIMIT_UNLIMITED; } });
|
|
35
|
+
Object.defineProperty(exports, "LicenseBindingKind", { enumerable: true, get: function () { return license_enums_ts_1.LicenseBindingKind; } });
|
|
26
36
|
Object.defineProperty(exports, "LicenseClaimsVersion", { enumerable: true, get: function () { return license_enums_ts_1.LicenseClaimsVersion; } });
|
|
27
37
|
Object.defineProperty(exports, "LicenseLifecycleStage", { enumerable: true, get: function () { return license_enums_ts_1.LicenseLifecycleStage; } });
|
|
28
38
|
Object.defineProperty(exports, "LicenseLimitKind", { enumerable: true, get: function () { return license_enums_ts_1.LicenseLimitKind; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mEAOoC;AANlC,qHAAA,aAAa,OAAA;AACb,+HAAA,uBAAuB,OAAA;AAMzB,iEAKmC;AAJjC,4HAAA,qBAAqB,OAAA;AACrB,qIAAA,8BAA8B,OAAA;AAC9B,mIAAA,4BAA4B,OAAA;AAC5B,+HAAA,wBAAwB,OAAA;AAE1B,yEAKuC;AAJrC,kIAAA,uBAAuB,OAAA;AACvB,8HAAA,mBAAmB,OAAA;AAIrB,6DAIiC;AAH/B,wHAAA,mBAAmB,OAAA;AACnB,kHAAA,aAAa,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mEAOoC;AANlC,qHAAA,aAAa,OAAA;AACb,+HAAA,uBAAuB,OAAA;AAMzB,iEAKmC;AAJjC,4HAAA,qBAAqB,OAAA;AACrB,qIAAA,8BAA8B,OAAA;AAC9B,mIAAA,4BAA4B,OAAA;AAC5B,+HAAA,wBAAwB,OAAA;AAE1B,iEAGmC;AAFjC,6HAAA,sBAAsB,OAAA;AAGxB,2EAQwC;AAPtC,iIAAA,qBAAqB,OAAA;AACrB,wIAAA,4BAA4B,OAAA;AAC5B,8IAAA,kCAAkC,OAAA;AAClC,qIAAA,yBAAyB,OAAA;AAK3B,yEAKuC;AAJrC,kIAAA,uBAAuB,OAAA;AACvB,8HAAA,mBAAmB,OAAA;AAIrB,6DAIiC;AAH/B,wHAAA,mBAAmB,OAAA;AACnB,kHAAA,aAAa,OAAA;AAcf,2DAsBgC;AArB9B,gIAAA,4BAA4B,OAAA;AAC5B,2HAAA,uBAAuB,OAAA;AACvB,qHAAA,iBAAiB,OAAA;AACjB,mHAAA,eAAe,OAAA;AACf,2HAAA,uBAAuB,OAAA;AACvB,0HAAA,sBAAsB,OAAA;AACtB,2HAAA,uBAAuB,OAAA;AACvB,oHAAA,gBAAgB,OAAA;AAChB,2HAAA,uBAAuB,OAAA;AACvB,sHAAA,kBAAkB,OAAA;AAClB,wHAAA,oBAAoB,OAAA;AACpB,yHAAA,qBAAqB,OAAA;AACrB,oHAAA,gBAAgB,OAAA;AAChB,6HAAA,yBAAyB,OAAA;AACzB,iHAAA,aAAa,OAAA;AACb,+GAAA,WAAW,OAAA;AACX,uHAAA,mBAAmB,OAAA;AACnB,2HAAA,uBAAuB,OAAA;AACvB,6HAAA,yBAAyB,OAAA;AACzB,kHAAA,cAAc,OAAA;AACd,uHAAA,mBAAmB,OAAA;AAErB,uDAA6D;AAApD,uHAAA,qBAAqB,OAAA;AAC9B,2EAMwC;AALtC,2IAAA,+BAA+B,OAAA;AAC/B,uIAAA,2BAA2B,OAAA;AAC3B,+HAAA,mBAAmB,OAAA;AAIrB,uDAI8B;AAH5B,qHAAA,mBAAmB,OAAA;AACnB,yHAAA,uBAAuB,OAAA;AAGzB,yEAGuC;AAFrC,yIAAA,8BAA8B,OAAA;AAGhC,6DAKiC;AAJ/B,kHAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ed25519-fingerprint.d.ts","sourceRoot":"","sources":["../../src/lib/ed25519-fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAiC1E,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAOxE;AASD,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAMlD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ed25519PublicKeyFingerprint = ed25519PublicKeyFingerprint;
|
|
4
|
+
exports.assertEd25519 = assertEd25519;
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
const base64url_ts_1 = require("./base64url.js");
|
|
7
|
+
const REQUIRED_KEY_TYPE = 'ed25519';
|
|
8
|
+
function ed25519PublicKeyFingerprint(publicKeyPem) {
|
|
9
|
+
const key = (0, node_crypto_1.createPublicKey)({ key: publicKeyPem, format: 'pem' });
|
|
10
|
+
assertEd25519(key);
|
|
11
|
+
const spki = key.export({ format: 'der', type: 'spki' });
|
|
12
|
+
return (0, base64url_ts_1.encodeBase64Url)(new Uint8Array((0, node_crypto_1.createHash)('sha256').update(spki).digest()));
|
|
13
|
+
}
|
|
14
|
+
function assertEd25519(key) {
|
|
15
|
+
if (key.asymmetricKeyType !== REQUIRED_KEY_TYPE) {
|
|
16
|
+
throw new TypeError(`a Xema license-plane key must be ${REQUIRED_KEY_TYPE}, received ${String(key.asymmetricKeyType)}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ed25519-fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ed25519-fingerprint.js","sourceRoot":"","sources":["../../src/lib/ed25519-fingerprint.ts"],"names":[],"mappings":";;AAiCA,kEAOC;AASD,sCAMC;AAvDD,6CAA0E;AAE1E,iDAAiD;AAMjD,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAyBpC,SAAgB,2BAA2B,CAAC,YAAoB;IAC9D,MAAM,GAAG,GAAG,IAAA,6BAAe,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,aAAa,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,IAAA,8BAAe,EACpB,IAAI,UAAU,CAAC,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAC3D,CAAC;AACJ,CAAC;AASD,SAAgB,aAAa,CAAC,GAAc;IAC1C,IAAI,GAAG,CAAC,iBAAiB,KAAK,iBAAiB,EAAE,CAAC;QAChD,MAAM,IAAI,SAAS,CACjB,oCAAoC,iBAAiB,cAAc,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CACnG,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ProvenInstallationIdentity } from './installation-identity.ts';
|
|
1
2
|
import { type LicenseState, type ResolveLicenseStateOptions } from './resolve-license-state.ts';
|
|
2
3
|
import type { LicenseTrustStore } from './trust-store.ts';
|
|
3
4
|
import type { LicenseVerificationFailureCode } from './verification-failure.ts';
|
|
@@ -8,6 +9,7 @@ export declare enum LicenseSource {
|
|
|
8
9
|
}
|
|
9
10
|
export interface ResolveEffectiveLicenseInput extends ResolveLicenseStateOptions {
|
|
10
11
|
readonly customerLicense: string | undefined;
|
|
12
|
+
readonly installation?: ProvenInstallationIdentity;
|
|
11
13
|
readonly trustStore?: LicenseTrustStore;
|
|
12
14
|
}
|
|
13
15
|
export interface EffectiveLicenseVerified {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effective-license.d.ts","sourceRoot":"","sources":["../../src/lib/effective-license.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"effective-license.d.ts","sourceRoot":"","sources":["../../src/lib/effective-license.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAwB7D,oBAAY,aAAa;IAEvB,QAAQ,aAAa;IAErB,kBAAkB,yBAAyB;CAC5C;AAED,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAM9E,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAiB7C,QAAQ,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAMnD,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAOD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAM7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAOD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAE9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GACxB,wBAAwB,GACxB,4BAA4B,CAAC;AAUjC,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,gBAAgB,CAgDlB"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LicenseSource = void 0;
|
|
4
4
|
exports.resolveEffectiveLicense = resolveEffectiveLicense;
|
|
5
5
|
const embedded_license_ts_1 = require("./embedded-license.js");
|
|
6
|
+
const evaluate_binding_ts_1 = require("./evaluate-binding.js");
|
|
6
7
|
const resolve_license_state_ts_1 = require("./resolve-license-state.js");
|
|
7
8
|
const verify_license_ts_1 = require("./verify-license.js");
|
|
8
9
|
var LicenseSource;
|
|
@@ -25,6 +26,15 @@ function resolveEffectiveLicense(input) {
|
|
|
25
26
|
message: verified.message,
|
|
26
27
|
};
|
|
27
28
|
}
|
|
29
|
+
const bound = (0, evaluate_binding_ts_1.evaluateLicenseBinding)(verified.claims.binding, input.installation);
|
|
30
|
+
if (!bound.ok) {
|
|
31
|
+
return {
|
|
32
|
+
ok: false,
|
|
33
|
+
source,
|
|
34
|
+
code: bound.code,
|
|
35
|
+
message: bound.message,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
28
38
|
const state = (0, resolve_license_state_ts_1.resolveLicenseState)(verified, {
|
|
29
39
|
...(input.now !== undefined ? { now: input.now } : {}),
|
|
30
40
|
...(input.clockSkewToleranceMs !== undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effective-license.js","sourceRoot":"","sources":["../../src/lib/effective-license.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"effective-license.js","sourceRoot":"","sources":["../../src/lib/effective-license.ts"],"names":[],"mappings":";;;AAqHA,0DAkDC;AAvKD,+DAA8F;AAC9F,+DAA+D;AAE/D,yEAIoC;AAGpC,2DAAoD;AAyBpD,IAAY,aAKX;AALD,WAAY,aAAa;IAEvB,sCAAqB,CAAA;IAErB,4DAA2C,CAAA;AAC7C,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AA6ED,SAAgB,uBAAuB,CACrC,KAAmC;IAEnC,MAAM,MAAM,GACV,KAAK,CAAC,eAAe,KAAK,SAAS;QACjC,CAAC,CAAC,aAAa,CAAC,kBAAkB;QAClC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,IAAI,IAAA,2CAAqB,GAAE,CAAC;IAE/D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAA,oDAA8B,GAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAA,iCAAa,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM;YACN,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC;IACJ,CAAC;IAQD,MAAM,KAAK,GAAG,IAAA,4CAAsB,EAClC,QAAQ,CAAC,MAAM,CAAC,OAAO,EACvB,KAAK,CAAC,YAAY,CACnB,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM;YACN,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,8CAAmB,EAAC,QAAQ,EAAE;QAC1C,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,oBAAoB,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,qBAAqB,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE;YACxD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LicenseBinding } from './license-claims.ts';
|
|
2
|
+
import type { ProvenInstallationIdentity } from './installation-identity.ts';
|
|
3
|
+
import { type LicenseVerificationFailure } from './verification-failure.ts';
|
|
4
|
+
export type LicenseBindingDecision = {
|
|
5
|
+
readonly ok: true;
|
|
6
|
+
} | LicenseVerificationFailure;
|
|
7
|
+
export declare function evaluateLicenseBinding(binding: LicenseBinding, installation: ProvenInstallationIdentity | undefined): LicenseBindingDecision;
|
|
8
|
+
//# sourceMappingURL=evaluate-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate-binding.d.ts","sourceRoot":"","sources":["../../src/lib/evaluate-binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AAuBnC,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACrB,0BAA0B,CAAC;AAE/B,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,0BAA0B,GAAG,SAAS,GACnD,sBAAsB,CA6BxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.evaluateLicenseBinding = evaluateLicenseBinding;
|
|
4
|
+
const license_enums_ts_1 = require("./license-enums.js");
|
|
5
|
+
const verification_failure_ts_1 = require("./verification-failure.js");
|
|
6
|
+
function evaluateLicenseBinding(binding, installation) {
|
|
7
|
+
switch (binding.kind) {
|
|
8
|
+
case license_enums_ts_1.LicenseBindingKind.Unbound:
|
|
9
|
+
return { ok: true };
|
|
10
|
+
case license_enums_ts_1.LicenseBindingKind.Installation: {
|
|
11
|
+
if (installation === undefined) {
|
|
12
|
+
return (0, verification_failure_ts_1.verificationFailure)(verification_failure_ts_1.LicenseVerificationFailureCode.InstallationIdentityAbsent, `this license is issued to installation ${binding.installationId}, and this deployment supplied no installation identity to prove it is that installation`);
|
|
13
|
+
}
|
|
14
|
+
if (installation.installationId !== binding.installationId) {
|
|
15
|
+
return (0, verification_failure_ts_1.verificationFailure)(verification_failure_ts_1.LicenseVerificationFailureCode.InstallationMismatch, `this license is issued to installation ${binding.installationId}, but this installation is ${installation.installationId}`);
|
|
16
|
+
}
|
|
17
|
+
return { ok: true };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=evaluate-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate-binding.js","sourceRoot":"","sources":["../../src/lib/evaluate-binding.ts"],"names":[],"mappings":";;AAkCA,wDAgCC;AAjED,yDAAwD;AAExD,uEAImC;AA2BnC,SAAgB,sBAAsB,CACpC,OAAuB,EACvB,YAAoD;IAEpD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,qCAAkB,CAAC,OAAO;YAK7B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAEtB,KAAK,qCAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,IAAA,6CAAmB,EACxB,wDAA8B,CAAC,0BAA0B,EACzD,0CAA0C,OAAO,CAAC,cAAc,0FAA0F,CAC3J,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC;gBAK3D,OAAO,IAAA,6CAAmB,EACxB,wDAA8B,CAAC,oBAAoB,EACnD,0CAA0C,OAAO,CAAC,cAAc,8BAA8B,YAAY,CAAC,cAAc,EAAE,CAC5H,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const PROVEN_INSTALLATION_BRAND: unique symbol;
|
|
2
|
+
export interface InstallationIdentity {
|
|
3
|
+
readonly installationId: string;
|
|
4
|
+
readonly publicKeyPem: string;
|
|
5
|
+
}
|
|
6
|
+
export interface GeneratedInstallationIdentity extends InstallationIdentity {
|
|
7
|
+
readonly privateKeyPem: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ProvenInstallationIdentity {
|
|
10
|
+
readonly [PROVEN_INSTALLATION_BRAND]: true;
|
|
11
|
+
readonly installationId: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function computeInstallationId(publicKeyPem: string): string;
|
|
14
|
+
export declare function generateInstallationIdentity(): GeneratedInstallationIdentity;
|
|
15
|
+
export declare function installationIdentityFromPrivateKey(privateKeyPem: string): InstallationIdentity;
|
|
16
|
+
export declare function proveInstallationIdentity(privateKeyPem: string): ProvenInstallationIdentity;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=installation-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation-identity.d.ts","sourceRoot":"","sources":["../../src/lib/installation-identity.ts"],"names":[],"mappings":"AAmEA,QAAA,MAAM,yBAAyB,EAAE,OAAO,MAEvC,CAAC;AASF,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IAQzE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAQD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AASD,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAElE;AAUD,wBAAgB,4BAA4B,IAAI,6BAA6B,CAa5E;AASD,wBAAgB,kCAAkC,CAChD,aAAa,EAAE,MAAM,GACpB,oBAAoB,CAUtB;AAqBD,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,GACpB,0BAA0B,CAmB5B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeInstallationId = computeInstallationId;
|
|
4
|
+
exports.generateInstallationIdentity = generateInstallationIdentity;
|
|
5
|
+
exports.installationIdentityFromPrivateKey = installationIdentityFromPrivateKey;
|
|
6
|
+
exports.proveInstallationIdentity = proveInstallationIdentity;
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
const ed25519_fingerprint_ts_1 = require("./ed25519-fingerprint.js");
|
|
9
|
+
const license_enums_ts_1 = require("./license-enums.js");
|
|
10
|
+
const PROOF_CHALLENGE_BYTES = 32;
|
|
11
|
+
const PROVEN_INSTALLATION_BRAND = Symbol('xema.provenInstallationIdentity');
|
|
12
|
+
function computeInstallationId(publicKeyPem) {
|
|
13
|
+
return `${license_enums_ts_1.INSTALLATION_ID_PREFIX}${(0, ed25519_fingerprint_ts_1.ed25519PublicKeyFingerprint)(publicKeyPem)}`;
|
|
14
|
+
}
|
|
15
|
+
function generateInstallationIdentity() {
|
|
16
|
+
const { privateKey, publicKey } = (0, node_crypto_1.generateKeyPairSync)('ed25519');
|
|
17
|
+
const privateKeyPem = privateKey
|
|
18
|
+
.export({ format: 'pem', type: 'pkcs8' })
|
|
19
|
+
.toString();
|
|
20
|
+
const publicKeyPem = publicKey
|
|
21
|
+
.export({ format: 'pem', type: 'spki' })
|
|
22
|
+
.toString();
|
|
23
|
+
return {
|
|
24
|
+
installationId: computeInstallationId(publicKeyPem),
|
|
25
|
+
publicKeyPem,
|
|
26
|
+
privateKeyPem,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function installationIdentityFromPrivateKey(privateKeyPem) {
|
|
30
|
+
const privateKey = (0, node_crypto_1.createPrivateKey)({ key: privateKeyPem, format: 'pem' });
|
|
31
|
+
(0, ed25519_fingerprint_ts_1.assertEd25519)(privateKey);
|
|
32
|
+
const publicKeyPem = (0, node_crypto_1.createPublicKey)(privateKey)
|
|
33
|
+
.export({ format: 'pem', type: 'spki' })
|
|
34
|
+
.toString();
|
|
35
|
+
return {
|
|
36
|
+
installationId: computeInstallationId(publicKeyPem),
|
|
37
|
+
publicKeyPem,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function proveInstallationIdentity(privateKeyPem) {
|
|
41
|
+
const privateKey = (0, node_crypto_1.createPrivateKey)({ key: privateKeyPem, format: 'pem' });
|
|
42
|
+
(0, ed25519_fingerprint_ts_1.assertEd25519)(privateKey);
|
|
43
|
+
const publicKey = (0, node_crypto_1.createPublicKey)(privateKey);
|
|
44
|
+
const publicKeyPem = publicKey.export({ format: 'pem', type: 'spki' }).toString();
|
|
45
|
+
const challenge = (0, node_crypto_1.randomBytes)(PROOF_CHALLENGE_BYTES);
|
|
46
|
+
const signature = (0, node_crypto_1.sign)(null, challenge, privateKey);
|
|
47
|
+
if (!(0, node_crypto_1.verify)(null, challenge, publicKey, signature)) {
|
|
48
|
+
throw new Error('the installation private key did not produce a signature its own public key accepts; the key material is corrupt');
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
[PROVEN_INSTALLATION_BRAND]: true,
|
|
52
|
+
installationId: computeInstallationId(publicKeyPem),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=installation-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation-identity.js","sourceRoot":"","sources":["../../src/lib/installation-identity.ts"],"names":[],"mappings":";;AAmHA,sDAEC;AAUD,oEAaC;AASD,gFAYC;AAqBD,8DAqBC;AA3MD,6CAOqB;AAErB,qEAGkC;AAClC,yDAA4D;AA4C5D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAUjC,MAAM,yBAAyB,GAAkB,MAAM,CACrD,iCAAiC,CAClC,CAAC;AA8CF,SAAgB,qBAAqB,CAAC,YAAoB;IACxD,OAAO,GAAG,yCAAsB,GAAG,IAAA,oDAA2B,EAAC,YAAY,CAAC,EAAE,CAAC;AACjF,CAAC;AAUD,SAAgB,4BAA4B;IAC1C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,iCAAmB,EAAC,SAAS,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,UAAU;SAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;SACxC,QAAQ,EAAE,CAAC;IACd,MAAM,YAAY,GAAG,SAAS;SAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACvC,QAAQ,EAAE,CAAC;IACd,OAAO;QACL,cAAc,EAAE,qBAAqB,CAAC,YAAY,CAAC;QACnD,YAAY;QACZ,aAAa;KACd,CAAC;AACJ,CAAC;AASD,SAAgB,kCAAkC,CAChD,aAAqB;IAErB,MAAM,UAAU,GAAG,IAAA,8BAAgB,EAAC,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,IAAA,sCAAa,EAAC,UAAU,CAAC,CAAC;IAC1B,MAAM,YAAY,GAAG,IAAA,6BAAe,EAAC,UAAU,CAAC;SAC7C,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACvC,QAAQ,EAAE,CAAC;IACd,OAAO;QACL,cAAc,EAAE,qBAAqB,CAAC,YAAY,CAAC;QACnD,YAAY;KACb,CAAC;AACJ,CAAC;AAqBD,SAAgB,yBAAyB,CACvC,aAAqB;IAErB,MAAM,UAAU,GAAG,IAAA,8BAAgB,EAAC,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,IAAA,sCAAa,EAAC,UAAU,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAA,6BAAe,EAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAElF,MAAM,SAAS,GAAG,IAAA,yBAAW,EAAC,qBAAqB,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,IAAA,kBAAS,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,IAAA,oBAAW,EAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,CAAC,yBAAyB,CAAC,EAAE,IAAI;QACjC,cAAc,EAAE,qBAAqB,CAAC,YAAY,CAAC;KACpD,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import type { EntitlementKind, LicenseClaimsVersion, LicenseLimitKind, LicenseSignatureAlgorithm, LicenseStatus, LicenseTier, LICENSE_JWS_TYPE, LICENSE_LIMIT_UNLIMITED } from './license-enums.ts';
|
|
1
|
+
import type { EntitlementKind, LicenseBindingKind, LicenseClaimsVersion, LicenseLimitKind, LicenseSignatureAlgorithm, LicenseStatus, LicenseTier, LICENSE_JWS_TYPE, LICENSE_LIMIT_UNLIMITED } from './license-enums.ts';
|
|
2
2
|
export type LicenseLimitValue = number | typeof LICENSE_LIMIT_UNLIMITED;
|
|
3
3
|
export type LicenseLimits = Readonly<Record<LicenseLimitKind, LicenseLimitValue>>;
|
|
4
|
+
export interface LicenseInstallationBinding {
|
|
5
|
+
kind: LicenseBindingKind.Installation;
|
|
6
|
+
installationId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface LicenseUnboundBinding {
|
|
9
|
+
kind: LicenseBindingKind.Unbound;
|
|
10
|
+
}
|
|
11
|
+
export type LicenseBinding = LicenseInstallationBinding | LicenseUnboundBinding;
|
|
4
12
|
export interface LicenseSubject {
|
|
5
13
|
customerId: string;
|
|
6
14
|
customerName: string;
|
|
@@ -18,6 +26,7 @@ export interface LicenseClaims {
|
|
|
18
26
|
status: LicenseStatus;
|
|
19
27
|
entitlements: readonly LicenseEntitlement[];
|
|
20
28
|
limits: LicenseLimits;
|
|
29
|
+
binding: LicenseBinding;
|
|
21
30
|
issuedAt: string;
|
|
22
31
|
expiresAt: string | null;
|
|
23
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-claims.d.ts","sourceRoot":"","sources":["../../src/lib/license-claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,uBAAuB,CAAC;AAGxE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAC5C,CAAC;AAGF,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5C,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,yBAAyB,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,gBAAgB,CAAC;CAC9B"}
|
|
1
|
+
{"version":3,"file":"license-claims.d.ts","sourceRoot":"","sources":["../../src/lib/license-claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,uBAAuB,CAAC;AAGxE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAC5C,CAAC;AAGF,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC;CAClC;AAGD,MAAM,MAAM,cAAc,GACtB,0BAA0B,GAC1B,qBAAqB,CAAC;AAG1B,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5C,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,yBAAyB,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,gBAAgB,CAAC;CAC9B"}
|
|
@@ -32,8 +32,14 @@ export declare enum LicenseLimitKind {
|
|
|
32
32
|
}
|
|
33
33
|
export declare const LICENSE_LIMIT_UNLIMITED: null;
|
|
34
34
|
export declare enum LicenseClaimsVersion {
|
|
35
|
-
|
|
35
|
+
V2 = 2
|
|
36
36
|
}
|
|
37
|
+
export declare enum LicenseBindingKind {
|
|
38
|
+
Installation = "installation",
|
|
39
|
+
Unbound = "unbound"
|
|
40
|
+
}
|
|
41
|
+
export declare const INSTALLATION_ID_PREFIX = "xin1_";
|
|
42
|
+
export declare const INSTALLATION_ID_PATTERN: RegExp;
|
|
37
43
|
export declare enum LicenseSignatureAlgorithm {
|
|
38
44
|
EdDSA = "EdDSA"
|
|
39
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-enums.d.ts","sourceRoot":"","sources":["../../src/lib/license-enums.ts"],"names":[],"mappings":"AAmBA,oBAAY,WAAW;IACrB,UAAU,gBAAgB;IAC1B,oBAAoB,2BAA2B;IAC/C,SAAS,cAAc;CACxB;AAGD,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,eAAe,qBAAqB;CACrC;AAGD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAG3C,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAGD,oBAAY,qBAAqB;IAC/B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B;AAGD,eAAO,MAAM,uBAAuB,QAA2B,CAAC;AAGhE,oBAAY,iBAAiB;IAC3B,WAAW,iBAAiB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAGD,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAGD,eAAO,MAAM,uBAAuB,MAAO,CAAC;AAG5C,oBAAY,oBAAoB;IAC9B,EAAE,IAAI;CACP;AAGD,oBAAY,yBAAyB;IACnC,KAAK,UAAU;CAChB;AAGD,eAAO,MAAM,gBAAgB,qCAAqC,CAAC;AAGnE,eAAO,MAAM,4BAA4B,QACiB,CAAC;AAG3D,eAAO,MAAM,mBAAmB,6BAA6B,CAAC;AAG9D,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAGzC,eAAO,MAAM,cAAc,aAAa,CAAC;AAGzC,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAG1D,eAAO,MAAM,yBAAyB,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"license-enums.d.ts","sourceRoot":"","sources":["../../src/lib/license-enums.ts"],"names":[],"mappings":"AAmBA,oBAAY,WAAW;IACrB,UAAU,gBAAgB;IAC1B,oBAAoB,2BAA2B;IAC/C,SAAS,cAAc;CACxB;AAGD,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,eAAe,qBAAqB;CACrC;AAGD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAG3C,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAGD,oBAAY,qBAAqB;IAC/B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B;AAGD,eAAO,MAAM,uBAAuB,QAA2B,CAAC;AAGhE,oBAAY,iBAAiB;IAC3B,WAAW,iBAAiB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAGD,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAGD,eAAO,MAAM,uBAAuB,MAAO,CAAC;AAG5C,oBAAY,oBAAoB;IAC9B,EAAE,IAAI;CACP;AAGD,oBAAY,kBAAkB;IAC5B,YAAY,iBAAiB;IAC7B,OAAO,YAAY;CACpB;AAGD,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAG9C,eAAO,MAAM,uBAAuB,QAA6B,CAAC;AAGlE,oBAAY,yBAAyB;IACnC,KAAK,UAAU;CAChB;AAGD,eAAO,MAAM,gBAAgB,qCAAqC,CAAC;AAGnE,eAAO,MAAM,4BAA4B,QACiB,CAAC;AAG3D,eAAO,MAAM,mBAAmB,6BAA6B,CAAC;AAG9D,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAGzC,eAAO,MAAM,cAAc,aAAa,CAAC;AAGzC,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAG1D,eAAO,MAAM,yBAAyB,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OSS_LICENSE_CUSTOMER_NAME = exports.OSS_LICENSE_CUSTOMER_ID = exports.OSS_LICENSE_ID = exports.OSS_DISTRIBUTION_ID = exports.XEMA_LICENSE_ISSUER = exports.CANONICAL_IDENTIFIER_PATTERN = exports.LICENSE_JWS_TYPE = exports.LicenseSignatureAlgorithm = exports.LicenseClaimsVersion = exports.LICENSE_LIMIT_UNLIMITED = exports.LicenseLimitKind = exports.EntitlementAction = exports.LICENSE_GRACE_PERIOD_MS = exports.LicenseLifecycleStage = exports.LicenseStatus = exports.ENTITLEMENT_ID_WILDCARD = exports.EntitlementKind = exports.LicenseTier = void 0;
|
|
3
|
+
exports.OSS_LICENSE_CUSTOMER_NAME = exports.OSS_LICENSE_CUSTOMER_ID = exports.OSS_LICENSE_ID = exports.OSS_DISTRIBUTION_ID = exports.XEMA_LICENSE_ISSUER = exports.CANONICAL_IDENTIFIER_PATTERN = exports.LICENSE_JWS_TYPE = exports.LicenseSignatureAlgorithm = exports.INSTALLATION_ID_PATTERN = exports.INSTALLATION_ID_PREFIX = exports.LicenseBindingKind = exports.LicenseClaimsVersion = exports.LICENSE_LIMIT_UNLIMITED = exports.LicenseLimitKind = exports.EntitlementAction = exports.LICENSE_GRACE_PERIOD_MS = exports.LicenseLifecycleStage = exports.LicenseStatus = exports.ENTITLEMENT_ID_WILDCARD = exports.EntitlementKind = exports.LicenseTier = void 0;
|
|
4
4
|
var LicenseTier;
|
|
5
5
|
(function (LicenseTier) {
|
|
6
6
|
LicenseTier["OpenSource"] = "open-source";
|
|
@@ -42,8 +42,15 @@ var LicenseLimitKind;
|
|
|
42
42
|
exports.LICENSE_LIMIT_UNLIMITED = null;
|
|
43
43
|
var LicenseClaimsVersion;
|
|
44
44
|
(function (LicenseClaimsVersion) {
|
|
45
|
-
LicenseClaimsVersion[LicenseClaimsVersion["
|
|
45
|
+
LicenseClaimsVersion[LicenseClaimsVersion["V2"] = 2] = "V2";
|
|
46
46
|
})(LicenseClaimsVersion || (exports.LicenseClaimsVersion = LicenseClaimsVersion = {}));
|
|
47
|
+
var LicenseBindingKind;
|
|
48
|
+
(function (LicenseBindingKind) {
|
|
49
|
+
LicenseBindingKind["Installation"] = "installation";
|
|
50
|
+
LicenseBindingKind["Unbound"] = "unbound";
|
|
51
|
+
})(LicenseBindingKind || (exports.LicenseBindingKind = LicenseBindingKind = {}));
|
|
52
|
+
exports.INSTALLATION_ID_PREFIX = 'xin1_';
|
|
53
|
+
exports.INSTALLATION_ID_PATTERN = /^xin1_[A-Za-z0-9_-]{43}$/;
|
|
47
54
|
var LicenseSignatureAlgorithm;
|
|
48
55
|
(function (LicenseSignatureAlgorithm) {
|
|
49
56
|
LicenseSignatureAlgorithm["EdDSA"] = "EdDSA";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-enums.js","sourceRoot":"","sources":["../../src/lib/license-enums.ts"],"names":[],"mappings":";;;AAmBA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,8DAA+C,CAAA;IAC/C,sCAAuB,CAAA;AACzB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAGD,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gDAA6B,CAAA;IAC7B,kCAAe,CAAA;IACf,uDAAoC,CAAA;AACtC,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAGY,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAG3C,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;AACzB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAGD,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,kDAAyB,CAAA;AAC3B,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAGY,QAAA,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAGhE,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,iDAA4B,CAAA;IAC5B,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;AACrB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAGD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;AACjB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAGY,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAG5C,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,2DAAM,CAAA;AACR,CAAC,EAFW,oBAAoB,oCAApB,oBAAoB,QAE/B;AAGD,IAAY,yBAEX;AAFD,WAAY,yBAAyB;IACnC,4CAAe,CAAA;AACjB,CAAC,EAFW,yBAAyB,yCAAzB,yBAAyB,QAEpC;AAGY,QAAA,gBAAgB,GAAG,kCAAkC,CAAC;AAGtD,QAAA,4BAA4B,GACvC,wDAAwD,CAAC;AAG9C,QAAA,mBAAmB,GAAG,0BAA0B,CAAC;AAGjD,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAG5B,QAAA,cAAc,GAAG,UAAU,CAAC;AAG5B,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAG7C,QAAA,yBAAyB,GAAG,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"license-enums.js","sourceRoot":"","sources":["../../src/lib/license-enums.ts"],"names":[],"mappings":";;;AAmBA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,8DAA+C,CAAA;IAC/C,sCAAuB,CAAA;AACzB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAGD,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gDAA6B,CAAA;IAC7B,kCAAe,CAAA;IACf,uDAAoC,CAAA;AACtC,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAGY,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAG3C,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;AACzB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAGD,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,kDAAyB,CAAA;AAC3B,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAGY,QAAA,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAGhE,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,iDAA4B,CAAA;IAC5B,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;AACrB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAGD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;AACjB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAGY,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAG5C,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,2DAAM,CAAA;AACR,CAAC,EAFW,oBAAoB,oCAApB,oBAAoB,QAE/B;AAGD,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,mDAA6B,CAAA;IAC7B,yCAAmB,CAAA;AACrB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAGY,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAGjC,QAAA,uBAAuB,GAAG,0BAA0B,CAAC;AAGlE,IAAY,yBAEX;AAFD,WAAY,yBAAyB;IACnC,4CAAe,CAAA;AACjB,CAAC,EAFW,yBAAyB,yCAAzB,yBAAyB,QAEpC;AAGY,QAAA,gBAAgB,GAAG,kCAAkC,CAAC;AAGtD,QAAA,4BAA4B,GACvC,wDAAwD,CAAC;AAG9C,QAAA,mBAAmB,GAAG,0BAA0B,CAAC;AAGjD,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAG5B,QAAA,cAAc,GAAG,UAAU,CAAC;AAG5B,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAG7C,QAAA,yBAAyB,GAAG,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oss-license.d.ts","sourceRoot":"","sources":["../../src/lib/oss-license.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"oss-license.d.ts","sourceRoot":"","sources":["../../src/lib/oss-license.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkCzD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CA2BrE"}
|
package/dist/lib/oss-license.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.buildOssLicenseClaims = buildOssLicenseClaims;
|
|
|
4
4
|
const license_enums_ts_1 = require("./license-enums.js");
|
|
5
5
|
function buildOssLicenseClaims(issuedAt) {
|
|
6
6
|
return {
|
|
7
|
-
version: license_enums_ts_1.LicenseClaimsVersion.
|
|
7
|
+
version: license_enums_ts_1.LicenseClaimsVersion.V2,
|
|
8
8
|
licenseId: license_enums_ts_1.OSS_LICENSE_ID,
|
|
9
9
|
issuer: license_enums_ts_1.XEMA_LICENSE_ISSUER,
|
|
10
10
|
subject: {
|
|
@@ -20,6 +20,7 @@ function buildOssLicenseClaims(issuedAt) {
|
|
|
20
20
|
[license_enums_ts_1.LicenseLimitKind.Nodes]: null,
|
|
21
21
|
[license_enums_ts_1.LicenseLimitKind.Seats]: null,
|
|
22
22
|
},
|
|
23
|
+
binding: { kind: license_enums_ts_1.LicenseBindingKind.Unbound },
|
|
23
24
|
issuedAt,
|
|
24
25
|
expiresAt: null,
|
|
25
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oss-license.js","sourceRoot":"","sources":["../../src/lib/oss-license.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"oss-license.js","sourceRoot":"","sources":["../../src/lib/oss-license.ts"],"names":[],"mappings":";;AAkCA,sDA2BC;AA5DD,yDAY4B;AAqB5B,SAAgB,qBAAqB,CAAC,QAAgB;IACpD,OAAO;QACL,OAAO,EAAE,uCAAoB,CAAC,EAAE;QAChC,SAAS,EAAE,iCAAc;QACzB,MAAM,EAAE,sCAAmB;QAC3B,OAAO,EAAE;YACP,UAAU,EAAE,0CAAuB;YACnC,YAAY,EAAE,4CAAyB;SACxC;QACD,IAAI,EAAE,8BAAW,CAAC,UAAU;QAC5B,MAAM,EAAE,gCAAa,CAAC,MAAM;QAC5B,YAAY,EAAE;YACZ,EAAE,IAAI,EAAE,kCAAe,CAAC,YAAY,EAAE,EAAE,EAAE,sCAAmB,EAAE;SAChE;QACD,MAAM,EAAE;YACN,CAAC,mCAAgB,CAAC,KAAK,CAAC,EAAE,IAAI;YAC9B,CAAC,mCAAgB,CAAC,KAAK,CAAC,EAAE,IAAI;SAC/B;QAMD,OAAO,EAAE,EAAE,IAAI,EAAE,qCAAkB,CAAC,OAAO,EAAE;QAC7C,QAAQ;QACR,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-license-claims.d.ts","sourceRoot":"","sources":["../../src/lib/parse-license-claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"parse-license-claims.d.ts","sourceRoot":"","sources":["../../src/lib/parse-license-claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAKd,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AA8BnC,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACrD,0BAA0B,CAAC;AAe/B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,wBAAwB,CAkG7E"}
|
|
@@ -5,7 +5,7 @@ const license_enums_ts_1 = require("./license-enums.js");
|
|
|
5
5
|
const rfc3339_ts_1 = require("./rfc3339.js");
|
|
6
6
|
const verification_failure_ts_1 = require("./verification-failure.js");
|
|
7
7
|
const SUPPORTED_CLAIMS_VERSIONS = [
|
|
8
|
-
license_enums_ts_1.LicenseClaimsVersion.
|
|
8
|
+
license_enums_ts_1.LicenseClaimsVersion.V2,
|
|
9
9
|
];
|
|
10
10
|
const CLAIM_KEYS = [
|
|
11
11
|
'version',
|
|
@@ -16,11 +16,14 @@ const CLAIM_KEYS = [
|
|
|
16
16
|
'status',
|
|
17
17
|
'entitlements',
|
|
18
18
|
'limits',
|
|
19
|
+
'binding',
|
|
19
20
|
'issuedAt',
|
|
20
21
|
'expiresAt',
|
|
21
22
|
];
|
|
22
23
|
const SUBJECT_KEYS = ['customerId', 'customerName'];
|
|
23
24
|
const ENTITLEMENT_KEYS = ['kind', 'id'];
|
|
25
|
+
const INSTALLATION_BINDING_KEYS = ['kind', 'installationId'];
|
|
26
|
+
const UNBOUND_BINDING_KEYS = ['kind'];
|
|
24
27
|
const MAX_DISPLAY_NAME_LENGTH = 256;
|
|
25
28
|
const MAX_ENTITLEMENTS = 4096;
|
|
26
29
|
function parseLicenseClaims(payload) {
|
|
@@ -65,6 +68,10 @@ function parseLicenseClaims(payload) {
|
|
|
65
68
|
if (!limits.ok) {
|
|
66
69
|
return limits;
|
|
67
70
|
}
|
|
71
|
+
const binding = parseBinding(object['binding']);
|
|
72
|
+
if (!binding.ok) {
|
|
73
|
+
return binding;
|
|
74
|
+
}
|
|
68
75
|
const issuedAt = object['issuedAt'];
|
|
69
76
|
const issuedAtMs = typeof issuedAt === 'string' ? (0, rfc3339_ts_1.parseRfc3339Utc)(issuedAt) : null;
|
|
70
77
|
if (typeof issuedAt !== 'string' || issuedAtMs === null) {
|
|
@@ -91,6 +98,7 @@ function parseLicenseClaims(payload) {
|
|
|
91
98
|
status,
|
|
92
99
|
entitlements: entitlements.entitlements,
|
|
93
100
|
limits: limits.limits,
|
|
101
|
+
binding: binding.binding,
|
|
94
102
|
issuedAt,
|
|
95
103
|
expiresAt,
|
|
96
104
|
},
|
|
@@ -117,6 +125,33 @@ function parseSubject(value) {
|
|
|
117
125
|
}
|
|
118
126
|
return { ok: true, subject: { customerId, customerName } };
|
|
119
127
|
}
|
|
128
|
+
function parseBinding(value) {
|
|
129
|
+
const object = asPlainObject(value);
|
|
130
|
+
if (object === null) {
|
|
131
|
+
return malformed('binding must be a JSON object');
|
|
132
|
+
}
|
|
133
|
+
const kind = object['kind'];
|
|
134
|
+
if (!isEnumValue(license_enums_ts_1.LicenseBindingKind, kind)) {
|
|
135
|
+
return malformed(`binding.kind ${JSON.stringify(kind)} is not a known LicenseBindingKind`);
|
|
136
|
+
}
|
|
137
|
+
if (kind === license_enums_ts_1.LicenseBindingKind.Unbound) {
|
|
138
|
+
const unknownKey = findUnknownKey(object, UNBOUND_BINDING_KEYS);
|
|
139
|
+
if (unknownKey !== null) {
|
|
140
|
+
return malformed(`unknown binding field "${unknownKey}" for an unbound license`);
|
|
141
|
+
}
|
|
142
|
+
return { ok: true, binding: { kind } };
|
|
143
|
+
}
|
|
144
|
+
const unknownKey = findUnknownKey(object, INSTALLATION_BINDING_KEYS);
|
|
145
|
+
if (unknownKey !== null) {
|
|
146
|
+
return malformed(`unknown binding field "${unknownKey}"`);
|
|
147
|
+
}
|
|
148
|
+
const installationId = object['installationId'];
|
|
149
|
+
if (typeof installationId !== 'string' ||
|
|
150
|
+
!license_enums_ts_1.INSTALLATION_ID_PATTERN.test(installationId)) {
|
|
151
|
+
return malformed('binding.installationId must be a Xema installation id (xin1_ followed by 43 base64url characters)');
|
|
152
|
+
}
|
|
153
|
+
return { ok: true, binding: { kind, installationId } };
|
|
154
|
+
}
|
|
120
155
|
function parseEntitlements(value) {
|
|
121
156
|
if (!Array.isArray(value)) {
|
|
122
157
|
return malformed('entitlements must be an array');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-license-claims.js","sourceRoot":"","sources":["../../src/lib/parse-license-claims.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"parse-license-claims.js","sourceRoot":"","sources":["../../src/lib/parse-license-claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust-store.d.ts","sourceRoot":"","sources":["../../src/lib/trust-store.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"trust-store.d.ts","sourceRoot":"","sources":["../../src/lib/trust-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAmB9D,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAaD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC/C;AAeD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,iBAAiB,CAcnB"}
|
package/dist/lib/trust-store.js
CHANGED
|
@@ -3,24 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.computeLicenseKeyId = computeLicenseKeyId;
|
|
4
4
|
exports.createLicenseTrustStore = createLicenseTrustStore;
|
|
5
5
|
const node_crypto_1 = require("node:crypto");
|
|
6
|
-
const
|
|
7
|
-
const REQUIRED_KEY_TYPE = 'ed25519';
|
|
6
|
+
const ed25519_fingerprint_ts_1 = require("./ed25519-fingerprint.js");
|
|
8
7
|
function computeLicenseKeyId(publicKeyPem) {
|
|
9
|
-
|
|
10
|
-
assertEd25519(key);
|
|
11
|
-
const spki = key.export({ format: 'der', type: 'spki' });
|
|
12
|
-
return (0, base64url_ts_1.encodeBase64Url)(new Uint8Array((0, node_crypto_1.createHash)('sha256').update(spki).digest()));
|
|
13
|
-
}
|
|
14
|
-
function assertEd25519(key) {
|
|
15
|
-
if (key.asymmetricKeyType !== REQUIRED_KEY_TYPE) {
|
|
16
|
-
throw new TypeError(`a Xema license key must be ${REQUIRED_KEY_TYPE}, received ${String(key.asymmetricKeyType)}`);
|
|
17
|
-
}
|
|
8
|
+
return (0, ed25519_fingerprint_ts_1.ed25519PublicKeyFingerprint)(publicKeyPem);
|
|
18
9
|
}
|
|
19
10
|
function createLicenseTrustStore(publicKeyPems) {
|
|
20
11
|
const keys = new Map();
|
|
21
12
|
for (const pem of publicKeyPems) {
|
|
22
13
|
const key = (0, node_crypto_1.createPublicKey)({ key: pem, format: 'pem' });
|
|
23
|
-
assertEd25519(key);
|
|
14
|
+
(0, ed25519_fingerprint_ts_1.assertEd25519)(key);
|
|
24
15
|
const keyId = computeLicenseKeyId(pem);
|
|
25
16
|
if (keys.has(keyId)) {
|
|
26
17
|
throw new Error(`duplicate license verification key ${keyId} in the trust store`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust-store.js","sourceRoot":"","sources":["../../src/lib/trust-store.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"trust-store.js","sourceRoot":"","sources":["../../src/lib/trust-store.ts"],"names":[],"mappings":";;AAmBA,kDAEC;AA8BD,0DAgBC;AAnED,6CAA8D;AAE9D,qEAGkC;AAclC,SAAgB,mBAAmB,CAAC,YAAoB;IACtD,OAAO,IAAA,oDAA2B,EAAC,YAAY,CAAC,CAAC;AACnD,CAAC;AA8BD,SAAgB,uBAAuB,CACrC,aAAgC;IAEhC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAA,6BAAe,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,IAAA,sCAAa,EAAC,GAAG,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,qBAAqB,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -6,7 +6,9 @@ export declare enum LicenseVerificationFailureCode {
|
|
|
6
6
|
InvalidSignature = "invalid-signature",
|
|
7
7
|
MalformedClaims = "malformed-claims",
|
|
8
8
|
UnsupportedClaimsVersion = "unsupported-claims-version",
|
|
9
|
-
IssuerMismatch = "issuer-mismatch"
|
|
9
|
+
IssuerMismatch = "issuer-mismatch",
|
|
10
|
+
InstallationIdentityAbsent = "installation-identity-absent",
|
|
11
|
+
InstallationMismatch = "installation-mismatch"
|
|
10
12
|
}
|
|
11
13
|
export interface LicenseVerificationFailure {
|
|
12
14
|
readonly ok: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-failure.d.ts","sourceRoot":"","sources":["../../src/lib/verification-failure.ts"],"names":[],"mappings":"AASA,oBAAY,8BAA8B;IAExC,cAAc,oBAAoB;IAElC,eAAe,qBAAqB;IAEpC,eAAe,sBAAsB;IAErC,YAAY,mBAAmB;IAE/B,gBAAgB,sBAAsB;IAEtC,eAAe,qBAAqB;IAEpC,wBAAwB,+BAA+B;IAEvD,cAAc,oBAAoB;
|
|
1
|
+
{"version":3,"file":"verification-failure.d.ts","sourceRoot":"","sources":["../../src/lib/verification-failure.ts"],"names":[],"mappings":"AASA,oBAAY,8BAA8B;IAExC,cAAc,oBAAoB;IAElC,eAAe,qBAAqB;IAEpC,eAAe,sBAAsB;IAErC,YAAY,mBAAmB;IAE/B,gBAAgB,sBAAsB;IAEtC,eAAe,qBAAqB;IAEpC,wBAAwB,+BAA+B;IAEvD,cAAc,oBAAoB;IASlC,0BAA0B,iCAAiC;IAQ3D,oBAAoB,0BAA0B;CAC/C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAE9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,8BAA8B,EACpC,OAAO,EAAE,MAAM,GACd,0BAA0B,CAE5B"}
|
|
@@ -12,6 +12,8 @@ var LicenseVerificationFailureCode;
|
|
|
12
12
|
LicenseVerificationFailureCode["MalformedClaims"] = "malformed-claims";
|
|
13
13
|
LicenseVerificationFailureCode["UnsupportedClaimsVersion"] = "unsupported-claims-version";
|
|
14
14
|
LicenseVerificationFailureCode["IssuerMismatch"] = "issuer-mismatch";
|
|
15
|
+
LicenseVerificationFailureCode["InstallationIdentityAbsent"] = "installation-identity-absent";
|
|
16
|
+
LicenseVerificationFailureCode["InstallationMismatch"] = "installation-mismatch";
|
|
15
17
|
})(LicenseVerificationFailureCode || (exports.LicenseVerificationFailureCode = LicenseVerificationFailureCode = {}));
|
|
16
18
|
function verificationFailure(code, message) {
|
|
17
19
|
return { ok: false, code, message };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-failure.js","sourceRoot":"","sources":["../../src/lib/verification-failure.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"verification-failure.js","sourceRoot":"","sources":["../../src/lib/verification-failure.ts"],"names":[],"mappings":";;;AAoDA,kDAKC;AAhDD,IAAY,8BAkCX;AAlCD,WAAY,8BAA8B;IAExC,oEAAkC,CAAA;IAElC,sEAAoC,CAAA;IAEpC,uEAAqC,CAAA;IAErC,iEAA+B,CAAA;IAE/B,wEAAsC,CAAA;IAEtC,sEAAoC,CAAA;IAEpC,yFAAuD,CAAA;IAEvD,oEAAkC,CAAA;IASlC,6FAA2D,CAAA;IAQ3D,gFAA8C,CAAA;AAChD,CAAC,EAlCW,8BAA8B,8CAA9B,8BAA8B,QAkCzC;AASD,SAAgB,mBAAmB,CACjC,IAAoC,EACpC,OAAe;IAEf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/license-verifier",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Offline verification of a Xema license — Ed25519 JWS against an embedded public key, lifecycle resolution and entitlement evaluation. Zero dependencies, Node built-ins only, so it runs in the CLI from a bare checkout and in the air-gap installer on a disconnected box.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@types/node": "25.2.3",
|
|
25
25
|
"prettier": "3.6.2",
|
|
26
26
|
"typescript": "5.9.3",
|
|
27
|
-
"@xemahq/license-contracts": "0.
|
|
27
|
+
"@xemahq/license-contracts": "0.2.0"
|
|
28
28
|
},
|
|
29
29
|
"exports": {
|
|
30
30
|
".": {
|