@vritti/api-sdk 0.3.2 → 0.3.5

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 (145) hide show
  1. package/dist/auth.cjs +942 -0
  2. package/dist/auth.cjs.map +1 -0
  3. package/dist/auth.d.cts +95 -0
  4. package/dist/auth.d.ts +95 -0
  5. package/dist/auth.js +884 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/cache.cjs +182 -14
  8. package/dist/cache.cjs.map +1 -1
  9. package/dist/cache.d.cts +48 -4
  10. package/dist/cache.d.ts +48 -4
  11. package/dist/cache.js +177 -12
  12. package/dist/cache.js.map +1 -1
  13. package/dist/catalog-resolver.cjs +226 -51
  14. package/dist/catalog-resolver.cjs.map +1 -1
  15. package/dist/catalog-resolver.d.cts +41 -19
  16. package/dist/catalog-resolver.d.ts +41 -19
  17. package/dist/catalog-resolver.js +212 -46
  18. package/dist/catalog-resolver.js.map +1 -1
  19. package/dist/code-pattern-BP4zkNtT.d.cts +12 -0
  20. package/dist/code-pattern-BP4zkNtT.d.ts +12 -0
  21. package/dist/context.cjs +93 -0
  22. package/dist/context.cjs.map +1 -0
  23. package/dist/context.d.cts +19 -0
  24. package/dist/context.d.ts +19 -0
  25. package/dist/context.js +64 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/countries.cjs +1559 -0
  28. package/dist/countries.cjs.map +1 -0
  29. package/dist/countries.d.cts +13 -0
  30. package/dist/countries.d.ts +13 -0
  31. package/dist/countries.js +1532 -0
  32. package/dist/countries.js.map +1 -0
  33. package/dist/data-table.cjs +1280 -0
  34. package/dist/data-table.cjs.map +1 -0
  35. package/dist/data-table.d.cts +123 -0
  36. package/dist/data-table.d.ts +123 -0
  37. package/dist/data-table.js +1260 -0
  38. package/dist/data-table.js.map +1 -0
  39. package/dist/database.cjs +1510 -0
  40. package/dist/database.cjs.map +1 -0
  41. package/dist/database.d.cts +287 -0
  42. package/dist/database.d.ts +287 -0
  43. package/dist/database.js +1469 -0
  44. package/dist/database.js.map +1 -0
  45. package/dist/decimal.d.cts +0 -1
  46. package/dist/decimal.d.ts +0 -1
  47. package/dist/decorators.cjs +1817 -0
  48. package/dist/decorators.cjs.map +1 -0
  49. package/dist/decorators.d.cts +24 -0
  50. package/dist/decorators.d.ts +24 -0
  51. package/dist/decorators.js +1780 -0
  52. package/dist/decorators.js.map +1 -0
  53. package/dist/document-BoS0NIbf.d.cts +12 -0
  54. package/dist/document-BoS0NIbf.d.ts +12 -0
  55. package/dist/drizzle-pg-core.cjs +25 -0
  56. package/dist/drizzle-pg-core.cjs.map +1 -1
  57. package/dist/drizzle-pg-core.d.cts +7 -0
  58. package/dist/drizzle-pg-core.d.ts +7 -0
  59. package/dist/drizzle-pg-core.js +22 -0
  60. package/dist/drizzle-pg-core.js.map +1 -1
  61. package/dist/exceptions.cjs +301 -0
  62. package/dist/exceptions.cjs.map +1 -0
  63. package/dist/exceptions.d.cts +90 -0
  64. package/dist/exceptions.d.ts +90 -0
  65. package/dist/exceptions.js +257 -0
  66. package/dist/exceptions.js.map +1 -0
  67. package/dist/filter.types-PuARU9XD.d.cts +50 -0
  68. package/dist/filter.types-PuARU9XD.d.ts +50 -0
  69. package/dist/filters.cjs +407 -0
  70. package/dist/filters.cjs.map +1 -0
  71. package/dist/filters.d.cts +55 -0
  72. package/dist/filters.d.ts +55 -0
  73. package/dist/filters.js +377 -0
  74. package/dist/filters.js.map +1 -0
  75. package/dist/index.cjs +0 -5423
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.d.cts +93 -854
  78. package/dist/index.d.ts +93 -854
  79. package/dist/index.js +0 -5301
  80. package/dist/index.js.map +1 -1
  81. package/dist/is-country.decorator-CcNwSSr5.d.cts +5 -0
  82. package/dist/is-country.decorator-CcNwSSr5.d.ts +5 -0
  83. package/dist/license.cjs +9 -56
  84. package/dist/license.cjs.map +1 -1
  85. package/dist/license.d.cts +3 -14
  86. package/dist/license.d.ts +3 -14
  87. package/dist/license.js +8 -51
  88. package/dist/license.js.map +1 -1
  89. package/dist/lodash.cjs.map +1 -1
  90. package/dist/lodash.js.map +1 -1
  91. package/dist/logger.cjs +862 -0
  92. package/dist/logger.cjs.map +1 -0
  93. package/dist/logger.d.cts +118 -0
  94. package/dist/logger.d.ts +118 -0
  95. package/dist/logger.js +816 -0
  96. package/dist/logger.js.map +1 -0
  97. package/dist/migrate.cjs +2 -2
  98. package/dist/migrate.cjs.map +1 -1
  99. package/dist/migrate.d.cts +2 -0
  100. package/dist/migrate.d.ts +2 -0
  101. package/dist/migrate.js +2 -2
  102. package/dist/migrate.js.map +1 -1
  103. package/dist/money.cjs +18 -3
  104. package/dist/money.cjs.map +1 -1
  105. package/dist/money.d.cts +13 -13
  106. package/dist/money.d.ts +13 -13
  107. package/dist/money.js +18 -3
  108. package/dist/money.js.map +1 -1
  109. package/dist/nats.cjs +34 -35
  110. package/dist/nats.cjs.map +1 -1
  111. package/dist/nats.d.cts +14 -14
  112. package/dist/nats.d.ts +14 -14
  113. package/dist/nats.js +32 -33
  114. package/dist/nats.js.map +1 -1
  115. package/dist/root.cjs +225 -0
  116. package/dist/root.cjs.map +1 -0
  117. package/dist/root.d.cts +4 -0
  118. package/dist/root.d.ts +4 -0
  119. package/dist/root.js +200 -0
  120. package/dist/root.js.map +1 -0
  121. package/dist/signing.cjs +159 -0
  122. package/dist/signing.cjs.map +1 -0
  123. package/dist/signing.d.cts +35 -0
  124. package/dist/signing.d.ts +35 -0
  125. package/dist/signing.js +128 -0
  126. package/dist/signing.js.map +1 -0
  127. package/dist/{types-DQRwj5rr.d.cts → types-C9jPdQqH.d.cts} +32 -6
  128. package/dist/{types-DQRwj5rr.d.ts → types-C9jPdQqH.d.ts} +32 -6
  129. package/dist/types.cjs +19 -0
  130. package/dist/types.cjs.map +1 -0
  131. package/dist/types.d.cts +17 -0
  132. package/dist/types.d.ts +17 -0
  133. package/dist/types.js +1 -0
  134. package/dist/types.js.map +1 -0
  135. package/dist/utils.cjs +273 -0
  136. package/dist/utils.cjs.map +1 -0
  137. package/dist/utils.d.cts +8 -0
  138. package/dist/utils.d.ts +8 -0
  139. package/dist/utils.js +245 -0
  140. package/dist/utils.js.map +1 -0
  141. package/package.json +132 -1
  142. package/dist/cache.service-_SuJIcNA.d.cts +0 -20
  143. package/dist/cache.service-_SuJIcNA.d.ts +0 -20
  144. package/dist/fastify-augmentation-CQPBNS5a.d.cts +0 -105
  145. package/dist/fastify-augmentation-CQPBNS5a.d.ts +0 -105
