@fabricorg/platform 1.10.0 → 1.10.2

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 (209) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +32 -3
  3. package/dist/actions/index.cjs +45 -26
  4. package/dist/actions/index.cjs.map +1 -1
  5. package/dist/actions/index.d.cts +225 -226
  6. package/dist/actions/index.d.ts +225 -226
  7. package/dist/actions/index.js +41 -2
  8. package/dist/actions/index.js.map +1 -1
  9. package/dist/adapters/index.cjs +696 -66
  10. package/dist/adapters/index.cjs.map +1 -1
  11. package/dist/adapters/index.d.cts +367 -365
  12. package/dist/adapters/index.d.ts +367 -365
  13. package/dist/adapters/index.js +682 -2
  14. package/dist/adapters/index.js.map +1 -1
  15. package/dist/agent-hitl/index.cjs +21 -10
  16. package/dist/agent-hitl/index.cjs.map +1 -1
  17. package/dist/agent-hitl/index.d.cts +30 -30
  18. package/dist/agent-hitl/index.d.ts +30 -30
  19. package/dist/agent-hitl/index.js +21 -2
  20. package/dist/agent-hitl/index.js.map +1 -1
  21. package/dist/certification/index.cjs +109 -24
  22. package/dist/certification/index.cjs.map +1 -1
  23. package/dist/certification/index.d.cts +33 -39
  24. package/dist/certification/index.d.ts +33 -39
  25. package/dist/certification/index.js +107 -8
  26. package/dist/certification/index.js.map +1 -1
  27. package/dist/discovery/index.cjs +12 -10
  28. package/dist/discovery/index.cjs.map +1 -1
  29. package/dist/discovery/index.d.cts +2 -10
  30. package/dist/discovery/index.d.ts +2 -10
  31. package/dist/discovery/index.js +12 -2
  32. package/dist/discovery/index.js.map +1 -1
  33. package/dist/engine-B4csEOEc.js +223 -0
  34. package/dist/engine-B4csEOEc.js.map +1 -0
  35. package/dist/engine-BqScuhrT.cjs +246 -0
  36. package/dist/engine-BqScuhrT.cjs.map +1 -0
  37. package/dist/events/index.cjs +39 -10
  38. package/dist/events/index.cjs.map +1 -1
  39. package/dist/events/index.d.cts +43 -43
  40. package/dist/events/index.d.ts +43 -43
  41. package/dist/events/index.js +39 -2
  42. package/dist/events/index.js.map +1 -1
  43. package/dist/evidence/index.cjs +12 -50
  44. package/dist/evidence/index.d.cts +2 -229
  45. package/dist/evidence/index.d.ts +2 -229
  46. package/dist/evidence/index.js +1 -5
  47. package/dist/evidence-BuCICb0c.js +516 -0
  48. package/dist/evidence-BuCICb0c.js.map +1 -0
  49. package/dist/evidence-Cq48eDvA.cjs +575 -0
  50. package/dist/evidence-Cq48eDvA.cjs.map +1 -0
  51. package/dist/governance/index.cjs +24 -18
  52. package/dist/governance/index.cjs.map +1 -1
  53. package/dist/governance/index.d.cts +80 -83
  54. package/dist/governance/index.d.ts +80 -83
  55. package/dist/governance/index.js +22 -2
  56. package/dist/governance/index.js.map +1 -1
  57. package/dist/ids/index.cjs +52 -22
  58. package/dist/ids/index.cjs.map +1 -1
  59. package/dist/ids/index.d.cts +17 -17
  60. package/dist/ids/index.d.ts +17 -17
  61. package/dist/ids/index.js +49 -2
  62. package/dist/ids/index.js.map +1 -1
  63. package/dist/index-9jasmw76.d.cts +124 -0
  64. package/dist/index-BXpeFdk2.d.cts +190 -0
  65. package/dist/index-BXpeFdk2.d.ts +190 -0
  66. package/dist/index-BnbsKZsT.d.cts +231 -0
  67. package/dist/index-CIl1rYRv.d.cts +11 -0
  68. package/dist/index-CIl1rYRv.d.ts +11 -0
  69. package/dist/index-CVHA1ypT.d.cts +262 -0
  70. package/dist/index-DZ4mnNb7.d.cts +78 -0
  71. package/dist/index-DZ4mnNb7.d.ts +78 -0
  72. package/dist/index-IqcDvl69.d.ts +124 -0
  73. package/dist/index-fmUiRBXu.d.cts +57 -0
  74. package/dist/index-fmUiRBXu.d.ts +57 -0
  75. package/dist/index-sPUPs8pr.d.ts +262 -0
  76. package/dist/index-z9-CYOIo.d.ts +231 -0
  77. package/dist/index.cjs +111 -393
  78. package/dist/index.d.cts +18 -17
  79. package/dist/index.d.ts +18 -17
  80. package/dist/index.js +19 -20
  81. package/dist/manifest/index.cjs +224 -35
  82. package/dist/manifest/index.cjs.map +1 -1
  83. package/dist/manifest/index.d.cts +130 -131
  84. package/dist/manifest/index.d.ts +130 -131
  85. package/dist/manifest/index.js +219 -7
  86. package/dist/manifest/index.js.map +1 -1
  87. package/dist/modules/index.cjs +281 -42
  88. package/dist/modules/index.cjs.map +1 -1
  89. package/dist/modules/index.d.cts +157 -159
  90. package/dist/modules/index.d.ts +157 -159
  91. package/dist/modules/index.js +274 -6
  92. package/dist/modules/index.js.map +1 -1
  93. package/dist/objects/index.cjs +355 -22
  94. package/dist/objects/index.cjs.map +1 -1
  95. package/dist/objects/index.d.cts +2 -77
  96. package/dist/objects/index.d.ts +2 -77
  97. package/dist/objects/index.js +352 -2
  98. package/dist/objects/index.js.map +1 -1
  99. package/dist/policies/index.cjs +14 -56
  100. package/dist/policies/index.d.cts +2 -261
  101. package/dist/policies/index.d.ts +2 -261
  102. package/dist/policies/index.js +1 -3
  103. package/dist/policies-DH_GCXQ-.js +627 -0
  104. package/dist/policies-DH_GCXQ-.js.map +1 -0
  105. package/dist/policies-Nxbp1CH8.cjs +698 -0
  106. package/dist/policies-Nxbp1CH8.cjs.map +1 -0
  107. package/dist/privacy/index.cjs +26 -43
  108. package/dist/privacy/index.cjs.map +1 -1
  109. package/dist/privacy/index.d.cts +2 -189
  110. package/dist/privacy/index.d.ts +2 -189
  111. package/dist/privacy/index.js +18 -3
  112. package/dist/privacy/index.js.map +1 -1
  113. package/dist/projections/index.cjs +241 -23
  114. package/dist/projections/index.cjs.map +1 -1
  115. package/dist/projections/index.d.cts +2 -125
  116. package/dist/projections/index.d.ts +2 -125
  117. package/dist/projections/index.js +238 -3
  118. package/dist/projections/index.js.map +1 -1
  119. package/dist/state-machines/index.cjs +76 -18
  120. package/dist/state-machines/index.cjs.map +1 -1
  121. package/dist/state-machines/index.d.cts +2 -55
  122. package/dist/state-machines/index.d.ts +2 -55
  123. package/dist/state-machines/index.js +74 -2
  124. package/dist/state-machines/index.js.map +1 -1
  125. package/dist/testing/index.cjs +27 -19
  126. package/dist/testing/index.cjs.map +1 -1
  127. package/dist/testing/index.d.cts +17 -19
  128. package/dist/testing/index.d.ts +17 -19
  129. package/dist/testing/index.js +25 -3
  130. package/dist/testing/index.js.map +1 -1
  131. package/package.json +6 -5
  132. package/dist/chunk-2AE6TMAX.cjs +0 -44
  133. package/dist/chunk-2AE6TMAX.cjs.map +0 -1
  134. package/dist/chunk-6HY35TKB.cjs +0 -491
  135. package/dist/chunk-6HY35TKB.cjs.map +0 -1
  136. package/dist/chunk-6UGEIDLC.cjs +0 -26
  137. package/dist/chunk-6UGEIDLC.cjs.map +0 -1
  138. package/dist/chunk-7GAWSUOG.js +0 -64
  139. package/dist/chunk-7GAWSUOG.js.map +0 -1
  140. package/dist/chunk-A42JJIPL.cjs +0 -699
  141. package/dist/chunk-A42JJIPL.cjs.map +0 -1
  142. package/dist/chunk-AFXKSIVI.cjs +0 -540
  143. package/dist/chunk-AFXKSIVI.cjs.map +0 -1
  144. package/dist/chunk-B5DOGDPG.js +0 -42
  145. package/dist/chunk-B5DOGDPG.js.map +0 -1
  146. package/dist/chunk-BJGZE3GE.js +0 -20
  147. package/dist/chunk-BJGZE3GE.js.map +0 -1
  148. package/dist/chunk-CRZXTZ36.cjs +0 -258
  149. package/dist/chunk-CRZXTZ36.cjs.map +0 -1
  150. package/dist/chunk-D4SWRBUH.cjs +0 -22
  151. package/dist/chunk-D4SWRBUH.cjs.map +0 -1
  152. package/dist/chunk-DBTAUI6C.cjs +0 -395
  153. package/dist/chunk-DBTAUI6C.cjs.map +0 -1
  154. package/dist/chunk-EMSAFNPX.js +0 -98
  155. package/dist/chunk-EMSAFNPX.js.map +0 -1
  156. package/dist/chunk-F3E5SXPN.cjs +0 -28
  157. package/dist/chunk-F3E5SXPN.cjs.map +0 -1
  158. package/dist/chunk-HEYMMVDP.js +0 -480
  159. package/dist/chunk-HEYMMVDP.js.map +0 -1
  160. package/dist/chunk-IFW43ELT.cjs +0 -331
  161. package/dist/chunk-IFW43ELT.cjs.map +0 -1
  162. package/dist/chunk-LFE74IJX.js +0 -20
  163. package/dist/chunk-LFE74IJX.js.map +0 -1
  164. package/dist/chunk-LZSE6QGQ.cjs +0 -60
  165. package/dist/chunk-LZSE6QGQ.cjs.map +0 -1
  166. package/dist/chunk-MCWSUGB3.cjs +0 -102
  167. package/dist/chunk-MCWSUGB3.cjs.map +0 -1
  168. package/dist/chunk-MLBALEUR.js +0 -290
  169. package/dist/chunk-MLBALEUR.js.map +0 -1
  170. package/dist/chunk-NNXQZPB3.cjs +0 -31
  171. package/dist/chunk-NNXQZPB3.cjs.map +0 -1
  172. package/dist/chunk-OFCCZ27Z.js +0 -26
  173. package/dist/chunk-OFCCZ27Z.js.map +0 -1
  174. package/dist/chunk-PDN5DOLQ.js +0 -242
  175. package/dist/chunk-PDN5DOLQ.js.map +0 -1
  176. package/dist/chunk-PIDZQAEL.js +0 -50
  177. package/dist/chunk-PIDZQAEL.js.map +0 -1
  178. package/dist/chunk-PXD7NG6X.js +0 -686
  179. package/dist/chunk-PXD7NG6X.js.map +0 -1
  180. package/dist/chunk-Q4Q4JPR3.js +0 -524
  181. package/dist/chunk-Q4Q4JPR3.js.map +0 -1
  182. package/dist/chunk-RALMUSOX.js +0 -55
  183. package/dist/chunk-RALMUSOX.js.map +0 -1
  184. package/dist/chunk-SNTV45LH.cjs +0 -295
  185. package/dist/chunk-SNTV45LH.cjs.map +0 -1
  186. package/dist/chunk-TBS2S5AX.cjs +0 -40
  187. package/dist/chunk-TBS2S5AX.cjs.map +0 -1
  188. package/dist/chunk-TYNIFC7J.js +0 -253
  189. package/dist/chunk-TYNIFC7J.js.map +0 -1
  190. package/dist/chunk-UGWGHTNC.cjs +0 -56
  191. package/dist/chunk-UGWGHTNC.cjs.map +0 -1
  192. package/dist/chunk-WI7CWNYI.cjs +0 -68
  193. package/dist/chunk-WI7CWNYI.cjs.map +0 -1
  194. package/dist/chunk-WNZP53GI.js +0 -386
  195. package/dist/chunk-WNZP53GI.js.map +0 -1
  196. package/dist/chunk-WQ3BYI7T.cjs +0 -249
  197. package/dist/chunk-WQ3BYI7T.cjs.map +0 -1
  198. package/dist/chunk-Y2PJLRIY.js +0 -36
  199. package/dist/chunk-Y2PJLRIY.js.map +0 -1
  200. package/dist/chunk-ZAEVQSB5.js +0 -326
  201. package/dist/chunk-ZAEVQSB5.js.map +0 -1
  202. package/dist/chunk-ZMQTV5OJ.js +0 -27
  203. package/dist/chunk-ZMQTV5OJ.js.map +0 -1
  204. package/dist/evidence/index.cjs.map +0 -1
  205. package/dist/evidence/index.js.map +0 -1
  206. package/dist/index.cjs.map +0 -1
  207. package/dist/index.js.map +0 -1
  208. package/dist/policies/index.cjs.map +0 -1
  209. package/dist/policies/index.js.map +0 -1
