@degenerate/sharedata 0.2.7 → 0.4.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 (80) hide show
  1. package/README.md +31 -0
  2. package/dist/index.d.ts +16 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +20 -0
  5. package/dist/manager/share-data-manager-events.d.ts +27 -0
  6. package/dist/manager/share-data-manager-events.d.ts.map +1 -0
  7. package/dist/manager/share-data-manager-events.js +2 -0
  8. package/dist/manager/share-data-manager.d.ts +84 -0
  9. package/dist/manager/share-data-manager.d.ts.map +1 -0
  10. package/dist/manager/share-data-manager.js +210 -0
  11. package/dist/persistence/block-factory-registry.d.ts +57 -0
  12. package/dist/persistence/block-factory-registry.d.ts.map +1 -0
  13. package/dist/persistence/block-factory-registry.js +36 -0
  14. package/dist/persistence/deserialize-share-data.d.ts +18 -0
  15. package/dist/persistence/deserialize-share-data.d.ts.map +1 -0
  16. package/dist/persistence/deserialize-share-data.js +149 -0
  17. package/dist/persistence/file-share-data-repository.d.ts +30 -0
  18. package/dist/persistence/file-share-data-repository.d.ts.map +1 -0
  19. package/dist/persistence/file-share-data-repository.js +147 -0
  20. package/dist/persistence/firestore-share-data-repository.d.ts +38 -0
  21. package/dist/persistence/firestore-share-data-repository.d.ts.map +1 -0
  22. package/dist/persistence/firestore-share-data-repository.js +78 -0
  23. package/dist/persistence/in-memory-share-data-repository.d.ts +19 -0
  24. package/dist/persistence/in-memory-share-data-repository.d.ts.map +1 -0
  25. package/dist/persistence/in-memory-share-data-repository.js +48 -0
  26. package/dist/persistence/serialize-share-data.d.ts +22 -0
  27. package/dist/persistence/serialize-share-data.d.ts.map +1 -0
  28. package/dist/persistence/serialize-share-data.js +66 -0
  29. package/dist/persistence/share-data-repository.d.ts +49 -0
  30. package/dist/persistence/share-data-repository.d.ts.map +1 -0
  31. package/dist/persistence/share-data-repository.js +2 -0
  32. package/dist/share-data/creation/create-share-data-initial-crypto.d.ts +11 -0
  33. package/dist/share-data/creation/create-share-data-initial-crypto.d.ts.map +1 -0
  34. package/dist/share-data/creation/create-share-data-initial-crypto.js +26 -0
  35. package/dist/share-data/helpers/calculate-share-data-string.d.ts +21 -0
  36. package/dist/share-data/helpers/calculate-share-data-string.d.ts.map +1 -0
  37. package/dist/share-data/helpers/calculate-share-data-string.js +71 -0
  38. package/dist/share-data/helpers/config/default-share-data-string.config.d.ts +7 -0
  39. package/dist/share-data/helpers/config/default-share-data-string.config.d.ts.map +1 -0
  40. package/dist/share-data/helpers/config/default-share-data-string.config.js +30 -0
  41. package/dist/share-data/helpers/config/stringify.d.ts +5 -0
  42. package/dist/share-data/helpers/config/stringify.d.ts.map +1 -0
  43. package/dist/share-data/helpers/config/stringify.js +10 -0
  44. package/dist/share-data/helpers/get-array-string.d.ts +6 -0
  45. package/dist/share-data/helpers/get-array-string.d.ts.map +1 -0
  46. package/dist/share-data/helpers/get-array-string.js +17 -0
  47. package/dist/share-data/proofs/creation/build-transaction-proposal-signer.d.ts +57 -0
  48. package/dist/share-data/proofs/creation/build-transaction-proposal-signer.d.ts.map +1 -0
  49. package/dist/share-data/proofs/creation/build-transaction-proposal-signer.js +36 -0
  50. package/dist/share-data/proofs/creation/create-share-data-proposal-proof.d.ts +12 -0
  51. package/dist/share-data/proofs/creation/create-share-data-proposal-proof.d.ts.map +1 -0
  52. package/dist/share-data/proofs/creation/create-share-data-proposal-proof.js +41 -0
  53. package/dist/share-data/proofs/creation/create-transaction-proposal-proof.d.ts +27 -0
  54. package/dist/share-data/proofs/creation/create-transaction-proposal-proof.d.ts.map +1 -0
  55. package/dist/share-data/proofs/creation/create-transaction-proposal-proof.js +58 -0
  56. package/dist/share-data/proofs/helpers/create-share-data-string-to-sign.d.ts +12 -0
  57. package/dist/share-data/proofs/helpers/create-share-data-string-to-sign.d.ts.map +1 -0
  58. package/dist/share-data/proofs/helpers/create-share-data-string-to-sign.js +17 -0
  59. package/dist/share-data/proofs/helpers/create-transaction-proposal-string-to-sign.d.ts +24 -0
  60. package/dist/share-data/proofs/helpers/create-transaction-proposal-string-to-sign.d.ts.map +1 -0
  61. package/dist/share-data/proofs/helpers/create-transaction-proposal-string-to-sign.js +29 -0
  62. package/dist/share-data/proofs/helpers/get-previous-hash-from-share-data.d.ts +9 -0
  63. package/dist/share-data/proofs/helpers/get-previous-hash-from-share-data.d.ts.map +1 -0
  64. package/dist/share-data/proofs/helpers/get-previous-hash-from-share-data.js +28 -0
  65. package/dist/share-data/proofs/helpers/hash-proposed-state.d.ts +12 -0
  66. package/dist/share-data/proofs/helpers/hash-proposed-state.d.ts.map +1 -0
  67. package/dist/share-data/proofs/helpers/hash-proposed-state.js +18 -0
  68. package/dist/share-data/proofs/testing/test-proof-signer.d.ts +53 -0
  69. package/dist/share-data/proofs/testing/test-proof-signer.d.ts.map +1 -0
  70. package/dist/share-data/proofs/testing/test-proof-signer.js +113 -0
  71. package/dist/share-data/proofs/verification/verify-share-data-proposal-proof.d.ts +40 -0
  72. package/dist/share-data/proofs/verification/verify-share-data-proposal-proof.d.ts.map +1 -0
  73. package/dist/share-data/proofs/verification/verify-share-data-proposal-proof.js +126 -0
  74. package/dist/share-data/proofs/verification/verify-transaction-proposal-proof.d.ts +37 -0
  75. package/dist/share-data/proofs/verification/verify-transaction-proposal-proof.d.ts.map +1 -0
  76. package/dist/share-data/proofs/verification/verify-transaction-proposal-proof.js +125 -0
  77. package/dist/share-data/share-data.d.ts +232 -27
  78. package/dist/share-data/share-data.d.ts.map +1 -1
  79. package/dist/share-data/share-data.js +390 -60
  80. package/package.json +31 -13