@@ -0,0 +1,5 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+
3
+ declare function IsCountry(validationOptions?: ValidationOptions): PropertyDecorator;
4
+
5
+ export { IsCountry as I };
@@ -0,0 +1,5 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+
3
+ declare function IsCountry(validationOptions?: ValidationOptions): PropertyDecorator;
4
+
5
+ export { IsCountry as I };
package/dist/license.cjs CHANGED
@@ -21,24 +21,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  // src/license/index.ts
22
22
  var license_exports = {};
23
23
  __export(license_exports, {
24
- canonicalStringify: () => canonicalStringify,
25
- generateLicenseKeyPair: () => generateLicenseKeyPair,
26
- hashSnapshot: () => hashSnapshot,
27
- signDocument: () => signDocument,
28
- verifyDocument: () => verifyDocument
24
+ hashSnapshot: () => hashSnapshot
29
25
  });
30
26
  module.exports = __toCommonJS(license_exports);
31
27
 
32
- // src/license/canonical.ts
28
+ // src/license/hash.ts
33
29
  var import_node_crypto = require("crypto");
30
+
31
+ // src/signing/canonical.ts
34
32
  function canonicalStringify(value) {
35
33
  return JSON.stringify(sortKeysDeep(value));
36
34
  }
37
35
  __name(canonicalStringify, "canonicalStringify");