@@ -0,0 +1,246 @@
1
+ let crypto = require("crypto");
2
+ //#region privacy/engine.ts
3
+ const ANONYMIZATION_POLICY_VERSION = "adr-026-platform-anonymization-v1";
4
+ function normalizeKey(key) {
5
+ return key.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
6
+ }
7
+ function stableChecksum(value) {
8
+ return (0, crypto.createHash)("sha256").update(JSON.stringify(value)).digest("hex");
9
+ }
10
+ function stableScopedToken(value, context, fieldPath) {
11
+ const scope = `${context.tenantId}:${context.spaceId ?? "global"}:${fieldPath}`;
12
+ return `tok_${(0, crypto.createHash)("sha256").update(`${context.policyVersion ?? "adr-026-platform-anonymization-v1"}:${scope}:${String(value)}`).digest("hex").slice(0, 24)}`;
13
+ }
14
+ function maskValue(value) {
15
+ if (value === null || value === void 0) return null;
16
+ const stringValue = String(value);
17
+ if (stringValue.length <= 4) return "****";
18
+ return `${"*".repeat(Math.max(stringValue.length - 4, 4))}${stringValue.slice(-4)}`;
19
+ }
20
+ function generalizeValue(value) {
21
+ if (typeof value === "number") return Math.round(value / 1e3) * 1e3;
22
+ if (typeof value === "string" && /^\d{5}(?:-\d{4})?$/.test(value)) return `${value.slice(0, 3)}**`;
23
+ return null;
24
+ }
25
+ function applyMethod(value, method, context, path) {
26
+ switch (method) {
27
+ case "drop": return;
28
+ case "nullify": return null;
29
+ case "mask": return maskValue(value);
30
+ case "hash": return `sha256_${stableChecksum(value)}`;
31
+ case "tokenize": return stableScopedToken(value, context, path);
32
+ case "generalize": return generalizeValue(value);
33
+ }
34
+ }
35
+ function policyForPath(policies, path, key) {
36
+ const normalizedPath = normalizeKey(path);
37
+ const normalizedKey = key ? normalizeKey(key) : void 0;
38
+ return policies.find((policy) => {
39
+ const normalizedValue = normalizeKey(policy.value);
40
+ if (policy.match === "key") return normalizedValue === normalizedKey;
41
+ return normalizedValue === normalizedPath;
42
+ });
43
+ }
44
+ function isPlainObject(value) {
45
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value) && !(value instanceof Date);
46
+ }
47
+ function anonymizeRecursive(value, context, dataClass, path, redactedFields, policies, key) {
48
+ const fieldPolicy = policyForPath(policies, path, key);
49
+ if (fieldPolicy && value !== null && value !== void 0) {
50
+ redactedFields.push({
51
+ fieldPath: path,
52
+ method: fieldPolicy.method,
53
+ policyVersion: context.policyVersion ?? "adr-026-platform-anonymization-v1",
54
+ jobId: context.jobId,
55
+ redactedAt: (context.redactedAt ?? /* @__PURE__ */ new Date()).toISOString(),
56
+ reason: context.reason,
57
+ dataClass,
58
+ beforeChecksum: stableChecksum(value)
59
+ });
60
+ return applyMethod(value, fieldPolicy.method, context, path);
61
+ }
62
+ if (Array.isArray(value)) return value.map((item, index) => anonymizeRecursive(item, context, dataClass, `${path}[${index}]`, redactedFields, policies));
63
+ if (!isPlainObject(value)) return value;
64
+ const result = {};
65
+ for (const [childKey, childValue] of Object.entries(value)) {
66
+ if (childKey === "_privacy") {
67
+ result[childKey] = childValue;
68
+ continue;
69
+ }
70
+ const anonymized = anonymizeRecursive(childValue, context, dataClass, `${path}.${childKey}`, redactedFields, policies, childKey);
71
+ if (anonymized !== void 0) result[childKey] = anonymized;
72
+ }
73
+ return result;
74
+ }
75
+ function buildMetadata(context, dataClass, redactedFields, preservedSemantics) {
76
+ return {
77
+ redactionState: "anonymized",
78
+ policyVersion: context.policyVersion ?? "adr-026-platform-anonymization-v1",
79
+ jobId: context.jobId,
80
+ redactedAt: (context.redactedAt ?? /* @__PURE__ */ new Date()).toISOString(),
81
+ reason: context.reason,
82
+ dataClass,
83
+ redactedFields,
84
+ preservedSemantics: [...preservedSemantics]
85
+ };
86
+ }
87
+ var FieldRedactor = class {
88
+ redactField(value, method, context, path) {
89
+ return applyMethod(value, method, context, path);
90
+ }
91
+ mask(value) {
92
+ return maskValue(value);
93
+ }
94
+ hash(value) {
95
+ return `sha256_${stableChecksum(value)}`;
96
+ }
97
+ tokenize(value, context, path) {
98
+ return stableScopedToken(value, context, path);
99
+ }
100
+ generalize(value) {
101
+ return generalizeValue(value);
102
+ }
103
+ };
104
+ var AnonymizationEngine = class {
105
+ #policy;
106
+ constructor(policy) {
107
+ this.#policy = {
108
+ fields: policy.fields.map((field) => ({ ...field })),
109
+ preservedSemantics: [...policy.preservedSemantics ?? []]
110
+ };
111
+ }
112
+ anonymizeJsonValue(value, context, dataClass) {
113
+ return this.anonymizeJsonValueAtPath(value, context, dataClass, "$");
114
+ }
115
+ anonymizeJsonValueAtPath(value, context, dataClass, basePath) {
116
+ const redactedFields = [];
117
+ return {
118
+ value: anonymizeRecursive(value, context, dataClass, basePath, redactedFields, this.#policy.fields),
119
+ metadata: buildMetadata(context, dataClass, redactedFields, this.#policy.preservedSemantics ?? [])
120
+ };
121
+ }
122
+ anonymizeAssetEventPayload(event, context) {
123
+ const result = this.anonymizeJsonValue(event.payload, context, "asset_event");
124
+ return {
125
+ value: isPlainObject(result.value) ? {
126
+ ...result.value,
127
+ _privacy: result.metadata
128
+ } : {
129
+ value: result.value,
130
+ _privacy: result.metadata
131
+ },
132
+ metadata: result.metadata
133
+ };
134
+ }
135
+ anonymizeEvidencePacket(packet, context) {
136
+ const result = this.anonymizeJsonValue(packet.packet, context, "evidence_packet");
137
+ const redactionMetadata = {
138
+ ...isPlainObject(packet.redactionMetadata) ? packet.redactionMetadata : {},
139
+ lifecycleAnonymization: result.metadata
140
+ };
141
+ const anonymizedPacket = isPlainObject(result.value) ? {
142
+ ...result.value,
143
+ _privacy: result.metadata
144
+ } : {
145
+ value: result.value,
146
+ _privacy: result.metadata
147
+ };
148
+ return {
149
+ value: {
150
+ packet: anonymizedPacket,
151
+ redactionMetadata,
152
+ checksum: stableChecksum({
153
+ packet: anonymizedPacket,
154
+ redactionMetadata
155
+ })
156
+ },
157
+ metadata: result.metadata
158
+ };
159
+ }
160
+ buildAnonymizationLifecycleEvidence(input) {
161
+ const assetEvents = input.assetEvents ?? [];
162
+ const readModels = input.readModels ?? [];
163
+ const evidencePackets = input.evidencePackets ?? [];
164
+ const redactedFields = [
165
+ ...assetEvents.flatMap((item) => item.metadata.redactedFields),
166
+ ...readModels.flatMap((item) => item.metadata.redactedFields),
167
+ ...evidencePackets.flatMap((item) => item.metadata.redactedFields)
168
+ ];
169
+ return {
170
+ eventType: "AnonymizationApplied",
171
+ policyVersion: input.context.policyVersion ?? "adr-026-platform-anonymization-v1",
172
+ jobId: input.context.jobId,
173
+ reason: input.context.reason,
174
+ appliedAt: (input.context.redactedAt ?? /* @__PURE__ */ new Date()).toISOString(),
175
+ tenantId: input.context.tenantId,
176
+ spaceId: input.context.spaceId ?? null,
177
+ counts: {
178
+ assetEvents: assetEvents.length,
179
+ readModels: readModels.length,
180
+ evidencePackets: evidencePackets.length,
181
+ redactedFields: redactedFields.length
182
+ },
183
+ records: [
184
+ ...assetEvents.map((item) => ({
185
+ recordClass: "asset_event",
186
+ recordId: item.event.id,
187
+ subjectType: item.event.subjectType,
188
+ subjectId: item.event.subjectId,
189
+ fieldManifest: item.metadata.redactedFields.map(({ fieldPath, method, beforeChecksum }) => ({
190
+ fieldPath,
191
+ method,
192
+ beforeChecksum
193
+ }))
194
+ })),
195
+ ...readModels.map((item) => ({
196
+ recordClass: "read_model",
197
+ recordId: item.record.id,
198
+ subjectType: item.modelKind,
199
+ subjectId: item.record.id,
200
+ fieldManifest: item.metadata.redactedFields.map(({ fieldPath, method, beforeChecksum }) => ({
201
+ fieldPath,
202
+ method,
203
+ beforeChecksum
204
+ }))
205
+ })),
206
+ ...evidencePackets.map((item) => ({
207
+ recordClass: "evidence_packet",
208
+ recordId: item.packet.id,
209
+ fieldManifest: item.metadata.redactedFields.map(({ fieldPath, method, beforeChecksum }) => ({
210
+ fieldPath,
211
+ method,
212
+ beforeChecksum
213
+ }))
214
+ }))
215
+ ],
216
+ preservedSemantics: [...this.#policy.preservedSemantics ?? []]
217
+ };
218
+ }
219
+ };
220
+ //#endregion
221
+ Object.defineProperty(exports, "ANONYMIZATION_POLICY_VERSION", {
222
+ enumerable: true,
223
+ get: function() {
224
+ return ANONYMIZATION_POLICY_VERSION;
225
+ }
226
+ });
227
+ Object.defineProperty(exports, "AnonymizationEngine", {
228
+ enumerable: true,
229
+ get: function() {
230
+ return AnonymizationEngine;
231
+ }
232
+ });
233
+ Object.defineProperty(exports, "FieldRedactor", {
234
+ enumerable: true,
235
+ get: function() {
236
+ return FieldRedactor;
237
+ }
238
+ });
239
+ Object.defineProperty(exports, "stableChecksum", {
240
+ enumerable: true,
241
+ get: function() {
242
+ return stableChecksum;
243
+ }
244
+ });
245
+
246
+ //# sourceMappingURL=engine-BqScuhrT.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-BqScuhrT.cjs","names":["createHash"],"sources":["../privacy/engine.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\n\nimport type {\n\tAnonymizationContext,\n\tAnonymizationFieldMetadata,\n\tAnonymizationMetadata,\n\tAnonymizationResult,\n\tPlatformDataClass,\n\tRedactionMethod,\n} from \"./index\";\n\nexport const ANONYMIZATION_POLICY_VERSION = \"adr-026-platform-anonymization-v1\";\n\ntype JsonObject = Record<string, unknown>;\n\nexport interface AnonymizationFieldPolicy {\n\tmethod: RedactionMethod;\n\tmatch: \"key\" | \"path\";\n\tvalue: string;\n}\n\nexport interface AnonymizationPolicy {\n\tfields: readonly AnonymizationFieldPolicy[];\n\tpreservedSemantics?: readonly string[];\n}\n\nexport interface AssetEventLike {\n\tid: string;\n\ttenantId: string;\n\tspaceId: string;\n\teventType: string;\n\tsubjectType: string;\n\tsubjectId: string;\n\tactionInvocationId: string;\n\tpayload: unknown;\n\tsequence: number;\n\toccurredAt: Date;\n\trecordedAt: Date;\n\tcorrelationId: string;\n\tcausationId?: string | null;\n}\n\nexport interface EvidencePacketLike {\n\tid: string;\n\tpacket: unknown;\n\tredactionMetadata: unknown;\n\tchecksum: string;\n}\n\nexport interface AnonymizationLifecycleEvidence {\n\teventType: \"AnonymizationApplied\";\n\tpolicyVersion: string;\n\tjobId: string;\n\treason: string;\n\tappliedAt: string;\n\ttenantId: string;\n\tspaceId: string | null;\n\tcounts: {\n\t\tassetEvents: number;\n\t\treadModels: number;\n\t\tevidencePackets: number;\n\t\tredactedFields: number;\n\t};\n\trecords: Array<{\n\t\trecordClass: PlatformDataClass;\n\t\trecordId: string;\n\t\tsubjectType?: string;\n\t\tsubjectId?: string;\n\t\tfieldManifest: Array<\n\t\t\tPick<AnonymizationFieldMetadata, \"fieldPath\" | \"method\" | \"beforeChecksum\">\n\t\t>;\n\t}>;\n\tpreservedSemantics: string[];\n}\n\nfunction normalizeKey(key: string): string {\n\treturn key.replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n}\n\nexport function stableChecksum(value: unknown): string {\n\treturn createHash(\"sha256\").update(JSON.stringify(value)).digest(\"hex\");\n}\n\nfunction stableScopedToken(\n\tvalue: unknown,\n\tcontext: AnonymizationContext,\n\tfieldPath: string,\n): string {\n\tconst scope = `${context.tenantId}:${context.spaceId ?? \"global\"}:${fieldPath}`;\n\treturn `tok_${createHash(\"sha256\")\n\t\t.update(`${context.policyVersion ?? ANONYMIZATION_POLICY_VERSION}:${scope}:${String(value)}`)\n\t\t.digest(\"hex\")\n\t\t.slice(0, 24)}`;\n}\n\nfunction maskValue(value: unknown): string | null {\n\tif (value === null || value === undefined) {\n\t\treturn null;\n\t}\n\n\tconst stringValue = String(value);\n\tif (stringValue.length <= 4) {\n\t\treturn \"****\";\n\t}\n\n\treturn `${\"*\".repeat(Math.max(stringValue.length - 4, 4))}${stringValue.slice(-4)}`;\n}\n\nfunction generalizeValue(value: unknown): unknown {\n\tif (typeof value === \"number\") {\n\t\treturn Math.round(value / 1000) * 1000;\n\t}\n\n\tif (typeof value === \"string\" && /^\\d{5}(?:-\\d{4})?$/.test(value)) {\n\t\treturn `${value.slice(0, 3)}**`;\n\t}\n\n\treturn null;\n}\n\nfunction applyMethod(\n\tvalue: unknown,\n\tmethod: RedactionMethod,\n\tcontext: AnonymizationContext,\n\tpath: string,\n): unknown {\n\tswitch (method) {\n\t\tcase \"drop\":\n\t\t\treturn undefined;\n\t\tcase \"nullify\":\n\t\t\treturn null;\n\t\tcase \"mask\":\n\t\t\treturn maskValue(value);\n\t\tcase \"hash\":\n\t\t\treturn `sha256_${stableChecksum(value)}`;\n\t\tcase \"tokenize\":\n\t\t\treturn stableScopedToken(value, context, path);\n\t\tcase \"generalize\":\n\t\t\treturn generalizeValue(value);\n\t}\n}\n\nfunction policyForPath(policies: readonly AnonymizationFieldPolicy[], path: string, key?: string): AnonymizationFieldPolicy | undefined {\n\tconst normalizedPath = normalizeKey(path);\n\tconst normalizedKey = key ? normalizeKey(key) : undefined;\n\n\treturn policies.find((policy) => {\n\t\tconst normalizedValue = normalizeKey(policy.value);\n\t\tif (policy.match === \"key\") {\n\t\t\treturn normalizedValue === normalizedKey;\n\t\t}\n\n\t\treturn normalizedValue === normalizedPath;\n\t});\n}\n\nfunction isPlainObject(value: unknown): value is JsonObject {\n\treturn (\n\t\tBoolean(value) && typeof value === \"object\" && !Array.isArray(value) && !(value instanceof Date)\n\t);\n}\n\nfunction anonymizeRecursive(\n\tvalue: unknown,\n\tcontext: AnonymizationContext,\n\tdataClass: PlatformDataClass,\n\tpath: string,\n\tredactedFields: AnonymizationFieldMetadata[],\n\tpolicies: readonly AnonymizationFieldPolicy[],\n\tkey?: string,\n): unknown {\n\tconst fieldPolicy = policyForPath(policies, path, key);\n\tif (fieldPolicy && value !== null && value !== undefined) {\n\t\tredactedFields.push({\n\t\t\tfieldPath: path,\n\t\t\tmethod: fieldPolicy.method,\n\t\t\tpolicyVersion: context.policyVersion ?? ANONYMIZATION_POLICY_VERSION,\n\t\t\tjobId: context.jobId,\n\t\t\tredactedAt: (context.redactedAt ?? new Date()).toISOString(),\n\t\t\treason: context.reason,\n\t\t\tdataClass,\n\t\t\tbeforeChecksum: stableChecksum(value),\n\t\t});\n\n\t\treturn applyMethod(value, fieldPolicy.method, context, path);\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value.map((item, index) =>\n\t\t\tanonymizeRecursive(item, context, dataClass, `${path}[${index}]`, redactedFields, policies),\n\t\t);\n\t}\n\n\tif (!isPlainObject(value)) {\n\t\treturn value;\n\t}\n\n\tconst result: JsonObject = {};\n\tfor (const [childKey, childValue] of Object.entries(value)) {\n\t\tif (childKey === \"_privacy\") {\n\t\t\tresult[childKey] = childValue;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst anonymized = anonymizeRecursive(\n\t\t\tchildValue,\n\t\t\tcontext,\n\t\t\tdataClass,\n\t\t\t`${path}.${childKey}`,\n\t\t\tredactedFields,\n\t\t\tpolicies,\n\t\t\tchildKey,\n\t\t);\n\n\t\tif (anonymized !== undefined) {\n\t\t\tresult[childKey] = anonymized;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction buildMetadata(\n\tcontext: AnonymizationContext,\n\tdataClass: PlatformDataClass,\n\tredactedFields: AnonymizationFieldMetadata[],\n\tpreservedSemantics: readonly string[],\n): AnonymizationMetadata {\n\treturn {\n\t\tredactionState: \"anonymized\",\n\t\tpolicyVersion: context.policyVersion ?? ANONYMIZATION_POLICY_VERSION,\n\t\tjobId: context.jobId,\n\t\tredactedAt: (context.redactedAt ?? new Date()).toISOString(),\n\t\treason: context.reason,\n\t\tdataClass,\n\t\tredactedFields,\n\t\tpreservedSemantics: [...preservedSemantics],\n\t};\n}\n\nexport class FieldRedactor {\n\tredactField(value: unknown, method: RedactionMethod, context: AnonymizationContext, path: string): unknown {\n\t\treturn applyMethod(value, method, context, path);\n\t}\n\n\tmask(value: unknown): string | null {\n\t\treturn maskValue(value);\n\t}\n\n\thash(value: unknown): string {\n\t\treturn `sha256_${stableChecksum(value)}`;\n\t}\n\n\ttokenize(value: unknown, context: AnonymizationContext, path: string): string {\n\t\treturn stableScopedToken(value, context, path);\n\t}\n\n\tgeneralize(value: unknown): unknown {\n\t\treturn generalizeValue(value);\n\t}\n}\n\nexport class AnonymizationEngine {\n\treadonly #policy: AnonymizationPolicy;\n\n\tconstructor(policy: AnonymizationPolicy) {\n\t\tthis.#policy = {\n\t\t\tfields: policy.fields.map((field) => ({ ...field })),\n\t\t\tpreservedSemantics: [...(policy.preservedSemantics ?? [])],\n\t\t};\n\t}\n\n\tanonymizeJsonValue<TValue>(\n\t\tvalue: TValue,\n\t\tcontext: AnonymizationContext,\n\t\tdataClass: PlatformDataClass,\n\t): AnonymizationResult<TValue> {\n\t\treturn this.anonymizeJsonValueAtPath(value, context, dataClass, \"$\");\n\t}\n\n\tanonymizeJsonValueAtPath<TValue>(\n\t\tvalue: TValue,\n\t\tcontext: AnonymizationContext,\n\t\tdataClass: PlatformDataClass,\n\t\tbasePath: string,\n\t): AnonymizationResult<TValue> {\n\t\tconst redactedFields: AnonymizationFieldMetadata[] = [];\n\t\tconst anonymizedValue = anonymizeRecursive(\n\t\t\tvalue,\n\t\t\tcontext,\n\t\t\tdataClass,\n\t\t\tbasePath,\n\t\t\tredactedFields,\n\t\t\tthis.#policy.fields,\n\t\t) as TValue;\n\n\t\treturn {\n\t\t\tvalue: anonymizedValue,\n\t\t\tmetadata: buildMetadata(context, dataClass, redactedFields, this.#policy.preservedSemantics ?? []),\n\t\t};\n\t}\n\n\tanonymizeAssetEventPayload(\n\t\tevent: AssetEventLike,\n\t\tcontext: AnonymizationContext,\n\t): AnonymizationResult<unknown> {\n\t\tconst result = this.anonymizeJsonValue(event.payload, context, \"asset_event\");\n\t\tconst payload = isPlainObject(result.value)\n\t\t\t? { ...result.value, _privacy: result.metadata }\n\t\t\t: { value: result.value, _privacy: result.metadata };\n\n\t\treturn { value: payload, metadata: result.metadata };\n\t}\n\n\tanonymizeEvidencePacket(\n\t\tpacket: EvidencePacketLike,\n\t\tcontext: AnonymizationContext,\n\t): AnonymizationResult<Pick<EvidencePacketLike, \"packet\" | \"redactionMetadata\" | \"checksum\">> {\n\t\tconst result = this.anonymizeJsonValue(packet.packet, context, \"evidence_packet\");\n\t\tconst redactionMetadata = {\n\t\t\t...(isPlainObject(packet.redactionMetadata) ? packet.redactionMetadata : {}),\n\t\t\tlifecycleAnonymization: result.metadata,\n\t\t};\n\t\tconst anonymizedPacket = isPlainObject(result.value)\n\t\t\t? { ...result.value, _privacy: result.metadata }\n\t\t\t: { value: result.value, _privacy: result.metadata };\n\n\t\treturn {\n\t\t\tvalue: {\n\t\t\t\tpacket: anonymizedPacket,\n\t\t\t\tredactionMetadata,\n\t\t\t\tchecksum: stableChecksum({ packet: anonymizedPacket, redactionMetadata }),\n\t\t\t},\n\t\t\tmetadata: result.metadata,\n\t\t};\n\t}\n\n\tbuildAnonymizationLifecycleEvidence(input: {\n\t\tcontext: AnonymizationContext;\n\t\tassetEvents?: Array<{ event: AssetEventLike; metadata: AnonymizationMetadata }>;\n\t\treadModels?: Array<{\n\t\t\tmodelKind: string;\n\t\t\trecord: JsonObject & { id: string };\n\t\t\tmetadata: AnonymizationMetadata;\n\t\t}>;\n\t\tevidencePackets?: Array<{ packet: EvidencePacketLike; metadata: AnonymizationMetadata }>;\n\t}): AnonymizationLifecycleEvidence {\n\t\tconst assetEvents = input.assetEvents ?? [];\n\t\tconst readModels = input.readModels ?? [];\n\t\tconst evidencePackets = input.evidencePackets ?? [];\n\t\tconst redactedFields = [\n\t\t\t...assetEvents.flatMap((item) => item.metadata.redactedFields),\n\t\t\t...readModels.flatMap((item) => item.metadata.redactedFields),\n\t\t\t...evidencePackets.flatMap((item) => item.metadata.redactedFields),\n\t\t];\n\n\t\treturn {\n\t\t\teventType: \"AnonymizationApplied\",\n\t\t\tpolicyVersion: input.context.policyVersion ?? ANONYMIZATION_POLICY_VERSION,\n\t\t\tjobId: input.context.jobId,\n\t\t\treason: input.context.reason,\n\t\t\tappliedAt: (input.context.redactedAt ?? new Date()).toISOString(),\n\t\t\ttenantId: input.context.tenantId,\n\t\t\tspaceId: input.context.spaceId ?? null,\n\t\t\tcounts: {\n\t\t\t\tassetEvents: assetEvents.length,\n\t\t\t\treadModels: readModels.length,\n\t\t\t\tevidencePackets: evidencePackets.length,\n\t\t\t\tredactedFields: redactedFields.length,\n\t\t\t},\n\t\t\trecords: [\n\t\t\t\t...assetEvents.map((item) => ({\n\t\t\t\t\trecordClass: \"asset_event\" as PlatformDataClass,\n\t\t\t\t\trecordId: item.event.id,\n\t\t\t\t\tsubjectType: item.event.subjectType,\n\t\t\t\t\tsubjectId: item.event.subjectId,\n\t\t\t\t\tfieldManifest: item.metadata.redactedFields.map(\n\t\t\t\t\t\t({ fieldPath, method, beforeChecksum }) => ({\n\t\t\t\t\t\t\tfieldPath,\n\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\tbeforeChecksum,\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t})),\n\t\t\t\t...readModels.map((item) => ({\n\t\t\t\t\trecordClass: \"read_model\" as PlatformDataClass,\n\t\t\t\t\trecordId: item.record.id,\n\t\t\t\t\tsubjectType: item.modelKind,\n\t\t\t\t\tsubjectId: item.record.id,\n\t\t\t\t\tfieldManifest: item.metadata.redactedFields.map(\n\t\t\t\t\t\t({ fieldPath, method, beforeChecksum }) => ({\n\t\t\t\t\t\t\tfieldPath,\n\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\tbeforeChecksum,\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t})),\n\t\t\t\t...evidencePackets.map((item) => ({\n\t\t\t\t\trecordClass: \"evidence_packet\" as PlatformDataClass,\n\t\t\t\t\trecordId: item.packet.id,\n\t\t\t\t\tfieldManifest: item.metadata.redactedFields.map(\n\t\t\t\t\t\t({ fieldPath, method, beforeChecksum }) => ({\n\t\t\t\t\t\t\tfieldPath,\n\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\tbeforeChecksum,\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t})),\n\t\t\t],\n\t\t\tpreservedSemantics: [...(this.#policy.preservedSemantics ?? [])],\n\t\t};\n\t}\n}\n"],"mappings":";;AAWA,MAAa,+BAA+B;AAgE5C,SAAS,aAAa,KAAqB;CAC1C,OAAO,IAAI,QAAQ,iBAAiB,EAAE,CAAC,CAAC,YAAY;AACrD;AAEA,SAAgB,eAAe,OAAwB;CACtD,QAAA,GAAOA,OAAAA,WAAAA,CAAW,QAAQ,CAAC,CAAC,OAAO,KAAK,UAAU,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK;AACvE;AAEA,SAAS,kBACR,OACA,SACA,WACS;CACT,MAAM,QAAQ,GAAG,QAAQ,SAAS,GAAG,QAAQ,WAAW,SAAS,GAAG;CACpE,OAAO,QAAA,GAAOA,OAAAA,WAAAA,CAAW,QAAQ,CAAC,CAChC,OAAO,GAAG,QAAQ,iBAAA,oCAA8C,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,CAAC,CAC5F,OAAO,KAAK,CAAC,CACb,MAAM,GAAG,EAAE;AACd;AAEA,SAAS,UAAU,OAA+B;CACjD,IAAI,UAAU,QAAQ,UAAU,KAAA,GAC/B,OAAO;CAGR,MAAM,cAAc,OAAO,KAAK;CAChC,IAAI,YAAY,UAAU,GACzB,OAAO;CAGR,OAAO,GAAG,IAAI,OAAO,KAAK,IAAI,YAAY,SAAS,GAAG,CAAC,CAAC,IAAI,YAAY,MAAM,EAAE;AACjF;AAEA,SAAS,gBAAgB,OAAyB;CACjD,IAAI,OAAO,UAAU,UACpB,OAAO,KAAK,MAAM,QAAQ,GAAI,IAAI;CAGnC,IAAI,OAAO,UAAU,YAAY,qBAAqB,KAAK,KAAK,GAC/D,OAAO,GAAG,MAAM,MAAM,GAAG,CAAC,EAAE;CAG7B,OAAO;AACR;AAEA,SAAS,YACR,OACA,QACA,SACA,MACU;CACV,QAAQ,QAAR;EACC,KAAK,QACJ;EACD,KAAK,WACJ,OAAO;EACR,KAAK,QACJ,OAAO,UAAU,KAAK;EACvB,KAAK,QACJ,OAAO,UAAU,eAAe,KAAK;EACtC,KAAK,YACJ,OAAO,kBAAkB,OAAO,SAAS,IAAI;EAC9C,KAAK,cACJ,OAAO,gBAAgB,KAAK;CAC9B;AACD;AAEA,SAAS,cAAc,UAA+C,MAAc,KAAoD;CACvI,MAAM,iBAAiB,aAAa,IAAI;CACxC,MAAM,gBAAgB,MAAM,aAAa,GAAG,IAAI,KAAA;CAEhD,OAAO,SAAS,MAAM,WAAW;EAChC,MAAM,kBAAkB,aAAa,OAAO,KAAK;EACjD,IAAI,OAAO,UAAU,OACpB,OAAO,oBAAoB;EAG5B,OAAO,oBAAoB;CAC5B,CAAC;AACF;AAEA,SAAS,cAAc,OAAqC;CAC3D,OACC,QAAQ,KAAK,KAAK,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,KAAK,EAAE,iBAAiB;AAE7F;AAEA,SAAS,mBACR,OACA,SACA,WACA,MACA,gBACA,UACA,KACU;CACV,MAAM,cAAc,cAAc,UAAU,MAAM,GAAG;CACrD,IAAI,eAAe,UAAU,QAAQ,UAAU,KAAA,GAAW;EACzD,eAAe,KAAK;GACnB,WAAW;GACX,QAAQ,YAAY;GACpB,eAAe,QAAQ,iBAAA;GACvB,OAAO,QAAQ;GACf,aAAa,QAAQ,8BAAc,IAAI,KAAK,EAAA,CAAG,YAAY;GAC3D,QAAQ,QAAQ;GAChB;GACA,gBAAgB,eAAe,KAAK;EACrC,CAAC;EAED,OAAO,YAAY,OAAO,YAAY,QAAQ,SAAS,IAAI;CAC5D;CAEA,IAAI,MAAM,QAAQ,KAAK,GACtB,OAAO,MAAM,KAAK,MAAM,UACvB,mBAAmB,MAAM,SAAS,WAAW,GAAG,KAAK,GAAG,MAAM,IAAI,gBAAgB,QAAQ,CAC3F;CAGD,IAAI,CAAC,cAAc,KAAK,GACvB,OAAO;CAGR,MAAM,SAAqB,CAAC;CAC5B,KAAK,MAAM,CAAC,UAAU,eAAe,OAAO,QAAQ,KAAK,GAAG;EAC3D,IAAI,aAAa,YAAY;GAC5B,OAAO,YAAY;GACnB;EACD;EAEA,MAAM,aAAa,mBAClB,YACA,SACA,WACA,GAAG,KAAK,GAAG,YACX,gBACA,UACA,QACD;EAEA,IAAI,eAAe,KAAA,GAClB,OAAO,YAAY;CAErB;CAEA,OAAO;AACR;AAEA,SAAS,cACR,SACA,WACA,gBACA,oBACwB;CACxB,OAAO;EACN,gBAAgB;EAChB,eAAe,QAAQ,iBAAA;EACvB,OAAO,QAAQ;EACf,aAAa,QAAQ,8BAAc,IAAI,KAAK,EAAA,CAAG,YAAY;EAC3D,QAAQ,QAAQ;EAChB;EACA;EACA,oBAAoB,CAAC,GAAG,kBAAkB;CAC3C;AACD;AAEA,IAAa,gBAAb,MAA2B;CAC1B,YAAY,OAAgB,QAAyB,SAA+B,MAAuB;EAC1G,OAAO,YAAY,OAAO,QAAQ,SAAS,IAAI;CAChD;CAEA,KAAK,OAA+B;EACnC,OAAO,UAAU,KAAK;CACvB;CAEA,KAAK,OAAwB;EAC5B,OAAO,UAAU,eAAe,KAAK;CACtC;CAEA,SAAS,OAAgB,SAA+B,MAAsB;EAC7E,OAAO,kBAAkB,OAAO,SAAS,IAAI;CAC9C;CAEA,WAAW,OAAyB;EACnC,OAAO,gBAAgB,KAAK;CAC7B;AACD;AAEA,IAAa,sBAAb,MAAiC;CAChC;CAEA,YAAY,QAA6B;EACxC,KAAK,UAAU;GACd,QAAQ,OAAO,OAAO,KAAK,WAAW,EAAE,GAAG,MAAM,EAAE;GACnD,oBAAoB,CAAC,GAAI,OAAO,sBAAsB,CAAC,CAAE;EAC1D;CACD;CAEA,mBACC,OACA,SACA,WAC8B;EAC9B,OAAO,KAAK,yBAAyB,OAAO,SAAS,WAAW,GAAG;CACpE;CAEA,yBACC,OACA,SACA,WACA,UAC8B;EAC9B,MAAM,iBAA+C,CAAC;EAUtD,OAAO;GACN,OAVuB,mBACvB,OACA,SACA,WACA,UACA,gBACA,KAAK,QAAQ,MAIQ;GACrB,UAAU,cAAc,SAAS,WAAW,gBAAgB,KAAK,QAAQ,sBAAsB,CAAC,CAAC;EAClG;CACD;CAEA,2BACC,OACA,SAC+B;EAC/B,MAAM,SAAS,KAAK,mBAAmB,MAAM,SAAS,SAAS,aAAa;EAK5E,OAAO;GAAE,OAJO,cAAc,OAAO,KAAK,IACvC;IAAE,GAAG,OAAO;IAAO,UAAU,OAAO;GAAS,IAC7C;IAAE,OAAO,OAAO;IAAO,UAAU,OAAO;GAAS;GAE3B,UAAU,OAAO;EAAS;CACpD;CAEA,wBACC,QACA,SAC6F;EAC7F,MAAM,SAAS,KAAK,mBAAmB,OAAO,QAAQ,SAAS,iBAAiB;EAChF,MAAM,oBAAoB;GACzB,GAAI,cAAc,OAAO,iBAAiB,IAAI,OAAO,oBAAoB,CAAC;GAC1E,wBAAwB,OAAO;EAChC;EACA,MAAM,mBAAmB,cAAc,OAAO,KAAK,IAChD;GAAE,GAAG,OAAO;GAAO,UAAU,OAAO;EAAS,IAC7C;GAAE,OAAO,OAAO;GAAO,UAAU,OAAO;EAAS;EAEpD,OAAO;GACN,OAAO;IACN,QAAQ;IACR;IACA,UAAU,eAAe;KAAE,QAAQ;KAAkB;IAAkB,CAAC;GACzE;GACA,UAAU,OAAO;EAClB;CACD;CAEA,oCAAoC,OASD;EAClC,MAAM,cAAc,MAAM,eAAe,CAAC;EAC1C,MAAM,aAAa,MAAM,cAAc,CAAC;EACxC,MAAM,kBAAkB,MAAM,mBAAmB,CAAC;EAClD,MAAM,iBAAiB;GACtB,GAAG,YAAY,SAAS,SAAS,KAAK,SAAS,cAAc;GAC7D,GAAG,WAAW,SAAS,SAAS,KAAK,SAAS,cAAc;GAC5D,GAAG,gBAAgB,SAAS,SAAS,KAAK,SAAS,cAAc;EAClE;EAEA,OAAO;GACN,WAAW;GACX,eAAe,MAAM,QAAQ,iBAAA;GAC7B,OAAO,MAAM,QAAQ;GACrB,QAAQ,MAAM,QAAQ;GACtB,YAAY,MAAM,QAAQ,8BAAc,IAAI,KAAK,EAAA,CAAG,YAAY;GAChE,UAAU,MAAM,QAAQ;GACxB,SAAS,MAAM,QAAQ,WAAW;GAClC,QAAQ;IACP,aAAa,YAAY;IACzB,YAAY,WAAW;IACvB,iBAAiB,gBAAgB;IACjC,gBAAgB,eAAe;GAChC;GACA,SAAS;IACR,GAAG,YAAY,KAAK,UAAU;KAC7B,aAAa;KACb,UAAU,KAAK,MAAM;KACrB,aAAa,KAAK,MAAM;KACxB,WAAW,KAAK,MAAM;KACtB,eAAe,KAAK,SAAS,eAAe,KAC1C,EAAE,WAAW,QAAQ,sBAAsB;MAC3C;MACA;MACA;KACD,EACD;IACD,EAAE;IACF,GAAG,WAAW,KAAK,UAAU;KAC5B,aAAa;KACb,UAAU,KAAK,OAAO;KACtB,aAAa,KAAK;KAClB,WAAW,KAAK,OAAO;KACvB,eAAe,KAAK,SAAS,eAAe,KAC1C,EAAE,WAAW,QAAQ,sBAAsB;MAC3C;MACA;MACA;KACD,EACD;IACD,EAAE;IACF,GAAG,gBAAgB,KAAK,UAAU;KACjC,aAAa;KACb,UAAU,KAAK,OAAO;KACtB,eAAe,KAAK,SAAS,eAAe,KAC1C,EAAE,WAAW,QAAQ,sBAAsB;MAC3C;MACA;MACA;KACD,EACD;IACD,EAAE;GACH;GACA,oBAAoB,CAAC,GAAI,KAAK,QAAQ,sBAAsB,CAAC,CAAE;EAChE;CACD;AACD"}
@@ -1,12 +1,41 @@
1
- 'use strict';
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region events/index.ts
3
+ const BUILT_IN_SUBJECT_TYPES = Object.freeze([
4
+ "ActionInvocation",
5
+ "PolicyEvaluation",
6
+ "AdapterInvocation"
7
+ ]);
8
+ const BUILT_IN_EVENT_TYPES = Object.freeze([
9
+ "ComplianceBlocked",
10
+ "StateTransitioned",
11
+ "AdapterInvocationStarted",
12
+ "AdapterInvocationSucceeded",
13
+ "AdapterInvocationFailed",
14
+ "ExternalOperationAccepted",
15
+ "ExternalOperationCompleted",
16
+ "ExternalOperationFailed",
17
+ "ExternalOperationContradicted",
18
+ "WebhookReceived"
19
+ ]);
20
+ function createEventContractRegistry(input = {}) {
21
+ const eventTypes = /* @__PURE__ */ new Set([...BUILT_IN_EVENT_TYPES, ...input.eventTypes ?? []]);
22
+ const subjectTypes = /* @__PURE__ */ new Set([...BUILT_IN_SUBJECT_TYPES, ...input.subjectTypes ?? []]);
23
+ return {
24
+ registerEventType(eventType) {
25
+ if (!eventType) throw new Error("Event type cannot be empty");
26
+ eventTypes.add(eventType);
27
+ },
28
+ registerSubjectType(subjectType) {
29
+ if (!subjectType) throw new Error("Subject type cannot be empty");
30
+ subjectTypes.add(subjectType);
31
+ },
32
+ hasEventType: (eventType) => eventTypes.has(eventType),
33
+ hasSubjectType: (subjectType) => subjectTypes.has(subjectType),
34
+ eventTypes: () => Array.from(eventTypes).sort(),
35
+ subjectTypes: () => Array.from(subjectTypes).sort()
36
+ };
37
+ }
38
+ //#endregion
39
+ exports.createEventContractRegistry = createEventContractRegistry;
2
40
 
3
- var chunk2AE6TMAX_cjs = require('../chunk-2AE6TMAX.cjs');
4
-
5
-
6
-
7
- Object.defineProperty(exports, "createEventContractRegistry", {
8
- enumerable: true,
9
- get: function () { return chunk2AE6TMAX_cjs.createEventContractRegistry; }
10
- });
11
- //# sourceMappingURL=index.cjs.map
12
41
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../events/index.ts"],"sourcesContent":["export interface AssetEventEnvelope<TPayload = unknown> {\n\tid: string;\n\ttenantId: string;\n\tspaceId: string;\n\teventType: string;\n\teventSchemaVersion: number;\n\tsubjectType: string;\n\tsubjectId: string;\n\tactorId: string;\n\tactorType: string;\n\tactionInvocationId?: string;\n\tpayload: TPayload;\n\tsequence: number;\n\toccurredAt: Date;\n\trecordedAt: Date;\n\tcorrelationId: string;\n\tcausationId?: string;\n\tprovenance?: EventProvenance;\n\t/**\n\t * Mirrors the emitting action's declared consistency. Present only when the\n\t * action declares `provisional-until-reconciled`, so a consumer can tell a\n\t * settled fact from one still awaiting reconciliation without a lookup.\n\t * Additive and optional: tolerant consumers that ignore it stay correct.\n\t */\n\tconsistency?: \"authoritative-now\" | \"provisional-until-reconciled\";\n}\n\nexport interface EventProvenance {\n\tsource: \"ui\" | \"api\" | \"agent\" | \"worker\" | \"system\" | (string & {});\n\tauditAttributes?: Record<string, string>;\n}\n\nconst BUILT_IN_SUBJECT_TYPES = Object.freeze([\n\t\"ActionInvocation\",\n\t\"PolicyEvaluation\",\n\t\"AdapterInvocation\",\n]);\n\nconst BUILT_IN_EVENT_TYPES = Object.freeze([\n\t\"ComplianceBlocked\",\n\t\"StateTransitioned\",\n\t\"AdapterInvocationStarted\",\n\t\"AdapterInvocationSucceeded\",\n\t\"AdapterInvocationFailed\",\n\t\"ExternalOperationAccepted\",\n\t\"ExternalOperationCompleted\",\n\t\"ExternalOperationFailed\",\n\t\"ExternalOperationContradicted\",\n\t\"WebhookReceived\",\n]);\n\nexport type AssetEventSubjectType = string;\nexport type AssetEventType = string;\nexport type AssetEventActorType = \"natural_person\" | \"agent\" | \"adapter\" | \"system\" | \"service_account\" | \"external_system\" | \"integration\";\n\nexport interface EventContractRegistry {\n\tregisterEventType(eventType: string): void;\n\tregisterSubjectType(subjectType: string): void;\n\thasEventType(eventType: string): boolean;\n\thasSubjectType(subjectType: string): boolean;\n\teventTypes(): string[];\n\tsubjectTypes(): string[];\n}\n\nexport function createEventContractRegistry(input: { eventTypes?: readonly string[]; subjectTypes?: readonly string[] } = {}): EventContractRegistry {\n\tconst eventTypes = new Set([...BUILT_IN_EVENT_TYPES, ...(input.eventTypes ?? [])]);\n\tconst subjectTypes = new Set([...BUILT_IN_SUBJECT_TYPES, ...(input.subjectTypes ?? [])]);\n\treturn {\n\t\tregisterEventType(eventType) {\n\t\t\tif (!eventType) {\n\t\t\t\tthrow new Error(\"Event type cannot be empty\");\n\t\t\t}\n\t\t\teventTypes.add(eventType);\n\t\t},\n\t\tregisterSubjectType(subjectType) {\n\t\t\tif (!subjectType) throw new Error(\"Subject type cannot be empty\");\n\t\t\tsubjectTypes.add(subjectType);\n\t\t},\n\t\thasEventType: (eventType) => eventTypes.has(eventType),\n\t\thasSubjectType: (subjectType) => subjectTypes.has(subjectType),\n\t\teventTypes: () => Array.from(eventTypes).sort(),\n\t\tsubjectTypes: () => Array.from(subjectTypes).sort(),\n\t};\n}\n"],"mappings":";;AAgCA,MAAM,yBAAyB,OAAO,OAAO;CAC5C;CACA;CACA;AACD,CAAC;AAED,MAAM,uBAAuB,OAAO,OAAO;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;AAeD,SAAgB,4BAA4B,QAA8E,CAAC,GAA0B;CACpJ,MAAM,6BAAa,IAAI,IAAI,CAAC,GAAG,sBAAsB,GAAI,MAAM,cAAc,CAAC,CAAE,CAAC;CACjF,MAAM,+BAAe,IAAI,IAAI,CAAC,GAAG,wBAAwB,GAAI,MAAM,gBAAgB,CAAC,CAAE,CAAC;CACvF,OAAO;EACN,kBAAkB,WAAW;GAC5B,IAAI,CAAC,WACJ,MAAM,IAAI,MAAM,4BAA4B;GAE7C,WAAW,IAAI,SAAS;EACzB;EACA,oBAAoB,aAAa;GAChC,IAAI,CAAC,aAAa,MAAM,IAAI,MAAM,8BAA8B;GAChE,aAAa,IAAI,WAAW;EAC7B;EACA,eAAe,cAAc,WAAW,IAAI,SAAS;EACrD,iBAAiB,gBAAgB,aAAa,IAAI,WAAW;EAC7D,kBAAkB,MAAM,KAAK,UAAU,CAAC,CAAC,KAAK;EAC9C,oBAAoB,MAAM,KAAK,YAAY,CAAC,CAAC,KAAK;CACnD;AACD"}
@@ -1,47 +1,47 @@
1
- interface AssetEventEnvelope<TPayload = unknown> {
2
- id: string;
3
- tenantId: string;
4
- spaceId: string;
5
- eventType: string;
6
- eventSchemaVersion: number;
7
- subjectType: string;
8
- subjectId: string;
9
- actorId: string;
10
- actorType: string;
11
- actionInvocationId?: string;
12
- payload: TPayload;
13
- sequence: number;
14
- occurredAt: Date;
15
- recordedAt: Date;
16
- correlationId: string;
17
- causationId?: string;
18
- provenance?: EventProvenance;
19
- /**
20
- * Mirrors the emitting action's declared consistency. Present only when the
21
- * action declares `provisional-until-reconciled`, so a consumer can tell a
22
- * settled fact from one still awaiting reconciliation without a lookup.
23
- * Additive and optional: tolerant consumers that ignore it stay correct.
24
- */
25
- consistency?: "authoritative-now" | "provisional-until-reconciled";
1
+ //#region events/index.d.ts
2
+ export interface AssetEventEnvelope<TPayload = unknown> {
3
+ id: string;
4
+ tenantId: string;
5
+ spaceId: string;
6
+ eventType: string;
7
+ eventSchemaVersion: number;
8
+ subjectType: string;
9
+ subjectId: string;
10
+ actorId: string;
11
+ actorType: string;
12
+ actionInvocationId?: string;
13
+ payload: TPayload;
14
+ sequence: number;
15
+ occurredAt: Date;
16
+ recordedAt: Date;
17
+ correlationId: string;
18
+ causationId?: string;
19
+ provenance?: EventProvenance;
20
+ /**
21
+ * Mirrors the emitting action's declared consistency. Present only when the
22
+ * action declares `provisional-until-reconciled`, so a consumer can tell a
23
+ * settled fact from one still awaiting reconciliation without a lookup.
24
+ * Additive and optional: tolerant consumers that ignore it stay correct.
25
+ */
26
+ consistency?: "authoritative-now" | "provisional-until-reconciled";
26
27
  }
27
- interface EventProvenance {
28
- source: "ui" | "api" | "agent" | "worker" | "system" | (string & {});
29
- auditAttributes?: Record<string, string>;
28
+ export interface EventProvenance {
29
+ source: "ui" | "api" | "agent" | "worker" | "system" | (string & {});
30
+ auditAttributes?: Record<string, string>;
30
31
  }
31
- type AssetEventSubjectType = string;
32
- type AssetEventType = string;
33
- type AssetEventActorType = "natural_person" | "agent" | "adapter" | "system" | "service_account" | "external_system" | "integration";
34
- interface EventContractRegistry {
35
- registerEventType(eventType: string): void;
36
- registerSubjectType(subjectType: string): void;
37
- hasEventType(eventType: string): boolean;
38
- hasSubjectType(subjectType: string): boolean;
39
- eventTypes(): string[];
40
- subjectTypes(): string[];
32
+ export type AssetEventSubjectType = string;
33
+ export type AssetEventType = string;
34
+ export type AssetEventActorType = "natural_person" | "agent" | "adapter" | "system" | "service_account" | "external_system" | "integration";
35
+ export interface EventContractRegistry {
36
+ registerEventType(eventType: string): void;
37
+ registerSubjectType(subjectType: string): void;
38
+ hasEventType(eventType: string): boolean;
39
+ hasSubjectType(subjectType: string): boolean;
40
+ eventTypes(): string[];
41
+ subjectTypes(): string[];
41
42
  }
42
- declare function createEventContractRegistry(input?: {
43
- eventTypes?: readonly string[];
44
- subjectTypes?: readonly string[];
43
+ export declare function createEventContractRegistry(input?: {
44
+ eventTypes?: readonly string[];
45
+ subjectTypes?: readonly string[];
45
46
  }): EventContractRegistry;
46
-
47
- export { type AssetEventActorType, type AssetEventEnvelope, type AssetEventSubjectType, type AssetEventType, type EventContractRegistry, type EventProvenance, createEventContractRegistry };
47
+ //#endregion
@@ -1,47 +1,47 @@
1
- interface AssetEventEnvelope<TPayload = unknown> {
2
- id: string;
3
- tenantId: string;
4
- spaceId: string;
5
- eventType: string;
6
- eventSchemaVersion: number;
7
- subjectType: string;
8
- subjectId: string;
9
- actorId: string;
10
- actorType: string;
11
- actionInvocationId?: string;
12
- payload: TPayload;
13
- sequence: number;
14
- occurredAt: Date;
15
- recordedAt: Date;
16
- correlationId: string;
17
- causationId?: string;
18
- provenance?: EventProvenance;
19
- /**
20
- * Mirrors the emitting action's declared consistency. Present only when the
21
- * action declares `provisional-until-reconciled`, so a consumer can tell a
22
- * settled fact from one still awaiting reconciliation without a lookup.
23
- * Additive and optional: tolerant consumers that ignore it stay correct.
24
- */
25
- consistency?: "authoritative-now" | "provisional-until-reconciled";
1
+ //#region events/index.d.ts
2
+ export interface AssetEventEnvelope<TPayload = unknown> {
3
+ id: string;
4
+ tenantId: string;
5
+ spaceId: string;
6
+ eventType: string;
7
+ eventSchemaVersion: number;
8
+ subjectType: string;
9
+ subjectId: string;
10
+ actorId: string;
11
+ actorType: string;
12
+ actionInvocationId?: string;
13
+ payload: TPayload;
14
+ sequence: number;
15
+ occurredAt: Date;
16
+ recordedAt: Date;
17
+ correlationId: string;
18
+ causationId?: string;
19
+ provenance?: EventProvenance;
20
+ /**
21
+ * Mirrors the emitting action's declared consistency. Present only when the
22
+ * action declares `provisional-until-reconciled`, so a consumer can tell a
23
+ * settled fact from one still awaiting reconciliation without a lookup.
24
+ * Additive and optional: tolerant consumers that ignore it stay correct.
25
+ */
26
+ consistency?: "authoritative-now" | "provisional-until-reconciled";
26
27
  }
27
- interface EventProvenance {
28
- source: "ui" | "api" | "agent" | "worker" | "system" | (string & {});
29
- auditAttributes?: Record<string, string>;
28
+ export interface EventProvenance {
29
+ source: "ui" | "api" | "agent" | "worker" | "system" | (string & {});
30
+ auditAttributes?: Record<string, string>;
30
31
  }
31
- type AssetEventSubjectType = string;
32
- type AssetEventType = string;
33
- type AssetEventActorType = "natural_person" | "agent" | "adapter" | "system" | "service_account" | "external_system" | "integration";
34
- interface EventContractRegistry {
35
- registerEventType(eventType: string): void;
36
- registerSubjectType(subjectType: string): void;
37
- hasEventType(eventType: string): boolean;
38
- hasSubjectType(subjectType: string): boolean;
39
- eventTypes(): string[];
40
- subjectTypes(): string[];
32
+ export type AssetEventSubjectType = string;
33
+ export type AssetEventType = string;
34
+ export type AssetEventActorType = "natural_person" | "agent" | "adapter" | "system" | "service_account" | "external_system" | "integration";
35
+ export interface EventContractRegistry {
36
+ registerEventType(eventType: string): void;
37
+ registerSubjectType(subjectType: string): void;
38
+ hasEventType(eventType: string): boolean;
39
+ hasSubjectType(subjectType: string): boolean;
40
+ eventTypes(): string[];
41
+ subjectTypes(): string[];
41
42
  }
42
- declare function createEventContractRegistry(input?: {
43
- eventTypes?: readonly string[];
44
- subjectTypes?: readonly string[];
43
+ export declare function createEventContractRegistry(input?: {
44
+ eventTypes?: readonly string[];
45
+ subjectTypes?: readonly string[];
45
46
  }): EventContractRegistry;
46
-
47
- export { type AssetEventActorType, type AssetEventEnvelope, type AssetEventSubjectType, type AssetEventType, type EventContractRegistry, type EventProvenance, createEventContractRegistry };
47
+ //#endregion
@@ -1,3 +1,40 @@
1
- export { createEventContractRegistry } from '../chunk-B5DOGDPG.js';
2
- //# sourceMappingURL=index.js.map
1
+ //#region events/index.ts
2
+ const BUILT_IN_SUBJECT_TYPES = Object.freeze([
3
+ "ActionInvocation",
4
+ "PolicyEvaluation",
5
+ "AdapterInvocation"
6
+ ]);
7
+ const BUILT_IN_EVENT_TYPES = Object.freeze([
8
+ "ComplianceBlocked",
9
+ "StateTransitioned",
10
+ "AdapterInvocationStarted",
11
+ "AdapterInvocationSucceeded",
12
+ "AdapterInvocationFailed",
13
+ "ExternalOperationAccepted",
14
+ "ExternalOperationCompleted",
15
+ "ExternalOperationFailed",
16
+ "ExternalOperationContradicted",
17
+ "WebhookReceived"
18
+ ]);
19
+ function createEventContractRegistry(input = {}) {
20
+ const eventTypes = /* @__PURE__ */ new Set([...BUILT_IN_EVENT_TYPES, ...input.eventTypes ?? []]);
21
+ const subjectTypes = /* @__PURE__ */ new Set([...BUILT_IN_SUBJECT_TYPES, ...input.subjectTypes ?? []]);
22
+ return {
23
+ registerEventType(eventType) {
24
+ if (!eventType) throw new Error("Event type cannot be empty");
25
+ eventTypes.add(eventType);
26
+ },
27
+ registerSubjectType(subjectType) {
28
+ if (!subjectType) throw new Error("Subject type cannot be empty");
29
+ subjectTypes.add(subjectType);
30
+ },
31
+ hasEventType: (eventType) => eventTypes.has(eventType),
32
+ hasSubjectType: (subjectType) => subjectTypes.has(subjectType),
33
+ eventTypes: () => Array.from(eventTypes).sort(),
34
+ subjectTypes: () => Array.from(subjectTypes).sort()
35
+ };
36
+ }
37
+ //#endregion
38
+ export { createEventContractRegistry };
39
+
3
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../events/index.ts"],"sourcesContent":["export interface AssetEventEnvelope<TPayload = unknown> {\n\tid: string;\n\ttenantId: string;\n\tspaceId: string;\n\teventType: string;\n\teventSchemaVersion: number;\n\tsubjectType: string;\n\tsubjectId: string;\n\tactorId: string;\n\tactorType: string;\n\tactionInvocationId?: string;\n\tpayload: TPayload;\n\tsequence: number;\n\toccurredAt: Date;\n\trecordedAt: Date;\n\tcorrelationId: string;\n\tcausationId?: string;\n\tprovenance?: EventProvenance;\n\t/**\n\t * Mirrors the emitting action's declared consistency. Present only when the\n\t * action declares `provisional-until-reconciled`, so a consumer can tell a\n\t * settled fact from one still awaiting reconciliation without a lookup.\n\t * Additive and optional: tolerant consumers that ignore it stay correct.\n\t */\n\tconsistency?: \"authoritative-now\" | \"provisional-until-reconciled\";\n}\n\nexport interface EventProvenance {\n\tsource: \"ui\" | \"api\" | \"agent\" | \"worker\" | \"system\" | (string & {});\n\tauditAttributes?: Record<string, string>;\n}\n\nconst BUILT_IN_SUBJECT_TYPES = Object.freeze([\n\t\"ActionInvocation\",\n\t\"PolicyEvaluation\",\n\t\"AdapterInvocation\",\n]);\n\nconst BUILT_IN_EVENT_TYPES = Object.freeze([\n\t\"ComplianceBlocked\",\n\t\"StateTransitioned\",\n\t\"AdapterInvocationStarted\",\n\t\"AdapterInvocationSucceeded\",\n\t\"AdapterInvocationFailed\",\n\t\"ExternalOperationAccepted\",\n\t\"ExternalOperationCompleted\",\n\t\"ExternalOperationFailed\",\n\t\"ExternalOperationContradicted\",\n\t\"WebhookReceived\",\n]);\n\nexport type AssetEventSubjectType = string;\nexport type AssetEventType = string;\nexport type AssetEventActorType = \"natural_person\" | \"agent\" | \"adapter\" | \"system\" | \"service_account\" | \"external_system\" | \"integration\";\n\nexport interface EventContractRegistry {\n\tregisterEventType(eventType: string): void;\n\tregisterSubjectType(subjectType: string): void;\n\thasEventType(eventType: string): boolean;\n\thasSubjectType(subjectType: string): boolean;\n\teventTypes(): string[];\n\tsubjectTypes(): string[];\n}\n\nexport function createEventContractRegistry(input: { eventTypes?: readonly string[]; subjectTypes?: readonly string[] } = {}): EventContractRegistry {\n\tconst eventTypes = new Set([...BUILT_IN_EVENT_TYPES, ...(input.eventTypes ?? [])]);\n\tconst subjectTypes = new Set([...BUILT_IN_SUBJECT_TYPES, ...(input.subjectTypes ?? [])]);\n\treturn {\n\t\tregisterEventType(eventType) {\n\t\t\tif (!eventType) {\n\t\t\t\tthrow new Error(\"Event type cannot be empty\");\n\t\t\t}\n\t\t\teventTypes.add(eventType);\n\t\t},\n\t\tregisterSubjectType(subjectType) {\n\t\t\tif (!subjectType) throw new Error(\"Subject type cannot be empty\");\n\t\t\tsubjectTypes.add(subjectType);\n\t\t},\n\t\thasEventType: (eventType) => eventTypes.has(eventType),\n\t\thasSubjectType: (subjectType) => subjectTypes.has(subjectType),\n\t\teventTypes: () => Array.from(eventTypes).sort(),\n\t\tsubjectTypes: () => Array.from(subjectTypes).sort(),\n\t};\n}\n"],"mappings":";AAgCA,MAAM,yBAAyB,OAAO,OAAO;CAC5C;CACA;CACA;AACD,CAAC;AAED,MAAM,uBAAuB,OAAO,OAAO;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;AAeD,SAAgB,4BAA4B,QAA8E,CAAC,GAA0B;CACpJ,MAAM,6BAAa,IAAI,IAAI,CAAC,GAAG,sBAAsB,GAAI,MAAM,cAAc,CAAC,CAAE,CAAC;CACjF,MAAM,+BAAe,IAAI,IAAI,CAAC,GAAG,wBAAwB,GAAI,MAAM,gBAAgB,CAAC,CAAE,CAAC;CACvF,OAAO;EACN,kBAAkB,WAAW;GAC5B,IAAI,CAAC,WACJ,MAAM,IAAI,MAAM,4BAA4B;GAE7C,WAAW,IAAI,SAAS;EACzB;EACA,oBAAoB,aAAa;GAChC,IAAI,CAAC,aAAa,MAAM,IAAI,MAAM,8BAA8B;GAChE,aAAa,IAAI,WAAW;EAC7B;EACA,eAAe,cAAc,WAAW,IAAI,SAAS;EACrD,iBAAiB,gBAAgB,aAAa,IAAI,WAAW;EAC7D,kBAAkB,MAAM,KAAK,UAAU,CAAC,CAAC,KAAK;EAC9C,oBAAoB,MAAM,KAAK,YAAY,CAAC,CAAC,KAAK;CACnD;AACD"}
@@ -1,50 +1,12 @@
1
- 'use strict';
2
-
3
- var chunk6HY35TKB_cjs = require('../chunk-6HY35TKB.cjs');
4
- require('../chunk-LZSE6QGQ.cjs');
5
- require('../chunk-CRZXTZ36.cjs');
6
-
7
-
8
-
9
- Object.defineProperty(exports, "DEFAULT_EVIDENCE_PACKET_TYPE", {
10
- enumerable: true,
11
- get: function () { return chunk6HY35TKB_cjs.DEFAULT_EVIDENCE_PACKET_TYPE; }
12
- });
13
- Object.defineProperty(exports, "DEFAULT_EVIDENCE_REDACTION_REASON", {
14
- enumerable: true,
15
- get: function () { return chunk6HY35TKB_cjs.DEFAULT_EVIDENCE_REDACTION_REASON; }
16
- });
17
- Object.defineProperty(exports, "EVIDENCE_PACKET_CHECKSUM_ALGORITHM", {
18
- enumerable: true,
19
- get: function () { return chunk6HY35TKB_cjs.EVIDENCE_PACKET_CHECKSUM_ALGORITHM; }
20
- });
21
- Object.defineProperty(exports, "EVIDENCE_PACKET_SCHEMA_VERSION", {
22
- enumerable: true,
23
- get: function () { return chunk6HY35TKB_cjs.EVIDENCE_PACKET_SCHEMA_VERSION; }
24
- });
25
- Object.defineProperty(exports, "EvidencePacketGenerationError", {
26
- enumerable: true,
27
- get: function () { return chunk6HY35TKB_cjs.EvidencePacketGenerationError; }
28
- });
29
- Object.defineProperty(exports, "canonicalJson", {
30
- enumerable: true,
31
- get: function () { return chunk6HY35TKB_cjs.canonicalJson; }
32
- });
33
- Object.defineProperty(exports, "computeEvidencePacketChecksum", {
34
- enumerable: true,
35
- get: function () { return chunk6HY35TKB_cjs.computeEvidencePacketChecksum; }
36
- });
37
- Object.defineProperty(exports, "createEvidencePacketRenderer", {
38
- enumerable: true,
39
- get: function () { return chunk6HY35TKB_cjs.createEvidencePacketRenderer; }
40
- });
41
- Object.defineProperty(exports, "generateEvidencePacket", {
42
- enumerable: true,
43
- get: function () { return chunk6HY35TKB_cjs.generateEvidencePacket; }
44
- });
45
- Object.defineProperty(exports, "verifyEvidencePacketChecksum", {
46
- enumerable: true,
47
- get: function () { return chunk6HY35TKB_cjs.verifyEvidencePacketChecksum; }
48
- });
49
- //# sourceMappingURL=index.cjs.map
50
- //# sourceMappingURL=index.cjs.map
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_evidence = require("../evidence-Cq48eDvA.cjs");
3
+ exports.DEFAULT_EVIDENCE_PACKET_TYPE = require_evidence.DEFAULT_EVIDENCE_PACKET_TYPE;
4
+ exports.DEFAULT_EVIDENCE_REDACTION_REASON = require_evidence.DEFAULT_EVIDENCE_REDACTION_REASON;
5
+ exports.EVIDENCE_PACKET_CHECKSUM_ALGORITHM = require_evidence.EVIDENCE_PACKET_CHECKSUM_ALGORITHM;
6
+ exports.EVIDENCE_PACKET_SCHEMA_VERSION = require_evidence.EVIDENCE_PACKET_SCHEMA_VERSION;
7
+ exports.EvidencePacketGenerationError = require_evidence.EvidencePacketGenerationError;
8
+ exports.canonicalJson = require_evidence.canonicalJson;
9
+ exports.computeEvidencePacketChecksum = require_evidence.computeEvidencePacketChecksum;
10
+ exports.createEvidencePacketRenderer = require_evidence.createEvidencePacketRenderer;
11
+ exports.generateEvidencePacket = require_evidence.generateEvidencePacket;
12
+ exports.verifyEvidencePacketChecksum = require_evidence.verifyEvidencePacketChecksum;