@@ -1,76 +1,281 @@
1
- import { IShareData, IShareDataEvent, IShareFunction, IShareRuleApplied, IShareRuleEvalutionResult, IShareDataTransactionHistory } from '@degenerate/generic';
1
+ import { IShareData, IShareDataEvent, IShareFunction, IShareRuleApplied, IShareRuleEvalutionResult, IShareDataTransactionHistory, IShareDataCryptoProof, EllipticalCurvesSigning, IShareDataInitialCryptoData, IAuthorizedSigner } from '@degenerate/generic';
2
2
  /**
3
3
  * This contains the interface for the share data object
4
4
  */
5
5
  export declare class ShareData {
6
6
  private _id;
7
7
  private _version;
8
+ private _isLocked;
8
9
  private _rules;
9
10
  private _functions;
10
11
  private _transactionHistory;
11
12
  private _events;
12
- private isLocked;
13
- private _data;
13
+ private _currentState;
14
+ private _cryptoProofs;
15
+ private _creationPublicKey;
16
+ private _creationHash;
17
+ private _creationSignature;
18
+ private _signingCurve;
19
+ private _lastUpdated;
20
+ private _structuralProofs;
21
+ private _authorizedSigners;
14
22
  /**
15
23
  * This is the constructor for the share data object
16
24
  * @param id the id of the share data
25
+ * @param creationPublicKey the public key of the creator of the share data
17
26
  */
18
- constructor(id: string);
27
+ constructor(id: string, creationPublicKey: string, signingCurve?: EllipticalCurvesSigning);
19
28
  /**
20
- * This adds a rule to the share block.
21
- * @param rule the rule to add to the share block
29
+ * This initializes the cryptographic properties of the share data
30
+ * @param creationPublicKey the public key of the creator of the share data (in hex format)
31
+ * @param creationHash the hash of the share data
32
+ * @param creationSignature the cryptographic signature of the share data
22
33
  */
23
- addRule(rule: IShareRuleApplied): void;
34
+ initializeCrypto(initialCryptoData: IShareDataInitialCryptoData): void;
24
35
  /**
25
- * This gets the rules for the share block
36
+ * This validates the cryptographic properties of the share data
26
37
  */
27
- get rules(): IShareRuleApplied[];
28
38
  /**
29
- * This gets the transaction history for the share block
39
+ * This validates the cryptographic properties of the share data
40
+ * @param creationPublicKey the public key of the creator of the share data (in hex format)
30
41
  */
31
- addFunction(func: IShareFunction<any, (...args: any[]) => any, any>): void;
32
42
  /**
33
- * This gets the functions for the share block
43
+ * get the creation hash
34
44
  */
35
- get functions(): IShareFunction<any, (...args: any[]) => any, any>[];
45
+ get creationHash(): string;
46
+ /**
47
+ * get the creation public key
48
+ */
49
+ get creationPublicKey(): string;
50
+ /**
51
+ * get the creation signature
52
+ */
53
+ get creationSignature(): string;
54
+ /**
55
+ * This gets all cryptographic proofs for the share data
56
+ */
57
+ get cryptoProofs(): IShareDataCryptoProof[];
58
+ /**
59
+ * This returns the current state of data for the share block
60
+ */
61
+ get currentState(): IShareData;
36
62
  /**
37
63
  * This gets the events for the sharedata
38
64
  */
39
65
  get events(): IShareDataEvent[];
66
+ /**
67
+ * This gets the functions for the share block
68
+ */
69
+ get functions(): IShareFunction<any, (...args: any[]) => any, any>[];
70
+ /**
71
+ * This gets the id for the share data
72
+ */
73
+ get id(): string;
74
+ /**
75
+ * This get whether the share data is locked
76
+ */
77
+ get isLocked(): boolean;
78
+ /**
79
+ * This gets the last timestamp (in milliseconds) that the share data was updated
80
+ */
81
+ get lastUpdated(): number;
82
+ /**
83
+ * This gets the rules for the share block
84
+ */
85
+ get rules(): IShareRuleApplied[];
86
+ /**
87
+ * This gets the elliptical curve used for signing
88
+ */
89
+ get signingCurve(): EllipticalCurvesSigning;
90
+ /**
91
+ * This gets the structure proofs for the share data
92
+ */
93
+ get structuralProofs(): IShareDataCryptoProof[];
94
+ /**
95
+ * This gets the delegated authorized-signer grants for the share data.
96
+ * Each grant is a `{ publicKey, functionIds }` pair: a key the owner has
97
+ * delegated the right to propose transactions for, scoped to those function
98
+ * ids. The block owner (`creationPublicKey`) is always authorized and is
99
+ * NOT listed here.
100
+ */
101
+ get authorizedSigners(): IAuthorizedSigner[];
102
+ /**
103
+ * This gets the transaction history for the share block
104
+ */
105
+ get transactionHistory(): IShareDataTransactionHistory[];
106
+ /**
107
+ * This gets the version of the share data
108
+ */
109
+ get version(): number;
40
110
  /**
41
111
  * This adds an event to the share data
42
112
  * @param event the event to add
43
113
  */
44
114
  addEvent(event: IShareDataEvent): void;
45
115
  /**
46
- * This adds a transaction to the share block
47
- * @param rulesEvaluation the evaluation of the rules (result)
48
- * @param transactionFunction the function that was run
116
+ * This adds a function to the share block.
117
+ * @param func the function to add to the share block
118
+ */
119
+ addFunction(func: IShareFunction<any, (...args: any[]) => any, any>, cryptoProof: IShareDataCryptoProof): void;
120
+ /**
121
+ * This adds a rule to the share block.
122
+ * @param rule the rule to add to the share block
123
+ */
124
+ addRule(rule: IShareRuleApplied, cryptoProof: IShareDataCryptoProof): void;
125
+ /**
126
+ * Delegates `signerPublicKey` the right to propose runtime transactions for
127
+ * the given `functionIds` (and ONLY those — least privilege). Creation-time
128
+ * only: rejected once the block is locked. The registration is part of the
129
+ * signed structure, so a delegate cannot be injected into a tampered
130
+ * snapshot without invalidating the chain.
131
+ *
132
+ * Three gates, in order:
133
+ * 1. Owner-identity: `registrationProof.publicKey === creationPublicKey`.
134
+ * ONLY the block owner may delegate — this is the check `addFunction` /
135
+ * `addRule` deliberately omit (the HTTP layer supplies it there). It
136
+ * must live here because the security of the widened transaction gate
137
+ * (see {@link isAuthorizedSigner}) rests on "the allow-list was
138
+ * authorized by the owner." It also blocks transitive delegation: a
139
+ * delegate's key is never the creation key, so a delegate can never
140
+ * register further delegates.
141
+ * 2. Grant binding: the proof's `purpose` must equal
142
+ * `buildDelegatePurpose(signerPublicKey, functionIds)`. The proof signs
143
+ * over the PRE-append state (the grant is not yet folded into
144
+ * `_authorizedSigners`), so the purpose is the only thing that attests
145
+ * to the exact `(key, functionIds)` grant — without this a tampered
146
+ * snapshot could widen a delegate's scope without breaking the
147
+ * signature.
148
+ * 3. Structural verification against the current (pre-append) state,
149
+ * reusing the same machinery `addFunction` / `addRule` use; folds the
150
+ * proof into the hash chain and verifies the owner's signature.
151
+ *
152
+ * Throws {@link ShareDataIsLockedError} if locked,
153
+ * {@link ShareDataDelegationNotAuthorizedError} for a non-owner registrant /
154
+ * empty grant / mismatched purpose, and
155
+ * {@link ShareDataStructuralProofFailedError} if the proof does not verify.
156
+ */
157
+ addAuthorizedSigner(signerPublicKey: string, functionIds: string[], registrationProof: IShareDataCryptoProof): void;
158
+ /**
159
+ * Whether `publicKey` is authorized to propose a transaction for
160
+ * `functionId` on this block. The block owner (`creationPublicKey`) is
161
+ * always authorized for every function; a delegated key is authorized only
162
+ * for the function ids its registration granted. This is the single
163
+ * predicate behind the proposer-identity gate, called from both the live
164
+ * mutation path ({@link addTransaction}) and the persistence replay path so
165
+ * the two cannot drift.
49
166
  */
50
- addTransactionAlreadyValidated(proposedData: IShareData, rulesEvaluation: IShareRuleEvalutionResult, transactionFunction: IShareFunction<any, (...args: any[]) => any, any>): void;
167
+ isAuthorizedSigner(publicKey: string, functionId: string): boolean;
168
+ /**
169
+ * Append a pre-validated transaction to the history. Pass `transactionTime`
170
+ * when the caller needs the recorded timestamp to be deterministic — for
171
+ * example, when a wire-format payload is being reconstructed and the
172
+ * resulting share-data state must hash identically to the one the
173
+ * remote signer produced. Omit it for ordinary live calls; defaults to
174
+ * `Date.now()`.
175
+ *
176
+ * Pass `proof` when replaying a persisted transaction so the rebuilt
177
+ * history entry carries the same proposal proof the live entry did. The
178
+ * canonical share-data hash folds `transactionHistory` in, so omitting the
179
+ * proof here would make a replayed block hash differently from the original
180
+ * and break verification of any later transaction's proof.
181
+ */
182
+ addTransactionAlreadyValidated(proposedData: IShareData, rulesEvaluation: IShareRuleEvalutionResult, transactionFunction: IShareFunction<any, (...args: any[]) => any, any>, transactionTime?: number, proof?: IShareDataCryptoProof): void;
51
183
  /**
52
184
  * This adds a transaction to the share block but the transaction has not yet been validated
53
185
  *
186
+ * The unsigned/internal apply path: it runs the rule engine and records the
187
+ * outcome but carries no proposal proof, so it does NOT attest that any key
188
+ * holder authorized the change. New runtime mutations should go through
189
+ * {@link addTransaction}, which verifies a transaction proposal proof first.
190
+ * Retained for internal replay/seed callers that operate before the signed
191
+ * boundary is in play.
192
+ *
54
193
  * @param proposedData the proposed data
55
194
  * @param transactionFunction the function that was attempted
56
195
  */
57
- addTransactionNotValidated(proposedData: IShareData, transactionFunction: IShareFunction<any, (...args: any[]) => any, any>): void;
196
+ addTransactionNotValidated(proposedData: IShareData, transactionFunction: IShareFunction<any, (...args: any[]) => any, any>): {
197
+ accepted: boolean;
198
+ transactionId: string;
199
+ };
58
200
  /**
59
- * This gets the transaction history for the share block
60
- */
61
- get transactionHistory(): IShareDataTransactionHistory[];
62
- /**
63
- * This returns the current state of data for the share block
201
+ * Signed runtime mutation path. Verifies that `proof` cryptographically
202
+ * authorizes applying `transactionFunction` to move this share-data to
203
+ * exactly `proposedData`, then runs the rule engine and records the
204
+ * outcome. The recorded history entry carries `proof`, so the audit log
205
+ * itself holds the signature — not merely "which function ran."
206
+ *
207
+ * Four gates, in order:
208
+ * 1. The function must be registered on this block.
209
+ * 2. The function must be addressable (`id` set) and the proof must be
210
+ * minted for that same id (`proof.purpose === transactionFunction.id`).
211
+ * This binds the proof to *this* function so a proof minted for one
212
+ * function can't be replayed to drive another even if the proposed
213
+ * state would satisfy both functions' rules.
214
+ * 3. The proof's signer must be authorized for this block AND this
215
+ * function — the creation key for any function, or a delegated key for
216
+ * the function ids its registration granted (`isAuthorizedSigner`).
217
+ * Signature validity alone only proves *someone* signed the transition;
218
+ * this binds the *authorized* someone. Without it any valid keypair
219
+ * could sign a legal transition.
220
+ * 4. The proof must verify against the current state AND `proposedData`
221
+ * (closes the amount-replay hole — see
222
+ * `verifyTransactionProposalProof`).
223
+ *
224
+ * Throws {@link ShareDataTransactionNotAuthorizedError} when the signer is
225
+ * not authorized (gate 3), {@link ShareDataTransactionProofFailedError} on
226
+ * any other auth failure — both before the rule engine runs and before any
227
+ * state is touched.
228
+ *
229
+ * @param proposedData the proposed next state
230
+ * @param transactionFunction the function producing `proposedData`
231
+ * @param proof the transaction proposal proof authorizing the change
64
232
  */
65
- get data(): IShareData;
233
+ addTransaction(proposedData: IShareData, transactionFunction: IShareFunction<any, (...args: any[]) => any, any>, proof: IShareDataCryptoProof): {
234
+ accepted: boolean;
235
+ transactionId: string;
236
+ };
66
237
  /**
67
- * This gets the version of the share data
238
+ * Shared rule-evaluate → apply-if-valid → record path used by both
239
+ * {@link addTransactionNotValidated} (no proof) and {@link addTransaction}
240
+ * (proof already verified by the caller). When `proof` is supplied it is
241
+ * recorded on the history entry so the audit log carries the signature.
68
242
  */
69
- get version(): number;
243
+ private evaluateAndApply;
70
244
  /**
71
245
  * This copies a share data object to a new transaction number
72
246
  * @param transactionNumber the number of the transaction to run until.
247
+ * @param publicKey the public key of the application that will be the new owner of the share data
248
+ */
249
+ copyTo(transactionNumber: number, publicKey: string): ShareData;
250
+ /**
251
+ * This adds a cryptographic proof to the share data
252
+ * @param proof the cryptographic proof to add
253
+ */
254
+ addCryptoProof(proof: IShareDataCryptoProof): void;
255
+ /**
256
+ * Verifies that `proof` is a faithful attestation of this share-data's
257
+ * current structural state under `proof.purpose`. Returns `true` on
258
+ * success; throws `ShareDataStructuralProofFailedError` on any mismatch
259
+ * (hash, previousHash, signature, or purpose).
260
+ */
261
+ verifyStructuralProof(proof: IShareDataCryptoProof, curve?: EllipticalCurvesSigning): true;
262
+ /**
263
+ * Verifies that `proof` authorizes applying a transaction that moves this
264
+ * share-data to exactly `proposedData`. Unlike {@link verifyStructuralProof}
265
+ * (which binds only the current state under a purpose), this additionally
266
+ * binds the proposed state — a proof minted for one proposed state will not
267
+ * verify against any other. Returns `true`; throws
268
+ * `ShareDataTransactionProofFailedError` on any mismatch.
269
+ */
270
+ verifyTransactionProof(proof: IShareDataCryptoProof, proposedData: IShareData, curve?: EllipticalCurvesSigning): true;
271
+ /**
272
+ * This adds a structure proof to the share data
273
+ * @param proof the structure proof to add
274
+ */
275
+ addStructuralProof(proof: IShareDataCryptoProof): void;
276
+ /**
277
+ * This initializes the share data object and locks it
73
278
  */
74
- copyTo(transactionNumber: number): ShareData;
279
+ initialize(): void;
75
280
  }