38
- function hashSnapshot(value) {
39
- return (0, import_node_crypto.createHash)("sha256").update(canonicalStringify(value), "utf8").digest("hex");
40
- }
41
- __name(hashSnapshot, "hashSnapshot");
42
36
  function sortKeysDeep(value) {
43
37
  if (Array.isArray(value)) return value.map(sortKeysDeep);
44
38
  if (value !== null && typeof value === "object") {
@@ -51,54 +45,13 @@ function sortKeysDeep(value) {
51
45
  }
52
46
  __name(sortKeysDeep, "sortKeysDeep");
53
47
 
54
- // src/license/signing.ts
55
- var import_node_crypto2 = require("crypto");
56
- function generateLicenseKeyPair() {
57
- const { privateKey, publicKey } = (0, import_node_crypto2.generateKeyPairSync)("ed25519");
58
- return {
59
- privateKey: privateKey.export({
60
- type: "pkcs8",
61
- format: "der"
62
- }).toString("base64"),
63
- publicKey: publicKey.export({
64
- type: "spki",
65
- format: "der"
66
- }).toString("base64")
67
- };
68
- }
69
- __name(generateLicenseKeyPair, "generateLicenseKeyPair");
70
- function signDocument(payload, privateKeyBase64) {
71
- const key = (0, import_node_crypto2.createPrivateKey)({
72
- key: Buffer.from(privateKeyBase64, "base64"),
73
- format: "der",
74
- type: "pkcs8"
75
- });
76
- const signature = (0, import_node_crypto2.sign)(null, Buffer.from(canonicalStringify(payload), "utf8"), key).toString("base64");
77
- return {
78
- payload,
79
- signature
80
- };
81
- }
82
- __name(signDocument, "signDocument");
83
- function verifyDocument(doc, publicKeyBase64) {
84
- try {
85
- const key = (0, import_node_crypto2.createPublicKey)({
86
- key: Buffer.from(publicKeyBase64, "base64"),
87
- format: "der",
88
- type: "spki"
89
- });
90
- return (0, import_node_crypto2.verify)(null, Buffer.from(canonicalStringify(doc.payload), "utf8"), key, Buffer.from(doc.signature, "base64"));
91
- } catch {
92
- return false;
93
- }
48
+ // src/license/hash.ts
49
+ function hashSnapshot(value) {
50
+ return (0, import_node_crypto.createHash)("sha256").update(canonicalStringify(value), "utf8").digest("hex");
94
51
  }
95
- __name(verifyDocument, "verifyDocument");
52
+ __name(hashSnapshot, "hashSnapshot");
96
53
  // Annotate the CommonJS export names for ESM import in node:
97
54
  0 && (module.exports = {
98
- canonicalStringify,
99
- generateLicenseKeyPair,
100
- hashSnapshot,
101
- signDocument,
102
- verifyDocument
55
+ hashSnapshot
103
56
  });
104
57
  //# sourceMappingURL=license.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/license/index.ts","../src/license/canonical.ts","../src/license/signing.ts"],"sourcesContent":["// License module — Ed25519-signed catalog + entitlement documents over canonical JSON\nexport { canonicalStringify, hashSnapshot } from './canonical';\nexport { generateLicenseKeyPair, signDocument, verifyDocument } from './signing';\nexport type { CatalogLicense, OrgEntitlement, SignedDocument } from './types';\n","import { createHash } from 'node:crypto';\n\n// Serializes a value as deterministic JSON: object keys recursively sorted, arrays keep their order\nexport function canonicalStringify(value: unknown): string {\n return JSON.stringify(sortKeysDeep(value));\n}\n\n// Computes the sha256 hex digest of a value's canonical JSON\nexport function hashSnapshot(value: unknown): string {\n return createHash('sha256').update(canonicalStringify(value), 'utf8').digest('hex');\n}\n\n// Recursively rebuilds objects with sorted keys so JSON.stringify output is order-independent\nfunction sortKeysDeep(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(sortKeysDeep);\n if (value !== null && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n const sorted: Record<string, unknown> = {};\n for (const key of Object.keys(record).sort()) sorted[key] = sortKeysDeep(record[key]);\n return sorted;\n }\n return value;\n}\n","import { createPrivateKey, createPublicKey, generateKeyPairSync, sign, verify } from 'node:crypto';\nimport { canonicalStringify } from './canonical';\nimport type { SignedDocument } from './types';\n\n// Generates an Ed25519 key pair as base64 DER strings (pkcs8 private / spki public)\nexport function generateLicenseKeyPair(): { privateKey: string; publicKey: string } {\n const { privateKey, publicKey } = generateKeyPairSync('ed25519');\n return {\n privateKey: privateKey.export({ type: 'pkcs8', format: 'der' }).toString('base64'),\n publicKey: publicKey.export({ type: 'spki', format: 'der' }).toString('base64'),\n };\n}\n\n// Signs a payload's canonical JSON with an Ed25519 private key (base64 pkcs8 DER)\nexport function signDocument<T>(payload: T, privateKeyBase64: string): SignedDocument<T> {\n const key = createPrivateKey({ key: Buffer.from(privateKeyBase64, 'base64'), format: 'der', type: 'pkcs8' });\n const signature = sign(null, Buffer.from(canonicalStringify(payload), 'utf8'), key).toString('base64');\n return { payload, signature };\n}\n\n// Verifies a signed document against an Ed25519 public key (base64 spki DER); malformed input ⇒ false\nexport function verifyDocument<T>(doc: SignedDocument<T>, publicKeyBase64: string): boolean {\n try {\n const key = createPublicKey({ key: Buffer.from(publicKeyBase64, 'base64'), format: 'der', type: 'spki' });\n return verify(\n null,\n Buffer.from(canonicalStringify(doc.payload), 'utf8'),\n key,\n Buffer.from(doc.signature, 'base64'),\n );\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;ACAA,yBAA2B;AAGpB,SAASA,mBAAmBC,OAAc;AAC/C,SAAOC,KAAKC,UAAUC,aAAaH,KAAAA,CAAAA;AACrC;AAFgBD;AAKT,SAASK,aAAaJ,OAAc;AACzC,aAAOK,+BAAW,QAAA,EAAUC,OAAOP,mBAAmBC,KAAAA,GAAQ,MAAA,EAAQO,OAAO,KAAA;AAC/E;AAFgBH;AAKhB,SAASD,aAAaH,OAAc;AAClC,MAAIQ,MAAMC,QAAQT,KAAAA,EAAQ,QAAOA,MAAMU,IAAIP,YAAAA;AAC3C,MAAIH,UAAU,QAAQ,OAAOA,UAAU,UAAU;AAC/C,UAAMW,SAASX;AACf,UAAMY,SAAkC,CAAC;AACzC,eAAWC,OAAOC,OAAOC,KAAKJ,MAAAA,EAAQK,KAAI,EAAIJ,QAAOC,GAAAA,IAAOV,aAAaQ,OAAOE,GAAAA,CAAI;AACpF,WAAOD;EACT;AACA,SAAOZ;AACT;AATSG;;;ACbT,IAAAc,sBAAqF;AAK9E,SAASC,yBAAAA;AACd,QAAM,EAAEC,YAAYC,UAAS,QAAKC,yCAAoB,SAAA;AACtD,SAAO;IACLF,YAAYA,WAAWG,OAAO;MAAEC,MAAM;MAASC,QAAQ;IAAM,CAAA,EAAGC,SAAS,QAAA;IACzEL,WAAWA,UAAUE,OAAO;MAAEC,MAAM;MAAQC,QAAQ;IAAM,CAAA,EAAGC,SAAS,QAAA;EACxE;AACF;AANgBP;AAST,SAASQ,aAAgBC,SAAYC,kBAAwB;AAClE,QAAMC,UAAMC,sCAAiB;IAAED,KAAKE,OAAOC,KAAKJ,kBAAkB,QAAA;IAAWJ,QAAQ;IAAOD,MAAM;EAAQ,CAAA;AAC1G,QAAMU,gBAAYC,0BAAK,MAAMH,OAAOC,KAAKG,mBAAmBR,OAAAA,GAAU,MAAA,GAASE,GAAAA,EAAKJ,SAAS,QAAA;AAC7F,SAAO;IAAEE;IAASM;EAAU;AAC9B;AAJgBP;AAOT,SAASU,eAAkBC,KAAwBC,iBAAuB;AAC/E,MAAI;AACF,UAAMT,UAAMU,qCAAgB;MAAEV,KAAKE,OAAOC,KAAKM,iBAAiB,QAAA;MAAWd,QAAQ;MAAOD,MAAM;IAAO,CAAA;AACvG,eAAOiB,4BACL,MACAT,OAAOC,KAAKG,mBAAmBE,IAAIV,OAAO,GAAG,MAAA,GAC7CE,KACAE,OAAOC,KAAKK,IAAIJ,WAAW,QAAA,CAAA;EAE/B,QAAQ;AACN,WAAO;EACT;AACF;AAZgBG;","names":["canonicalStringify","value","JSON","stringify","sortKeysDeep","hashSnapshot","createHash","update","digest","Array","isArray","map","record","sorted","key","Object","keys","sort","import_node_crypto","generateLicenseKeyPair","privateKey","publicKey","generateKeyPairSync","export","type","format","toString","signDocument","payload","privateKeyBase64","key","createPrivateKey","Buffer","from","signature","sign","canonicalStringify","verifyDocument","doc","publicKeyBase64","createPublicKey","verify"]}
1
+ {"version":3,"sources":["../src/license/index.ts","../src/license/hash.ts","../src/signing/canonical.ts"],"sourcesContent":["// License module — licensing artifacts: signed catalog/entitlement document types and snapshot hashing\nexport { hashSnapshot } from './hash';\nexport type { CatalogLicense, OrgEntitlement, SignedDocument } from './types';\n","import { createHash } from 'node:crypto';\nimport { canonicalStringify } from '../signing/canonical';\n\n// Computes the sha256 hex digest of a value's canonical JSON idempotency key for catalog snapshots\nexport function hashSnapshot(value: unknown): string {\n return createHash('sha256').update(canonicalStringify(value), 'utf8').digest('hex');\n}\n","// Serializes a value as deterministic JSON: object keys recursively sorted, arrays keep their order\nexport function canonicalStringify(value: unknown): string {\n return JSON.stringify(sortKeysDeep(value));\n}\n\n// Recursively rebuilds objects with sorted keys so JSON.stringify output is order-independent\nfunction sortKeysDeep(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(sortKeysDeep);\n if (value !== null && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n const sorted: Record<string, unknown> = {};\n for (const key of Object.keys(record).sort()) sorted[key] = sortKeysDeep(record[key]);\n return sorted;\n }\n return value;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;ACAA,yBAA2B;;;ACCpB,SAASA,mBAAmBC,OAAc;AAC/C,SAAOC,KAAKC,UAAUC,aAAaH,KAAAA,CAAAA;AACrC;AAFgBD;AAKhB,SAASI,aAAaH,OAAc;AAClC,MAAII,MAAMC,QAAQL,KAAAA,EAAQ,QAAOA,MAAMM,IAAIH,YAAAA;AAC3C,MAAIH,UAAU,QAAQ,OAAOA,UAAU,UAAU;AAC/C,UAAMO,SAASP;AACf,UAAMQ,SAAkC,CAAC;AACzC,eAAWC,OAAOC,OAAOC,KAAKJ,MAAAA,EAAQK,KAAI,EAAIJ,QAAOC,GAAAA,IAAON,aAAaI,OAAOE,GAAAA,CAAI;AACpF,WAAOD;EACT;AACA,SAAOR;AACT;AATSG;;;ADFF,SAASU,aAAaC,OAAc;AACzC,aAAOC,+BAAW,QAAA,EAAUC,OAAOC,mBAAmBH,KAAAA,GAAQ,MAAA,EAAQI,OAAO,KAAA;AAC/E;AAFgBL;","names":["canonicalStringify","value","JSON","stringify","sortKeysDeep","Array","isArray","map","record","sorted","key","Object","keys","sort","hashSnapshot","value","createHash","update","canonicalStringify","digest"]}
@@ -1,12 +1,8 @@
1
- import { V as VersionSnapshot } from './types-DQRwj5rr.cjs';
1
+ import { V as VersionSnapshot } from './types-C9jPdQqH.cjs';
2
+ export { S as SignedDocument } from './document-BoS0NIbf.cjs';
2
3
 
3
- declare function canonicalStringify(value: unknown): string;
4
4
  declare function hashSnapshot(value: unknown): string;
5
5
 
6
- interface SignedDocument<T> {
7
- payload: T;
8
- signature: string;
9
- }
10
6
  interface CatalogLicense {
11
7
  deploymentId: string;
12
8
  version: string;
@@ -22,11 +18,4 @@ interface OrgEntitlement {
22
18
  issuedAt: string;
23
19
  }
24
20
 
25
- declare function generateLicenseKeyPair(): {
26
- privateKey: string;
27
- publicKey: string;
28
- };
29
- declare function signDocument<T>(payload: T, privateKeyBase64: string): SignedDocument<T>;
30
- declare function verifyDocument<T>(doc: SignedDocument<T>, publicKeyBase64: string): boolean;
31
-
32
- export { type CatalogLicense, type OrgEntitlement, type SignedDocument, canonicalStringify, generateLicenseKeyPair, hashSnapshot, signDocument, verifyDocument };
21
+ export { type CatalogLicense, type OrgEntitlement, hashSnapshot };
package/dist/license.d.ts CHANGED
@@ -1,12 +1,8 @@
1
- import { V as VersionSnapshot } from './types-DQRwj5rr.js';
1
+ import { V as VersionSnapshot } from './types-C9jPdQqH.js';
2
+ export { S as SignedDocument } from './document-BoS0NIbf.js';
2
3
 
3
- declare function canonicalStringify(value: unknown): string;
4
4
  declare function hashSnapshot(value: unknown): string;
5
5
 
6
- interface SignedDocument<T> {
7
- payload: T;
8
- signature: string;
9
- }
10
6
  interface CatalogLicense {
11
7
  deploymentId: string;
12
8
  version: string;
@@ -22,11 +18,4 @@ interface OrgEntitlement {
22
18
  issuedAt: string;
23
19
  }
24
20
 
25
- declare function generateLicenseKeyPair(): {
26
- privateKey: string;
27
- publicKey: string;
28
- };
29
- declare function signDocument<T>(payload: T, privateKeyBase64: string): SignedDocument<T>;
30
- declare function verifyDocument<T>(doc: SignedDocument<T>, publicKeyBase64: string): boolean;
31
-
32
- export { type CatalogLicense, type OrgEntitlement, type SignedDocument, canonicalStringify, generateLicenseKeyPair, hashSnapshot, signDocument, verifyDocument };
21
+ export { type CatalogLicense, type OrgEntitlement, hashSnapshot };
package/dist/license.js CHANGED
@@ -1,16 +1,14 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
- // src/license/canonical.ts
4
+ // src/license/hash.ts
5
5
  import { createHash } from "crypto";
6
+
7
+ // src/signing/canonical.ts
6
8
  function canonicalStringify(value) {
7
9
  return JSON.stringify(sortKeysDeep(value));
8
10
  }
9
11
  __name(canonicalStringify, "canonicalStringify");
10
- function hashSnapshot(value) {
11
- return createHash("sha256").update(canonicalStringify(value), "utf8").digest("hex");
12
- }
13
- __name(hashSnapshot, "hashSnapshot");
14
12
  function sortKeysDeep(value) {
15
13
  if (Array.isArray(value)) return value.map(sortKeysDeep);
16
14
  if (value !== null && typeof value === "object") {
@@ -23,53 +21,12 @@ function sortKeysDeep(value) {
23
21
  }
24
22
  __name(sortKeysDeep, "sortKeysDeep");
25
23
 
26
- // src/license/signing.ts
27
- import { createPrivateKey, createPublicKey, generateKeyPairSync, sign, verify } from "crypto";
28
- function generateLicenseKeyPair() {
29
- const { privateKey, publicKey } = generateKeyPairSync("ed25519");
30
- return {
31
- privateKey: privateKey.export({
32
- type: "pkcs8",
33
- format: "der"
34
- }).toString("base64"),
35
- publicKey: publicKey.export({
36
- type: "spki",
37
- format: "der"
38
- }).toString("base64")
39
- };
40
- }
41
- __name(generateLicenseKeyPair, "generateLicenseKeyPair");
42
- function signDocument(payload, privateKeyBase64) {
43
- const key = createPrivateKey({
44
- key: Buffer.from(privateKeyBase64, "base64"),
45
- format: "der",
46
- type: "pkcs8"
47
- });
48
- const signature = sign(null, Buffer.from(canonicalStringify(payload), "utf8"), key).toString("base64");
49
- return {
50
- payload,
51
- signature
52
- };
53
- }
54
- __name(signDocument, "signDocument");
55
- function verifyDocument(doc, publicKeyBase64) {
56
- try {
57
- const key = createPublicKey({
58
- key: Buffer.from(publicKeyBase64, "base64"),
59
- format: "der",
60
- type: "spki"
61
- });
62
- return verify(null, Buffer.from(canonicalStringify(doc.payload), "utf8"), key, Buffer.from(doc.signature, "base64"));
63
- } catch {
64
- return false;
65
- }
24
+ // src/license/hash.ts
25
+ function hashSnapshot(value) {
26
+ return createHash("sha256").update(canonicalStringify(value), "utf8").digest("hex");
66
27
  }
67
- __name(verifyDocument, "verifyDocument");
28
+ __name(hashSnapshot, "hashSnapshot");
68
29
  export {
69
- canonicalStringify,
70
- generateLicenseKeyPair,
71
- hashSnapshot,
72
- signDocument,
73
- verifyDocument
30
+ hashSnapshot
74
31
  };
75
32
  //# sourceMappingURL=license.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/license/canonical.ts","../src/license/signing.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\n\n// Serializes a value as deterministic JSON: object keys recursively sorted, arrays keep their order\nexport function canonicalStringify(value: unknown): string {\n return JSON.stringify(sortKeysDeep(value));\n}\n\n// Computes the sha256 hex digest of a value's canonical JSON\nexport function hashSnapshot(value: unknown): string {\n return createHash('sha256').update(canonicalStringify(value), 'utf8').digest('hex');\n}\n\n// Recursively rebuilds objects with sorted keys so JSON.stringify output is order-independent\nfunction sortKeysDeep(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(sortKeysDeep);\n if (value !== null && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n const sorted: Record<string, unknown> = {};\n for (const key of Object.keys(record).sort()) sorted[key] = sortKeysDeep(record[key]);\n return sorted;\n }\n return value;\n}\n","import { createPrivateKey, createPublicKey, generateKeyPairSync, sign, verify } from 'node:crypto';\nimport { canonicalStringify } from './canonical';\nimport type { SignedDocument } from './types';\n\n// Generates an Ed25519 key pair as base64 DER strings (pkcs8 private / spki public)\nexport function generateLicenseKeyPair(): { privateKey: string; publicKey: string } {\n const { privateKey, publicKey } = generateKeyPairSync('ed25519');\n return {\n privateKey: privateKey.export({ type: 'pkcs8', format: 'der' }).toString('base64'),\n publicKey: publicKey.export({ type: 'spki', format: 'der' }).toString('base64'),\n };\n}\n\n// Signs a payload's canonical JSON with an Ed25519 private key (base64 pkcs8 DER)\nexport function signDocument<T>(payload: T, privateKeyBase64: string): SignedDocument<T> {\n const key = createPrivateKey({ key: Buffer.from(privateKeyBase64, 'base64'), format: 'der', type: 'pkcs8' });\n const signature = sign(null, Buffer.from(canonicalStringify(payload), 'utf8'), key).toString('base64');\n return { payload, signature };\n}\n\n// Verifies a signed document against an Ed25519 public key (base64 spki DER); malformed input ⇒ false\nexport function verifyDocument<T>(doc: SignedDocument<T>, publicKeyBase64: string): boolean {\n try {\n const key = createPublicKey({ key: Buffer.from(publicKeyBase64, 'base64'), format: 'der', type: 'spki' });\n return verify(\n null,\n Buffer.from(canonicalStringify(doc.payload), 'utf8'),\n key,\n Buffer.from(doc.signature, 'base64'),\n );\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;AAAA,SAASA,kBAAkB;AAGpB,SAASC,mBAAmBC,OAAc;AAC/C,SAAOC,KAAKC,UAAUC,aAAaH,KAAAA,CAAAA;AACrC;AAFgBD;AAKT,SAASK,aAAaJ,OAAc;AACzC,SAAOK,WAAW,QAAA,EAAUC,OAAOP,mBAAmBC,KAAAA,GAAQ,MAAA,EAAQO,OAAO,KAAA;AAC/E;AAFgBH;AAKhB,SAASD,aAAaH,OAAc;AAClC,MAAIQ,MAAMC,QAAQT,KAAAA,EAAQ,QAAOA,MAAMU,IAAIP,YAAAA;AAC3C,MAAIH,UAAU,QAAQ,OAAOA,UAAU,UAAU;AAC/C,UAAMW,SAASX;AACf,UAAMY,SAAkC,CAAC;AACzC,eAAWC,OAAOC,OAAOC,KAAKJ,MAAAA,EAAQK,KAAI,EAAIJ,QAAOC,GAAAA,IAAOV,aAAaQ,OAAOE,GAAAA,CAAI;AACpF,WAAOD;EACT;AACA,SAAOZ;AACT;AATSG;;;ACbT,SAASc,kBAAkBC,iBAAiBC,qBAAqBC,MAAMC,cAAc;AAK9E,SAASC,yBAAAA;AACd,QAAM,EAAEC,YAAYC,UAAS,IAAKC,oBAAoB,SAAA;AACtD,SAAO;IACLF,YAAYA,WAAWG,OAAO;MAAEC,MAAM;MAASC,QAAQ;IAAM,CAAA,EAAGC,SAAS,QAAA;IACzEL,WAAWA,UAAUE,OAAO;MAAEC,MAAM;MAAQC,QAAQ;IAAM,CAAA,EAAGC,SAAS,QAAA;EACxE;AACF;AANgBP;AAST,SAASQ,aAAgBC,SAAYC,kBAAwB;AAClE,QAAMC,MAAMC,iBAAiB;IAAED,KAAKE,OAAOC,KAAKJ,kBAAkB,QAAA;IAAWJ,QAAQ;IAAOD,MAAM;EAAQ,CAAA;AAC1G,QAAMU,YAAYC,KAAK,MAAMH,OAAOC,KAAKG,mBAAmBR,OAAAA,GAAU,MAAA,GAASE,GAAAA,EAAKJ,SAAS,QAAA;AAC7F,SAAO;IAAEE;IAASM;EAAU;AAC9B;AAJgBP;AAOT,SAASU,eAAkBC,KAAwBC,iBAAuB;AAC/E,MAAI;AACF,UAAMT,MAAMU,gBAAgB;MAAEV,KAAKE,OAAOC,KAAKM,iBAAiB,QAAA;MAAWd,QAAQ;MAAOD,MAAM;IAAO,CAAA;AACvG,WAAOiB,OACL,MACAT,OAAOC,KAAKG,mBAAmBE,IAAIV,OAAO,GAAG,MAAA,GAC7CE,KACAE,OAAOC,KAAKK,IAAIJ,WAAW,QAAA,CAAA;EAE/B,QAAQ;AACN,WAAO;EACT;AACF;AAZgBG;","names":["createHash","canonicalStringify","value","JSON","stringify","sortKeysDeep","hashSnapshot","createHash","update","digest","Array","isArray","map","record","sorted","key","Object","keys","sort","createPrivateKey","createPublicKey","generateKeyPairSync","sign","verify","generateLicenseKeyPair","privateKey","publicKey","generateKeyPairSync","export","type","format","toString","signDocument","payload","privateKeyBase64","key","createPrivateKey","Buffer","from","signature","sign","canonicalStringify","verifyDocument","doc","publicKeyBase64","createPublicKey","verify"]}
1
+ {"version":3,"sources":["../src/license/hash.ts","../src/signing/canonical.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { canonicalStringify } from '../signing/canonical';\n\n// Computes the sha256 hex digest of a value's canonical JSON idempotency key for catalog snapshots\nexport function hashSnapshot(value: unknown): string {\n return createHash('sha256').update(canonicalStringify(value), 'utf8').digest('hex');\n}\n","// Serializes a value as deterministic JSON: object keys recursively sorted, arrays keep their order\nexport function canonicalStringify(value: unknown): string {\n return JSON.stringify(sortKeysDeep(value));\n}\n\n// Recursively rebuilds objects with sorted keys so JSON.stringify output is order-independent\nfunction sortKeysDeep(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(sortKeysDeep);\n if (value !== null && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n const sorted: Record<string, unknown> = {};\n for (const key of Object.keys(record).sort()) sorted[key] = sortKeysDeep(record[key]);\n return sorted;\n }\n return value;\n}\n"],"mappings":";;;;AAAA,SAASA,kBAAkB;;;ACCpB,SAASC,mBAAmBC,OAAc;AAC/C,SAAOC,KAAKC,UAAUC,aAAaH,KAAAA,CAAAA;AACrC;AAFgBD;AAKhB,SAASI,aAAaH,OAAc;AAClC,MAAII,MAAMC,QAAQL,KAAAA,EAAQ,QAAOA,MAAMM,IAAIH,YAAAA;AAC3C,MAAIH,UAAU,QAAQ,OAAOA,UAAU,UAAU;AAC/C,UAAMO,SAASP;AACf,UAAMQ,SAAkC,CAAC;AACzC,eAAWC,OAAOC,OAAOC,KAAKJ,MAAAA,EAAQK,KAAI,EAAIJ,QAAOC,GAAAA,IAAON,aAAaI,OAAOE,GAAAA,CAAI;AACpF,WAAOD;EACT;AACA,SAAOR;AACT;AATSG;;;ADFF,SAASU,aAAaC,OAAc;AACzC,SAAOC,WAAW,QAAA,EAAUC,OAAOC,mBAAmBH,KAAAA,GAAQ,MAAA,EAAQI,OAAO,KAAA;AAC/E;AAFgBL;","names":["createHash","canonicalStringify","value","JSON","stringify","sortKeysDeep","Array","isArray","map","record","sorted","key","Object","keys","sort","hashSnapshot","value","createHash","update","canonicalStringify","digest"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lodash.ts"],"sourcesContent":["// Re-export lodash\n// lodash uses `export =` so we re-export the default namespace\nexport { default } from 'lodash';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAEA,oBAAwB;","names":[]}
1
+ {"version":3,"sources":["../src/lodash.ts"],"sourcesContent":["// Re-export lodash's default namespace (lodash uses `export =`).\nexport { default } from 'lodash';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AACA,oBAAwB;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lodash.ts"],"sourcesContent":["// Re-export lodash\n// lodash uses `export =` so we re-export the default namespace\nexport { default } from 'lodash';\n"],"mappings":";AAEA,SAASA,WAAAA,gBAAe;","names":["default"]}
1
+ {"version":3,"sources":["../src/lodash.ts"],"sourcesContent":["// Re-export lodash's default namespace (lodash uses `export =`).\nexport { default } from 'lodash';\n"],"mappings":";AACA,SAASA,WAAAA,gBAAe;","names":["default"]}