@degenerate/generic 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.
- package/dist/_settings/database-settings.d.ts +3 -0
- package/dist/_settings/database-settings.d.ts.map +1 -1
- package/dist/_settings/database-settings.js +3 -0
- package/dist/application/audit-log/additional-ids/create-audit-log-additional-ids-with-query.d.ts.map +1 -1
- package/dist/application/audit-log/additional-ids/create-multiple-path-alai.d.ts.map +1 -1
- package/dist/application/audit-log/additional-ids/create-query-audit-log-for-alai.d.ts.map +1 -1
- package/dist/application/audit-log/create-application-audit-log.d.ts.map +1 -1
- package/dist/application/audit-log/create-application-audit-log.js +1 -1
- package/dist/application/database/firestore/generics/add-items-to-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/add-items-to-database.js +2 -2
- package/dist/application/database/firestore/generics/add-or-update-items-to-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/add-or-update-items-to-database.js +3 -3
- package/dist/application/database/firestore/generics/create-database-change-information.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/delete-items-on-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/delete-items-on-database.js +2 -2
- package/dist/application/database/firestore/generics/get-item-from-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/get-item-from-database.js +2 -2
- package/dist/application/database/firestore/generics/get-items-different-path-on-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/get-items-different-path-on-database.js +2 -2
- package/dist/application/database/firestore/generics/get-items-from-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/get-items-from-database.js +1 -1
- package/dist/application/database/firestore/generics/update-items-on-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/update-items-on-database.js +2 -2
- package/dist/application/database/firestore/generics/update-items-properties-on-database.d.ts.map +1 -1
- package/dist/application/database/firestore/generics/update-items-properties-on-database.js +2 -2
- package/dist/authorization/index.d.ts +1 -0
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +1 -0
- package/dist/authorization/jwt/keys/create-public-key-pem.d.ts.map +1 -1
- package/dist/authorization/jwt/keys/create-secret-key-pem.d.ts.map +1 -1
- package/dist/authorization/jwt/sign/create-authorization-issuer.d.ts.map +1 -1
- package/dist/authorization/jwt/sign/create-authorization-subject.d.ts.map +1 -1
- package/dist/authorization/jwt/sign/create-jwt-options.d.ts +7 -1
- package/dist/authorization/jwt/sign/create-jwt-options.d.ts.map +1 -1
- package/dist/authorization/jwt/sign/create-jwt-signed-token.d.ts.map +1 -1
- package/dist/authorization/jwt/transform/transform-token-payload-to-safe-payload.d.ts.map +1 -1
- package/dist/authorization/jwt/verify/get-decoded-jwt-header.d.ts.map +1 -1
- package/dist/authorization/jwt/verify/get-decoded-jwt-signed-token-payload.d.ts.map +1 -1
- package/dist/authorization/jwt/verify/verify-jwt-signed-token.d.ts.map +1 -1
- package/dist/authorization/safe/request/decode-bearer-token.d.ts.map +1 -1
- package/dist/authorization/safe/request/decode-safe-request.d.ts.map +1 -1
- package/dist/authorization/safe/request/determine-issuer-from-request.d.ts.map +1 -1
- package/dist/authorization/safe/request/issuer/determine-issuer-from-bearer-token.d.ts.map +1 -1
- package/dist/authorization/safe/request/verify-jwt-bearer-token-for-audience.d.ts +31 -0
- package/dist/authorization/safe/request/verify-jwt-bearer-token-for-audience.d.ts.map +1 -0
- package/dist/authorization/safe/request/verify-jwt-bearer-token-for-audience.js +50 -0
- package/dist/authorization/safe/validation/jwt/payload/verify-authorization-audience.d.ts.map +1 -1
- package/dist/authorization/safe/validation/jwt/payload/verify-authorization-expiration-time.d.ts.map +1 -1
- package/dist/authorization/safe/validation/jwt/payload/verify-authorization-issued-at-time.d.ts.map +1 -1
- package/dist/authorization/safe/validation/jwt/payload/verify-authorization-issuer.d.ts.map +1 -1
- package/dist/authorization/safe/validation/jwt/payload/verify-authorization-not-before-time.d.ts.map +1 -1
- package/dist/authorization/safe/validation/jwt/payload/verify-authorization-subject.d.ts.map +1 -1
- package/dist/authorization/safe/validation/jwt/verify-token-header.d.ts.map +1 -1
- package/dist/authorization/safe/validation/jwt/verify-token-payload.d.ts.map +1 -1
- package/dist/crypto/calculate-combined-hash.d.ts.map +1 -1
- package/dist/crypto/calculate-hash.d.ts +1 -1
- package/dist/crypto/calculate-hash.d.ts.map +1 -1
- package/dist/crypto/calculate-hash.js +1 -1
- package/dist/crypto/index.d.ts +1 -0
- package/dist/crypto/index.d.ts.map +1 -1
- package/dist/crypto/index.js +1 -0
- package/dist/crypto/private-public-keys/create-key-pair-from-mnemonic.d.ts.map +1 -1
- package/dist/crypto/private-public-keys/create-key-pair-from-private-key.d.ts.map +1 -1
- package/dist/crypto/private-public-keys/create-key-pair-from-private-key.js +1 -1
- package/dist/crypto/private-public-keys/create-key-pair-from-public-key.d.ts +11 -0
- package/dist/crypto/private-public-keys/create-key-pair-from-public-key.d.ts.map +1 -0
- package/dist/crypto/private-public-keys/create-key-pair-from-public-key.js +51 -0
- package/dist/crypto/private-public-keys/generation/create-entropy-for-elliptical-curve.d.ts.map +1 -1
- package/dist/crypto/private-public-keys/generation/generate-key-pair.d.ts.map +1 -1
- package/dist/crypto/private-public-keys/generation/get-private-public-key-from-keypair.d.ts.map +1 -1
- package/dist/crypto/signature/create-crypto-signature.d.ts +11 -0
- package/dist/crypto/signature/create-crypto-signature.d.ts.map +1 -1
- package/dist/crypto/signature/create-crypto-signature.js +14 -1
- package/dist/crypto/signature/verify-crypto-signature-by-data.d.ts +4 -0
- package/dist/crypto/signature/verify-crypto-signature-by-data.d.ts.map +1 -1
- package/dist/crypto/signature/verify-crypto-signature-by-data.js +8 -2
- package/dist/crypto/signature/verify-crypto-signature-by-hash.d.ts +4 -0
- package/dist/crypto/signature/verify-crypto-signature-by-hash.d.ts.map +1 -1
- package/dist/crypto/signature/verify-crypto-signature-by-hash.js +7 -1
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -0
- package/dist/errors/share-data/share-data-errors.d.ts +105 -1
- package/dist/errors/share-data/share-data-errors.d.ts.map +1 -1
- package/dist/errors/share-data/share-data-errors.js +148 -1
- package/dist/errors/shareblock/shareblock-errors.d.ts +40 -0
- package/dist/errors/shareblock/shareblock-errors.d.ts.map +1 -0
- package/dist/errors/shareblock/shareblock-errors.js +50 -0
- package/dist/errors/validation/crypto-validation-errors.d.ts +8 -0
- package/dist/errors/validation/crypto-validation-errors.d.ts.map +1 -0
- package/dist/errors/validation/crypto-validation-errors.js +15 -0
- package/dist/helpers/array/array-helpers.d.ts.map +1 -1
- package/dist/helpers/crypto/cryptography-helpers.d.ts.map +1 -1
- package/dist/helpers/data/data-helpers.d.ts.map +1 -1
- package/dist/helpers/file/file-helpers.d.ts.map +1 -1
- package/dist/helpers/id-helpers.d.ts.map +1 -1
- package/dist/helpers/lodash/lodash-helpers.d.ts.map +1 -1
- package/dist/helpers/object-helpers.d.ts.map +1 -1
- package/dist/helpers/object-validation-helpers.d.ts.map +1 -1
- package/dist/helpers/request/params-object-helpers.d.ts +6 -13
- package/dist/helpers/request/params-object-helpers.d.ts.map +1 -1
- package/dist/helpers/request/params-object-helpers.js +11 -21
- package/dist/helpers/request/query-object-helpers.d.ts.map +1 -1
- package/dist/helpers/request/request-object-helpers.d.ts.map +1 -1
- package/dist/models/application/audit-log/application-audit-log-models.d.ts +82 -92
- package/dist/models/application/audit-log/application-audit-log-models.d.ts.map +1 -1
- package/dist/models/application/database/firestore-models.d.ts +158 -307
- package/dist/models/application/database/firestore-models.d.ts.map +1 -1
- package/dist/models/authorization/authorization-models.d.ts +34 -44
- package/dist/models/authorization/authorization-models.d.ts.map +1 -1
- package/dist/models/authorization/authorization-models.js +2 -2
- package/dist/models/crypto/crypto-models.d.ts +1 -7
- package/dist/models/crypto/crypto-models.d.ts.map +1 -1
- package/dist/models/data/data-models.d.ts +27 -13
- package/dist/models/data/data-models.d.ts.map +1 -1
- package/dist/models/data/data-models.js +23 -2
- package/dist/models/dynamic-execution/dynamic-execution-models.d.ts +1 -9
- package/dist/models/dynamic-execution/dynamic-execution-models.d.ts.map +1 -1
- package/dist/models/events/share-event-models.d.ts +91 -120
- package/dist/models/events/share-event-models.d.ts.map +1 -1
- package/dist/models/events/share-event-models.js +35 -4
- package/dist/models/functions/share-data-function-models.d.ts +23 -193
- package/dist/models/functions/share-data-function-models.d.ts.map +1 -1
- package/dist/models/functions/share-data-function-models.js +1 -1
- package/dist/models/generic/request-response-models.d.ts +1 -7
- package/dist/models/generic/request-response-models.d.ts.map +1 -1
- package/dist/models/index.d.ts +4 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +4 -1
- package/dist/models/rules/share-rule-models.d.ts +759 -1116
- package/dist/models/rules/share-rule-models.d.ts.map +1 -1
- package/dist/models/rules/share-rule-models.js +6 -6
- package/dist/models/safe/safe-transaction-models.d.ts +28 -30
- package/dist/models/safe/safe-transaction-models.d.ts.map +1 -1
- package/dist/models/safe/transactions/authorities-transactions-models.d.ts +77 -419
- package/dist/models/safe/transactions/authorities-transactions-models.d.ts.map +1 -1
- package/dist/models/safe/transactions/authorities-transactions-models.js +3 -3
- package/dist/models/safe/transactions/events-transactions-models.d.ts +22 -372
- package/dist/models/safe/transactions/events-transactions-models.d.ts.map +1 -1
- package/dist/models/safe/transactions/events-transactions-models.js +1 -1
- package/dist/models/safe/transactions/functions-transactions-models.d.ts +22 -372
- package/dist/models/safe/transactions/functions-transactions-models.d.ts.map +1 -1
- package/dist/models/safe/transactions/functions-transactions-models.js +1 -1
- package/dist/models/safe/transactions/rules-transactions-models.d.ts +59 -603
- package/dist/models/safe/transactions/rules-transactions-models.d.ts.map +1 -1
- package/dist/models/safe/transactions/sharedata-transactions-models.d.ts +256 -388
- package/dist/models/safe/transactions/sharedata-transactions-models.d.ts.map +1 -1
- package/dist/models/safe/transactions/sharedata-transactions-models.js +30 -4
- package/dist/models/share-data/share-data-crypto-models.d.ts +344 -0
- package/dist/models/share-data/share-data-crypto-models.d.ts.map +1 -0
- package/dist/models/share-data/share-data-crypto-models.js +131 -0
- package/dist/models/share-data/share-data-models.d.ts +114 -0
- package/dist/models/share-data/share-data-models.d.ts.map +1 -0
- package/dist/models/share-data/{share-data.js → share-data-models.js} +1 -1
- package/dist/models/share-data/share-data-persistence-models.d.ts +165 -0
- package/dist/models/share-data/share-data-persistence-models.d.ts.map +1 -0
- package/dist/models/share-data/share-data-persistence-models.js +101 -0
- package/dist/models/shareblock/shareblock-models.d.ts +489 -0
- package/dist/models/shareblock/shareblock-models.d.ts.map +1 -0
- package/dist/models/shareblock/shareblock-models.js +395 -0
- package/dist/transactions/authority/create-safe-transaction-authority-data.d.ts.map +1 -1
- package/dist/transactions/authority/create-safe-transaction-authority.d.ts.map +1 -1
- package/package.json +30 -22
- package/dist/models/share-data/share-data.d.ts +0 -181
- package/dist/models/share-data/share-data.d.ts.map +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { EllipticalCurvesSigning } from '../../_settings/cryptography-settings';
|
|
3
|
+
import { ShareBlockType } from '../shareblock/shareblock-models';
|
|
4
|
+
/**
|
|
5
|
+
* The signing curve a persisted block was created with. Mirrors the values of
|
|
6
|
+
* {@link EllipticalCurvesSigning}; stored for forward-compatibility even
|
|
7
|
+
* though every shipped factory currently uses the `Curve25519` default.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PersistedSigningCurveSchema: z.ZodEnum<{
|
|
10
|
+
ed25519: EllipticalCurvesSigning.Curve25519;
|
|
11
|
+
p521: EllipticalCurvesSigning.P521;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* The factory creation input needed to replay construction, minus the
|
|
15
|
+
* `proofFor` callback (which is reconstructed from the stored
|
|
16
|
+
* `structuralProofs` + `initialCrypto` at load time). `initialState` is the
|
|
17
|
+
* *partial* state the factory was given — the factory deterministically
|
|
18
|
+
* assembles the full state from it, so storing the partial form is both
|
|
19
|
+
* sufficient and forward-stable.
|
|
20
|
+
*/
|
|
21
|
+
export declare const PersistedCreationConfigSchema: z.ZodObject<{
|
|
22
|
+
metadata: z.ZodObject<{
|
|
23
|
+
shareBlockId: z.ZodString;
|
|
24
|
+
blockType: z.ZodEnum<{
|
|
25
|
+
Clearing: "Clearing";
|
|
26
|
+
Funding: "Funding";
|
|
27
|
+
Distribution: "Distribution";
|
|
28
|
+
GraceRepayment: "GraceRepayment";
|
|
29
|
+
}>;
|
|
30
|
+
relatedLoanApplicationId: z.ZodOptional<z.ZodString>;
|
|
31
|
+
description: z.ZodOptional<z.ZodString>;
|
|
32
|
+
createdAt: z.ZodNumber;
|
|
33
|
+
createdBy: z.ZodString;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
creationPublicKey: z.ZodString;
|
|
36
|
+
initialState: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
export type PersistedCreationConfig = z.infer<typeof PersistedCreationConfigSchema>;
|
|
39
|
+
/**
|
|
40
|
+
* The two facts a {@link ShareDataManager} must retain about a block to keep
|
|
41
|
+
* persisting it after creation: which factory built it and the creation input
|
|
42
|
+
* that factory was given. A live block retains neither — `serializeShareData`
|
|
43
|
+
* needs both supplied — so the manager captures them at `addShareData` time and
|
|
44
|
+
* carries them alongside the accumulating transaction log for every subsequent
|
|
45
|
+
* write-through. Supplied by the caller that created the block (e.g. the HTTP
|
|
46
|
+
* create route).
|
|
47
|
+
*/
|
|
48
|
+
export interface ShareDataCreationRecord {
|
|
49
|
+
blockType: ShareBlockType;
|
|
50
|
+
creationConfig: PersistedCreationConfig;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* One post-creation transaction, captured at apply time. The live
|
|
54
|
+
* `transactionHistory` does NOT retain a transaction's input or proposed
|
|
55
|
+
* state, so these must be recorded when the transaction is applied rather
|
|
56
|
+
* than recovered from a finished block.
|
|
57
|
+
*
|
|
58
|
+
* - `functionId` re-resolves the live function on the rebuilt block (same
|
|
59
|
+
* id-based lookup `createIdBasedFunctionResolver` uses).
|
|
60
|
+
* - `proposedState` is the state written when the transaction was accepted;
|
|
61
|
+
* it is what replay re-applies.
|
|
62
|
+
* - `proof` is the transaction proposal proof that authorized the change. It
|
|
63
|
+
* is re-verified against the rebuilt block + `proposedState` during replay,
|
|
64
|
+
* so a snapshot whose proposed state or proof was edited fails the load.
|
|
65
|
+
* Recording it also keeps the rebuilt block byte-faithful: the live history
|
|
66
|
+
* entry carries its proof, and the canonical share-data hash folds the
|
|
67
|
+
* history in, so replay must reproduce the proof to hash identically.
|
|
68
|
+
* - `transactionTime` is stored so the replayed history hashes identically.
|
|
69
|
+
* - `ruleOutcome` records whether the original proposal was accepted.
|
|
70
|
+
*/
|
|
71
|
+
export declare const PersistedTransactionSchema: z.ZodObject<{
|
|
72
|
+
functionId: z.ZodString;
|
|
73
|
+
input: z.ZodOptional<z.ZodAny>;
|
|
74
|
+
proposedState: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
75
|
+
proof: z.ZodObject<{
|
|
76
|
+
publicKey: z.ZodString;
|
|
77
|
+
shareDataHash: z.ZodString;
|
|
78
|
+
shareDataPreviousHash: z.ZodString;
|
|
79
|
+
shareDataSignature: z.ZodString;
|
|
80
|
+
timestamp: z.ZodNumber;
|
|
81
|
+
purpose: z.ZodString;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
transactionTime: z.ZodNumber;
|
|
84
|
+
ruleOutcome: z.ZodBoolean;
|
|
85
|
+
}, z.core.$strip>;
|
|
86
|
+
export type PersistedTransaction = z.infer<typeof PersistedTransactionSchema>;
|
|
87
|
+
/**
|
|
88
|
+
* A durable snapshot of a ShareData. Versioned via `schemaVersion` so a future
|
|
89
|
+
* format change can be gated cleanly. The `expected*` fields are NOT trusted
|
|
90
|
+
* on load — they are cross-checked against the independently replayed block so
|
|
91
|
+
* a snapshot whose state was edited without re-signing fails loudly.
|
|
92
|
+
*/
|
|
93
|
+
export declare const PersistedShareDataSchema: z.ZodObject<{
|
|
94
|
+
schemaVersion: z.ZodLiteral<3>;
|
|
95
|
+
id: z.ZodString;
|
|
96
|
+
blockType: z.ZodEnum<{
|
|
97
|
+
Clearing: "Clearing";
|
|
98
|
+
Funding: "Funding";
|
|
99
|
+
Distribution: "Distribution";
|
|
100
|
+
GraceRepayment: "GraceRepayment";
|
|
101
|
+
}>;
|
|
102
|
+
signingCurve: z.ZodEnum<{
|
|
103
|
+
ed25519: EllipticalCurvesSigning.Curve25519;
|
|
104
|
+
p521: EllipticalCurvesSigning.P521;
|
|
105
|
+
}>;
|
|
106
|
+
initialCrypto: z.ZodObject<{
|
|
107
|
+
publicKey: z.ZodString;
|
|
108
|
+
shareDataHash: z.ZodString;
|
|
109
|
+
shareDataSignature: z.ZodString;
|
|
110
|
+
timestamp: z.ZodNumber;
|
|
111
|
+
}, z.core.$strip>;
|
|
112
|
+
creationConfig: z.ZodObject<{
|
|
113
|
+
metadata: z.ZodObject<{
|
|
114
|
+
shareBlockId: z.ZodString;
|
|
115
|
+
blockType: z.ZodEnum<{
|
|
116
|
+
Clearing: "Clearing";
|
|
117
|
+
Funding: "Funding";
|
|
118
|
+
Distribution: "Distribution";
|
|
119
|
+
GraceRepayment: "GraceRepayment";
|
|
120
|
+
}>;
|
|
121
|
+
relatedLoanApplicationId: z.ZodOptional<z.ZodString>;
|
|
122
|
+
description: z.ZodOptional<z.ZodString>;
|
|
123
|
+
createdAt: z.ZodNumber;
|
|
124
|
+
createdBy: z.ZodString;
|
|
125
|
+
}, z.core.$strip>;
|
|
126
|
+
creationPublicKey: z.ZodString;
|
|
127
|
+
initialState: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
128
|
+
}, z.core.$strip>;
|
|
129
|
+
structuralProofs: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
130
|
+
publicKey: z.ZodString;
|
|
131
|
+
shareDataHash: z.ZodString;
|
|
132
|
+
shareDataPreviousHash: z.ZodString;
|
|
133
|
+
shareDataSignature: z.ZodString;
|
|
134
|
+
timestamp: z.ZodNumber;
|
|
135
|
+
purpose: z.ZodString;
|
|
136
|
+
}, z.core.$strip>>;
|
|
137
|
+
authorizedSigners: z.ZodArray<z.ZodObject<{
|
|
138
|
+
publicKey: z.ZodString;
|
|
139
|
+
functionIds: z.ZodArray<z.ZodString>;
|
|
140
|
+
}, z.core.$strip>>;
|
|
141
|
+
transactionLog: z.ZodArray<z.ZodObject<{
|
|
142
|
+
functionId: z.ZodString;
|
|
143
|
+
input: z.ZodOptional<z.ZodAny>;
|
|
144
|
+
proposedState: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
145
|
+
proof: z.ZodObject<{
|
|
146
|
+
publicKey: z.ZodString;
|
|
147
|
+
shareDataHash: z.ZodString;
|
|
148
|
+
shareDataPreviousHash: z.ZodString;
|
|
149
|
+
shareDataSignature: z.ZodString;
|
|
150
|
+
timestamp: z.ZodNumber;
|
|
151
|
+
purpose: z.ZodString;
|
|
152
|
+
}, z.core.$strip>;
|
|
153
|
+
transactionTime: z.ZodNumber;
|
|
154
|
+
ruleOutcome: z.ZodBoolean;
|
|
155
|
+
}, z.core.$strip>>;
|
|
156
|
+
expectedCurrentState: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
157
|
+
expectedCreationHash: z.ZodString;
|
|
158
|
+
expectedCreationSignature: z.ZodString;
|
|
159
|
+
expectedIsLocked: z.ZodBoolean;
|
|
160
|
+
expectedVersion: z.ZodNumber;
|
|
161
|
+
}, z.core.$strip>;
|
|
162
|
+
export type PersistedShareData = z.infer<typeof PersistedShareDataSchema>;
|
|
163
|
+
/** The only schema version this build understands. */
|
|
164
|
+
export declare const PERSISTED_SHARE_DATA_SCHEMA_VERSION: 3;
|
|
165
|
+
//# sourceMappingURL=share-data-persistence-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-data-persistence-models.d.ts","sourceRoot":"","sources":["../../../src/models/share-data/share-data-persistence-models.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAEH,cAAc,EAEjB,MAAM,iCAAiC,CAAC;AAmBzC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;iBAIxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,cAAc,CAAC;IAC1B,cAAc,EAAE,uBAAuB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;iBAOrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,sDAAsD;AACtD,eAAO,MAAM,mCAAmC,EAAG,CAAU,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PERSISTED_SHARE_DATA_SCHEMA_VERSION = exports.PersistedShareDataSchema = exports.PersistedTransactionSchema = exports.PersistedCreationConfigSchema = exports.PersistedSigningCurveSchema = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const cryptography_settings_1 = require("../../_settings/cryptography-settings");
|
|
9
|
+
const shareblock_models_1 = require("../shareblock/shareblock-models");
|
|
10
|
+
const share_data_crypto_models_1 = require("./share-data-crypto-models");
|
|
11
|
+
const share_data_models_1 = require("./share-data-models");
|
|
12
|
+
// This file contains the wire-format models for persisting a ShareData to a
|
|
13
|
+
// durable store and reconstructing it. The design is event-sourced: a
|
|
14
|
+
// snapshot stores the *creation recipe* + an ordered transaction log, not a
|
|
15
|
+
// field-dump of a finished object. Reload replays construction (re-verifying
|
|
16
|
+
// the structural-proof chain) and the transaction log, then cross-checks the
|
|
17
|
+
// result against the stored `expected*` integrity values. See
|
|
18
|
+
// `plans/PERSISTENCE_PLAN.html`.
|
|
19
|
+
//#region Persistence Schemas
|
|
20
|
+
/**
|
|
21
|
+
* The signing curve a persisted block was created with. Mirrors the values of
|
|
22
|
+
* {@link EllipticalCurvesSigning}; stored for forward-compatibility even
|
|
23
|
+
* though every shipped factory currently uses the `Curve25519` default.
|
|
24
|
+
*/
|
|
25
|
+
exports.PersistedSigningCurveSchema = zod_1.default.enum([
|
|
26
|
+
cryptography_settings_1.EllipticalCurvesSigning.Curve25519,
|
|
27
|
+
cryptography_settings_1.EllipticalCurvesSigning.P521,
|
|
28
|
+
]);
|
|
29
|
+
/**
|
|
30
|
+
* The factory creation input needed to replay construction, minus the
|
|
31
|
+
* `proofFor` callback (which is reconstructed from the stored
|
|
32
|
+
* `structuralProofs` + `initialCrypto` at load time). `initialState` is the
|
|
33
|
+
* *partial* state the factory was given — the factory deterministically
|
|
34
|
+
* assembles the full state from it, so storing the partial form is both
|
|
35
|
+
* sufficient and forward-stable.
|
|
36
|
+
*/
|
|
37
|
+
exports.PersistedCreationConfigSchema = zod_1.default.object({
|
|
38
|
+
metadata: shareblock_models_1.IShareBlockMetadataSchema,
|
|
39
|
+
creationPublicKey: zod_1.default.string(),
|
|
40
|
+
initialState: zod_1.default.record(zod_1.default.string(), zod_1.default.any()),
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* One post-creation transaction, captured at apply time. The live
|
|
44
|
+
* `transactionHistory` does NOT retain a transaction's input or proposed
|
|
45
|
+
* state, so these must be recorded when the transaction is applied rather
|
|
46
|
+
* than recovered from a finished block.
|
|
47
|
+
*
|
|
48
|
+
* - `functionId` re-resolves the live function on the rebuilt block (same
|
|
49
|
+
* id-based lookup `createIdBasedFunctionResolver` uses).
|
|
50
|
+
* - `proposedState` is the state written when the transaction was accepted;
|
|
51
|
+
* it is what replay re-applies.
|
|
52
|
+
* - `proof` is the transaction proposal proof that authorized the change. It
|
|
53
|
+
* is re-verified against the rebuilt block + `proposedState` during replay,
|
|
54
|
+
* so a snapshot whose proposed state or proof was edited fails the load.
|
|
55
|
+
* Recording it also keeps the rebuilt block byte-faithful: the live history
|
|
56
|
+
* entry carries its proof, and the canonical share-data hash folds the
|
|
57
|
+
* history in, so replay must reproduce the proof to hash identically.
|
|
58
|
+
* - `transactionTime` is stored so the replayed history hashes identically.
|
|
59
|
+
* - `ruleOutcome` records whether the original proposal was accepted.
|
|
60
|
+
*/
|
|
61
|
+
exports.PersistedTransactionSchema = zod_1.default.object({
|
|
62
|
+
functionId: zod_1.default.string(),
|
|
63
|
+
input: zod_1.default.any().optional(),
|
|
64
|
+
proposedState: share_data_models_1.IShareDataSchema,
|
|
65
|
+
proof: share_data_crypto_models_1.IShareDataCryptoProofSchema,
|
|
66
|
+
transactionTime: zod_1.default.number(),
|
|
67
|
+
ruleOutcome: zod_1.default.boolean(),
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* A durable snapshot of a ShareData. Versioned via `schemaVersion` so a future
|
|
71
|
+
* format change can be gated cleanly. The `expected*` fields are NOT trusted
|
|
72
|
+
* on load — they are cross-checked against the independently replayed block so
|
|
73
|
+
* a snapshot whose state was edited without re-signing fails loudly.
|
|
74
|
+
*/
|
|
75
|
+
exports.PersistedShareDataSchema = zod_1.default.object({
|
|
76
|
+
schemaVersion: zod_1.default.literal(3),
|
|
77
|
+
id: zod_1.default.string(),
|
|
78
|
+
blockType: shareblock_models_1.ShareBlockTypeSchema,
|
|
79
|
+
signingCurve: exports.PersistedSigningCurveSchema,
|
|
80
|
+
initialCrypto: share_data_crypto_models_1.IShareDataInitialCryptoDataSchema,
|
|
81
|
+
creationConfig: exports.PersistedCreationConfigSchema,
|
|
82
|
+
structuralProofs: share_data_crypto_models_1.ShareDataProofsSchema,
|
|
83
|
+
// The delegated-signer grants registered at construction (least-privilege
|
|
84
|
+
// function scoping per grant). The registration *proofs* live in
|
|
85
|
+
// `structuralProofs` keyed by their `delegate:<key>:<ids>` purpose; this
|
|
86
|
+
// field carries the grant tuples the builder replays via
|
|
87
|
+
// `addAuthorizedSigner` so the rebuilt block re-derives the same signer set
|
|
88
|
+
// (and the same canonical hash). Empty for blocks with no delegations.
|
|
89
|
+
authorizedSigners: zod_1.default.array(share_data_crypto_models_1.IAuthorizedSignerSchema),
|
|
90
|
+
transactionLog: zod_1.default.array(exports.PersistedTransactionSchema),
|
|
91
|
+
// Integrity cross-checks — compared against the replayed result, never
|
|
92
|
+
// trusted as source of truth.
|
|
93
|
+
expectedCurrentState: share_data_models_1.IShareDataSchema,
|
|
94
|
+
expectedCreationHash: zod_1.default.string(),
|
|
95
|
+
expectedCreationSignature: zod_1.default.string(),
|
|
96
|
+
expectedIsLocked: zod_1.default.boolean(),
|
|
97
|
+
expectedVersion: zod_1.default.number(),
|
|
98
|
+
});
|
|
99
|
+
/** The only schema version this build understands. */
|
|
100
|
+
exports.PERSISTED_SHARE_DATA_SCHEMA_VERSION = 3;
|
|
101
|
+
//#endregion Persistence Schemas
|