@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.
Files changed (44) hide show
  1. package/dist/embedded/license-material.generated.d.ts +1 -1
  2. package/dist/embedded/license-material.generated.d.ts.map +1 -1
  3. package/dist/embedded/license-material.generated.js +1 -1
  4. package/dist/embedded/license-material.generated.js.map +1 -1
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +11 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/ed25519-fingerprint.d.ts +4 -0
  10. package/dist/lib/ed25519-fingerprint.d.ts.map +1 -0
  11. package/dist/lib/ed25519-fingerprint.js +19 -0
  12. package/dist/lib/ed25519-fingerprint.js.map +1 -0
  13. package/dist/lib/effective-license.d.ts +2 -0
  14. package/dist/lib/effective-license.d.ts.map +1 -1
  15. package/dist/lib/effective-license.js +10 -0
  16. package/dist/lib/effective-license.js.map +1 -1
  17. package/dist/lib/evaluate-binding.d.ts +8 -0
  18. package/dist/lib/evaluate-binding.d.ts.map +1 -0
  19. package/dist/lib/evaluate-binding.js +21 -0
  20. package/dist/lib/evaluate-binding.js.map +1 -0
  21. package/dist/lib/installation-identity.d.ts +18 -0
  22. package/dist/lib/installation-identity.d.ts.map +1 -0
  23. package/dist/lib/installation-identity.js +55 -0
  24. package/dist/lib/installation-identity.js.map +1 -0
  25. package/dist/lib/license-claims.d.ts +10 -1
  26. package/dist/lib/license-claims.d.ts.map +1 -1
  27. package/dist/lib/license-enums.d.ts +7 -1
  28. package/dist/lib/license-enums.d.ts.map +1 -1
  29. package/dist/lib/license-enums.js +9 -2
  30. package/dist/lib/license-enums.js.map +1 -1
  31. package/dist/lib/oss-license.d.ts.map +1 -1
  32. package/dist/lib/oss-license.js +2 -1
  33. package/dist/lib/oss-license.js.map +1 -1
  34. package/dist/lib/parse-license-claims.d.ts.map +1 -1
  35. package/dist/lib/parse-license-claims.js +36 -1
  36. package/dist/lib/parse-license-claims.js.map +1 -1
  37. package/dist/lib/trust-store.d.ts.map +1 -1
  38. package/dist/lib/trust-store.js +3 -12
  39. package/dist/lib/trust-store.js.map +1 -1
  40. package/dist/lib/verification-failure.d.ts +3 -1
  41. package/dist/lib/verification-failure.d.ts.map +1 -1
  42. package/dist/lib/verification-failure.js +2 -0
  43. package/dist/lib/verification-failure.js.map +1 -1
  44. 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.eyJ2ZXJzaW9uIjoxLCJsaWNlbnNlSWQiOiJ4ZW1hLW9zcyIsImlzc3VlciI6Imh0dHBzOi8vbGljZW5zZS54ZW1hLmRldiIsInN1YmplY3QiOnsiY3VzdG9tZXJJZCI6InhlbWEtb3Blbi1zb3VyY2UiLCJjdXN0b21lck5hbWUiOiJYZW1hIE9wZW4gU291cmNlIn0sInRpZXIiOiJvcGVuLXNvdXJjZSIsInN0YXR1cyI6ImFjdGl2ZSIsImVudGl0bGVtZW50cyI6W3sia2luZCI6ImRpc3RyaWJ1dGlvbiIsImlkIjoib3NzIn1dLCJsaW1pdHMiOnsibm9kZXMiOm51bGwsInNlYXRzIjpudWxsfSwiaXNzdWVkQXQiOiIyMDI2LTA4LTAyVDA4OjUwOjQ5LjM1OVoiLCJleHBpcmVzQXQiOm51bGx9.eLZKctC__ppYaD7jI7pb54YDKl97GyWiWsmas3lz4cuGGAwbg5PyVMdH7yfz2pWWKi6EKOMUAqqSiaREqWu0BQ";
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,yqBACuoB,CAAC"}
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.eyJ2ZXJzaW9uIjoxLCJsaWNlbnNlSWQiOiJ4ZW1hLW9zcyIsImlzc3VlciI6Imh0dHBzOi8vbGljZW5zZS54ZW1hLmRldiIsInN1YmplY3QiOnsiY3VzdG9tZXJJZCI6InhlbWEtb3Blbi1zb3VyY2UiLCJjdXN0b21lck5hbWUiOiJYZW1hIE9wZW4gU291cmNlIn0sInRpZXIiOiJvcGVuLXNvdXJjZSIsInN0YXR1cyI6ImFjdGl2ZSIsImVudGl0bGVtZW50cyI6W3sia2luZCI6ImRpc3RyaWJ1dGlvbiIsImlkIjoib3NzIn1dLCJsaW1pdHMiOnsibm9kZXMiOm51bGwsInNlYXRzIjpudWxsfSwiaXNzdWVkQXQiOiIyMDI2LTA4LTAyVDA4OjUwOjQ5LjM1OVoiLCJleHBpcmVzQXQiOm51bGx9.eLZKctC__ppYaD7jI7pb54YDKl97GyWiWsmas3lz4cuGGAwbg5PyVMdH7yfz2pWWKi6EKOMUAqqSiaREqWu0BQ';
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,sqBAAsqB,CAAC"}
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';
@@ -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,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,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"}
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;AAWf,2DAmBgC;AAlB9B,gIAAA,4BAA4B,OAAA;AAC5B,2HAAA,uBAAuB,OAAA;AACvB,qHAAA,iBAAiB,OAAA;AACjB,mHAAA,eAAe,OAAA;AACf,2HAAA,uBAAuB,OAAA;AACvB,oHAAA,gBAAgB,OAAA;AAChB,2HAAA,uBAAuB,OAAA;AACvB,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"}
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,4 @@
1
+ import { type KeyObject } from 'node:crypto';
2
+ export declare function ed25519PublicKeyFingerprint(publicKeyPem: string): string;
3
+ export declare function assertEd25519(key: KeyObject): void;
4
+ //# sourceMappingURL=ed25519-fingerprint.d.ts.map
@@ -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":"AAIA,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;IAM7C,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,CA6BlB"}
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":";;;AAqGA,0DA+BC;AApID,+DAG+B;AAC/B,yEAIoC;AAGpC,2DAAoD;AAyBpD,IAAY,aAKX;AALD,WAAY,aAAa;IAEvB,sCAAqB,CAAA;IAErB,4DAA2C,CAAA;AAC7C,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AA4DD,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;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"}
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
- V1 = 1
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["V1"] = 1] = "V1";
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;AAiCzD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAqBrE"}
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"}
@@ -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.V1,
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":";;AAiCA,sDAqBC;AArDD,yDAW4B;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;QACD,QAAQ;QACR,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
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,EACV,aAAa,EAKd,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AA2BnC,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,CA4F7E"}
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.V1,
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":";;AAiEA,gDA4FC;AAtJD,yDAQ4B;AAC5B,6CAA+C;AAC/C,uEAImC;AAGnC,MAAM,yBAAyB,GAAoC;IACjE,uCAAoB,CAAC,EAAE;CACxB,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,UAAU;IACV,WAAW;CACH,CAAC;AAEX,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,cAAc,CAAU,CAAC;AAC7D,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC;AAGjD,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAmB9B,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,yBAAyB,CAAC,QAAQ,CAAC,OAA+B,CAAC,EACpE,CAAC;QACD,OAAO,IAAA,6CAAmB,EACxB,wDAA8B,CAAC,wBAAwB,EACvD,8BAA8B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,4BAA4B,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxH,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,WAAW,CAAC,8BAAW,EAAE,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,WAAW,CAAC,gCAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CACd,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,UAAU,GACd,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GACf,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,4BAAe,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC1D,OAAO,SAAS,CAAC,mDAAmD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,kCAAkC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACN,OAAO;YACP,SAAS;YACT,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI;YACJ,MAAM;YACN,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ;YACR,SAAS;SACV;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,KAAc;IAId,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,0BAA0B,UAAU,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC,mDAAmD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5C,IACE,OAAO,YAAY,KAAK,QAAQ;QAChC,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,YAAY,CAAC,MAAM,GAAG,uBAAuB,EAC7C,CAAC;QACD,OAAO,SAAS,CACd,+CAA+C,uBAAuB,aAAa,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAc;IAId,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACpC,OAAO,SAAS,CACd,kCAAkC,gBAAgB,SAAS,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAyB,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,gBAAgB,KAAK,yBAAyB,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC5D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,SAAS,CACd,8BAA8B,UAAU,cAAc,KAAK,EAAE,CAC9D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,kCAAe,EAAE,IAAI,CAAC,EAAE,CAAC;YACxC,OAAO,SAAS,CACd,gBAAgB,KAAK,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IACE,OAAO,EAAE,KAAK,QAAQ;YACtB,CAAC,EAAE,KAAK,0CAAuB,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAC9D,CAAC;YACD,OAAO,SAAS,CACd,gBAAgB,KAAK,2CAA2C,0CAAuB,GAAG,CAC3F,CAAC;QACJ,CAAC;QASD,MAAM,WAAW,GAAG,GAAG,IAAI,SAAS,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAI1B,OAAO,SAAS,CAAC,yBAAyB,IAAI,IAAI,EAAE,aAAa,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,WAAW,CAClB,KAAc;IAId,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,mCAAgB,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,MAAM,GAAyD,EAAE,CAAC;IACxE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAEjC,OAAO,SAAS,CAAC,UAAU,IAAI,uCAAuC,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YAC5B,KAAK,GAAG,CAAC,EACT,CAAC;YACD,OAAO,SAAS,CACd,UAAU,IAAI,8CAA8C,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAuB,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,IAAA,6CAAmB,EACxB,wDAA8B,CAAC,eAAe,EAC9C,OAAO,CACR,CAAC;AACJ,CAAC;AAQD,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CACrB,MAA+B,EAC/B,OAA0B;IAE1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,+CAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAClB,WAAc,EACd,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parse-license-claims.js","sourceRoot":"","sources":["../../src/lib/parse-license-claims.ts"],"names":[],"mappings":";;AAuEA,gDAkGC;AAjKD,yDAU4B;AAC5B,6CAA+C;AAC/C,uEAImC;AAGnC,MAAM,yBAAyB,GAAoC;IACjE,uCAAoB,CAAC,EAAE;CACxB,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,SAAS;IACT,UAAU;IACV,WAAW;CACH,CAAC;AAEX,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,cAAc,CAAU,CAAC;AAC7D,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC;AACjD,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAU,CAAC;AACtE,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAU,CAAC;AAG/C,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAmB9B,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,yBAAyB,CAAC,QAAQ,CAAC,OAA+B,CAAC,EACpE,CAAC;QACD,OAAO,IAAA,6CAAmB,EACxB,wDAA8B,CAAC,wBAAwB,EACvD,8BAA8B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,4BAA4B,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxH,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,WAAW,CAAC,8BAAW,EAAE,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,WAAW,CAAC,gCAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CACd,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,UAAU,GACd,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,4BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GACf,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,4BAAe,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC1D,OAAO,SAAS,CAAC,mDAAmD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,kCAAkC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACN,OAAO;YACP,SAAS;YACT,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI;YACJ,MAAM;YACN,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ;YACR,SAAS;SACV;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,KAAc;IAId,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,0BAA0B,UAAU,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC,mDAAmD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5C,IACE,OAAO,YAAY,KAAK,QAAQ;QAChC,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,YAAY,CAAC,MAAM,GAAG,uBAAuB,EAC7C,CAAC;QACD,OAAO,SAAS,CACd,+CAA+C,uBAAuB,aAAa,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;AAC7D,CAAC;AAqBD,SAAS,YAAY,CACnB,KAAc;IAId,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,WAAW,CAAC,qCAAkB,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CACd,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,CACzE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,qCAAkB,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAChE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,SAAS,CACd,0BAA0B,UAAU,0BAA0B,CAC/D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACrE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,0BAA0B,UAAU,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,IACE,OAAO,cAAc,KAAK,QAAQ;QAClC,CAAC,0CAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,EAC7C,CAAC;QACD,OAAO,SAAS,CACd,mGAAmG,CACpG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAc;IAId,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACpC,OAAO,SAAS,CACd,kCAAkC,gBAAgB,SAAS,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAyB,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,gBAAgB,KAAK,yBAAyB,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC5D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,SAAS,CACd,8BAA8B,UAAU,cAAc,KAAK,EAAE,CAC9D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,kCAAe,EAAE,IAAI,CAAC,EAAE,CAAC;YACxC,OAAO,SAAS,CACd,gBAAgB,KAAK,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IACE,OAAO,EAAE,KAAK,QAAQ;YACtB,CAAC,EAAE,KAAK,0CAAuB,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAC9D,CAAC;YACD,OAAO,SAAS,CACd,gBAAgB,KAAK,2CAA2C,0CAAuB,GAAG,CAC3F,CAAC;QACJ,CAAC;QAWD,MAAM,WAAW,GAAG,GAAG,IAAI,SAAS,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAI1B,OAAO,SAAS,CAAC,yBAAyB,IAAI,IAAI,EAAE,aAAa,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,WAAW,CAClB,KAAc;IAId,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,mCAAgB,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,MAAM,GAAyD,EAAE,CAAC;IACxE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAEjC,OAAO,SAAS,CAAC,UAAU,IAAI,uCAAuC,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YAC5B,KAAK,GAAG,CAAC,EACT,CAAC;YACD,OAAO,SAAS,CACd,UAAU,IAAI,8CAA8C,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAuB,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,IAAA,6CAAmB,EACxB,wDAA8B,CAAC,eAAe,EAC9C,OAAO,CACR,CAAC;AACJ,CAAC;AAQD,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CACrB,MAA+B,EAC/B,OAA0B;IAE1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,+CAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAClB,WAAc,EACd,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"trust-store.d.ts","sourceRoot":"","sources":["../../src/lib/trust-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAsB1E,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAOhE;AAqBD,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"}
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"}
@@ -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 base64url_ts_1 = require("./base64url.js");
7
- const REQUIRED_KEY_TYPE = 'ed25519';
6
+ const ed25519_fingerprint_ts_1 = require("./ed25519-fingerprint.js");
8
7
  function computeLicenseKeyId(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 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":";;AAsBA,kDAOC;AAsCD,0DAgBC;AAnFD,6CAA0E;AAE1E,iDAAiD;AAMjD,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAcpC,SAAgB,mBAAmB,CAAC,YAAoB;IACtD,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;AAED,SAAS,aAAa,CAAC,GAAc;IACnC,IAAI,GAAG,CAAC,iBAAiB,KAAK,iBAAiB,EAAE,CAAC;QAChD,MAAM,IAAI,SAAS,CACjB,8BAA8B,iBAAiB,cAAc,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAC7F,CAAC;IACJ,CAAC;AACH,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,aAAa,CAAC,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"}
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;CACnC;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"}
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":";;;AAmCA,kDAKC;AA/BD,IAAY,8BAiBX;AAjBD,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;AACpC,CAAC,EAjBW,8BAA8B,8CAA9B,8BAA8B,QAiBzC;AASD,SAAgB,mBAAmB,CACjC,IAAoC,EACpC,OAAe;IAEf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
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.1.4",
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.1.1"
27
+ "@xemahq/license-contracts": "0.2.0"
28
28
  },
29
29
  "exports": {
30
30
  ".": {