76
281
  //# sourceMappingURL=share-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"share-data.d.ts","sourceRoot":"","sources":["../../src/share-data/share-data.ts"],"names":[],"mappings":"AACA,OAAO,EACH,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,4BAA4B,EAG/B,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,UAAU,CAAsD;IACxE,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,KAAK,CAAa;IAE1B;;;OAGG;gBACS,EAAE,EAAE,MAAM;IAatB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAOtC;;OAEG;IACH,IAAI,KAAK,IAAI,iBAAiB,EAAE,CAE/B;IAED;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IAO1E;;OAEG;IACH,IAAI,SAAS,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,CAEnE;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,eAAe,EAAE,CAE9B;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAItC;;;;OAIG;IACH,8BAA8B,CAC1B,YAAY,EAAE,UAAU,EACxB,eAAe,EAAE,yBAAyB,EAC1C,mBAAmB,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,GACvE,IAAI;IAwBP;;;;;OAKG;IACH,0BAA0B,CACtB,YAAY,EAAE,UAAU,EACxB,mBAAmB,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,GACvE,IAAI;IA0BP;;OAEG;IACH,IAAI,kBAAkB,IAAI,4BAA4B,EAAE,CAEvD;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,UAAU,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS;CAa/C"}
1
+ {"version":3,"file":"share-data.d.ts","sourceRoot":"","sources":["../../src/share-data/share-data.ts"],"names":[],"mappings":"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"}