@ixo/flow-work 0.5.0 → 0.7.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/README.md +9 -0
- package/dist/bounded-canonical.d.ts +10 -0
- package/dist/bounded-canonical.d.ts.map +1 -0
- package/dist/bounded-canonical.js +77 -0
- package/dist/bounded-canonical.js.map +1 -0
- package/dist/bounded-codec.d.ts +20 -0
- package/dist/bounded-codec.d.ts.map +1 -0
- package/dist/bounded-codec.js +301 -0
- package/dist/bounded-codec.js.map +1 -0
- package/dist/bounded-contracts.d.ts +114 -0
- package/dist/bounded-contracts.d.ts.map +1 -0
- package/dist/bounded-contracts.js +311 -0
- package/dist/bounded-contracts.js.map +1 -0
- package/dist/bounded-definitions.d.ts +44 -0
- package/dist/bounded-definitions.d.ts.map +1 -0
- package/dist/bounded-definitions.js +340 -0
- package/dist/bounded-definitions.js.map +1 -0
- package/dist/bounded-protocol.d.ts +461 -0
- package/dist/bounded-protocol.d.ts.map +1 -0
- package/dist/bounded-protocol.js +193 -0
- package/dist/bounded-protocol.js.map +1 -0
- package/dist/bounded.d.ts +18 -0
- package/dist/bounded.d.ts.map +1 -0
- package/dist/bounded.js +18 -0
- package/dist/bounded.js.map +1 -0
- package/dist/capability-adapter.d.ts +6 -0
- package/dist/capability-adapter.d.ts.map +1 -0
- package/dist/capability-adapter.js +56 -0
- package/dist/capability-adapter.js.map +1 -0
- package/dist/capability.d.ts +2 -0
- package/dist/capability.d.ts.map +1 -1
- package/dist/capability.js.map +1 -1
- package/dist/durable-input.d.ts +18 -0
- package/dist/durable-input.d.ts.map +1 -0
- package/dist/durable-input.js +126 -0
- package/dist/durable-input.js.map +1 -0
- package/dist/durable-listener.d.ts +55 -0
- package/dist/durable-listener.d.ts.map +1 -0
- package/dist/durable-listener.js +202 -0
- package/dist/durable-listener.js.map +1 -0
- package/dist/durable-store.d.ts +43 -0
- package/dist/durable-store.d.ts.map +1 -0
- package/dist/durable-store.js +188 -0
- package/dist/durable-store.js.map +1 -0
- package/dist/execution-rpc.d.ts +19 -0
- package/dist/execution-rpc.d.ts.map +1 -0
- package/dist/execution-rpc.js +72 -0
- package/dist/execution-rpc.js.map +1 -0
- package/dist/execution-service.d.ts +117 -0
- package/dist/execution-service.d.ts.map +1 -0
- package/dist/execution-service.js +343 -0
- package/dist/execution-service.js.map +1 -0
- package/dist/external-catalog.d.ts +43 -0
- package/dist/external-catalog.d.ts.map +1 -0
- package/dist/external-catalog.js +121 -0
- package/dist/external-catalog.js.map +1 -0
- package/dist/gateway-client.d.ts +30 -0
- package/dist/gateway-client.d.ts.map +1 -0
- package/dist/gateway-client.js +97 -0
- package/dist/gateway-client.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input-requests.d.ts +1 -1
- package/dist/input-requests.d.ts.map +1 -1
- package/dist/input-requests.js.map +1 -1
- package/dist/listener.d.ts +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/matrix-port-types.d.ts +56 -0
- package/dist/matrix-port-types.d.ts.map +1 -0
- package/dist/matrix-port-types.js +10 -0
- package/dist/matrix-port-types.js.map +1 -0
- package/dist/matrix-port.d.ts +8 -50
- package/dist/matrix-port.d.ts.map +1 -1
- package/dist/matrix-port.js.map +1 -1
- package/dist/node-sqlite.d.ts +12 -0
- package/dist/node-sqlite.d.ts.map +1 -0
- package/dist/node-sqlite.js +45 -0
- package/dist/node-sqlite.js.map +1 -0
- package/dist/protocol.d.ts +4 -4
- package/dist/provider-journal.d.ts +26 -0
- package/dist/provider-journal.d.ts.map +1 -0
- package/dist/provider-journal.js +94 -0
- package/dist/provider-journal.js.map +1 -0
- package/dist/work-authority.d.ts +16 -0
- package/dist/work-authority.d.ts.map +1 -0
- package/dist/work-authority.js +31 -0
- package/dist/work-authority.js.map +1 -0
- package/package.json +33 -1
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { BoundedContractError, decodeBoundedJson, encodeBoundedJson, } from './bounded-codec.js';
|
|
2
|
+
export const BOUNDED_PROTOCOL = 'bounded-v1';
|
|
3
|
+
export const RESOURCE_PROFILE = Object.freeze({
|
|
4
|
+
id: 'bounded-v1-60mib',
|
|
5
|
+
recordBytes: 16_384,
|
|
6
|
+
pageRecords: 128,
|
|
7
|
+
pageBytes: 256 * 1024,
|
|
8
|
+
artifactReferenceBytes: 2048,
|
|
9
|
+
proofBytes: 8192,
|
|
10
|
+
cursorBytes: 2048,
|
|
11
|
+
taskBytes: 8 * 1024 * 1024,
|
|
12
|
+
baselineBytes: 24 * 1024 * 1024,
|
|
13
|
+
cacheBytes: 4 * 1024 * 1024,
|
|
14
|
+
taskSlots: 4,
|
|
15
|
+
ordinarySlots: 3,
|
|
16
|
+
peakBytes: 60 * 1024 * 1024,
|
|
17
|
+
pendingRows: 100_000,
|
|
18
|
+
pendingBytes: 64 * 1024 * 1024,
|
|
19
|
+
retryAttempts: 32,
|
|
20
|
+
});
|
|
21
|
+
function invalid(detail) {
|
|
22
|
+
throw new BoundedContractError('INVALID_RECORD', detail);
|
|
23
|
+
}
|
|
24
|
+
function object(value, keys) {
|
|
25
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
26
|
+
invalid('Expected record');
|
|
27
|
+
const actual = Object.keys(value);
|
|
28
|
+
if (actual.length !== keys.length ||
|
|
29
|
+
actual.some((key) => !keys.includes(key)))
|
|
30
|
+
invalid('Unexpected record members');
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
function text(value, field, maximum = 512) {
|
|
34
|
+
if (typeof value !== 'string' || value.length === 0 || value.length > maximum)
|
|
35
|
+
invalid(field);
|
|
36
|
+
for (let index = 0; index < value.length; index++)
|
|
37
|
+
if (value.charCodeAt(index) < 32)
|
|
38
|
+
invalid(field);
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
function integer(value, field, minimum = 0, maximum = Number.MAX_SAFE_INTEGER) {
|
|
42
|
+
if (typeof value !== 'number' ||
|
|
43
|
+
!Number.isSafeInteger(value) ||
|
|
44
|
+
value < minimum ||
|
|
45
|
+
value > maximum)
|
|
46
|
+
invalid(field);
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
export function contentDigest(value) {
|
|
50
|
+
if (typeof value !== 'string' || !/^sha256:[a-f0-9]{64}$/u.test(value))
|
|
51
|
+
invalid('Content digest');
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
export async function recordDigest(bytes) {
|
|
55
|
+
if (bytes.byteLength > RESOURCE_PROFILE.recordBytes)
|
|
56
|
+
throw new BoundedContractError('RESOURCE_LIMIT', 'Record bytes');
|
|
57
|
+
const digest = new Uint8Array(await crypto.subtle.digest('SHA-256', Uint8Array.from(bytes)));
|
|
58
|
+
let hex = '';
|
|
59
|
+
for (const byte of digest)
|
|
60
|
+
hex += byte.toString(16).padStart(2, '0');
|
|
61
|
+
return `sha256:${hex}`;
|
|
62
|
+
}
|
|
63
|
+
function context(value) {
|
|
64
|
+
const result = {
|
|
65
|
+
issuer: text(value.issuer, 'Issuer'),
|
|
66
|
+
keyId: text(value.keyId, 'Key id'),
|
|
67
|
+
audience: text(value.audience, 'Audience'),
|
|
68
|
+
flowId: text(value.flowId, 'Flow id'),
|
|
69
|
+
epoch: integer(value.epoch, 'Epoch', 1),
|
|
70
|
+
issuedAt: integer(value.issuedAt, 'Issue time'),
|
|
71
|
+
expiresAt: integer(value.expiresAt, 'Expiry time'),
|
|
72
|
+
};
|
|
73
|
+
if (result.expiresAt <= result.issuedAt)
|
|
74
|
+
invalid('Signature lifetime');
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
const HEADER_KEYS = [
|
|
78
|
+
'kind',
|
|
79
|
+
'protocol',
|
|
80
|
+
'resourceProfile',
|
|
81
|
+
'digest',
|
|
82
|
+
'bytes',
|
|
83
|
+
'issuer',
|
|
84
|
+
'keyId',
|
|
85
|
+
'audience',
|
|
86
|
+
'flowId',
|
|
87
|
+
'epoch',
|
|
88
|
+
'issuedAt',
|
|
89
|
+
'expiresAt',
|
|
90
|
+
'signature',
|
|
91
|
+
];
|
|
92
|
+
export function decodeSignedHeader(bytes) {
|
|
93
|
+
if (bytes.byteLength > RESOURCE_PROFILE.proofBytes)
|
|
94
|
+
throw new BoundedContractError('RESOURCE_LIMIT', 'Signature header bytes');
|
|
95
|
+
const value = object(decodeBoundedJson(bytes), HEADER_KEYS);
|
|
96
|
+
if (value.kind !== 'qi.flow.signed-record')
|
|
97
|
+
invalid('Signed record kind');
|
|
98
|
+
if (value.protocol !== BOUNDED_PROTOCOL ||
|
|
99
|
+
value.resourceProfile !== RESOURCE_PROFILE.id)
|
|
100
|
+
throw new BoundedContractError('UNSUPPORTED_PROTOCOL', 'Protocol or resource profile');
|
|
101
|
+
const signature = text(value.signature, 'Signature', 86);
|
|
102
|
+
if (!/^[A-Za-z0-9_-]{86}$/u.test(signature))
|
|
103
|
+
invalid('Ed25519 signature encoding');
|
|
104
|
+
return {
|
|
105
|
+
kind: 'qi.flow.signed-record',
|
|
106
|
+
protocol: BOUNDED_PROTOCOL,
|
|
107
|
+
resourceProfile: RESOURCE_PROFILE.id,
|
|
108
|
+
digest: contentDigest(value.digest),
|
|
109
|
+
bytes: integer(value.bytes, 'Record bytes', 1, RESOURCE_PROFILE.recordBytes),
|
|
110
|
+
...context(value),
|
|
111
|
+
signature,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function unsigned(header) {
|
|
115
|
+
return encodeBoundedJson({
|
|
116
|
+
kind: header.kind,
|
|
117
|
+
protocol: header.protocol,
|
|
118
|
+
resourceProfile: header.resourceProfile,
|
|
119
|
+
digest: header.digest,
|
|
120
|
+
bytes: header.bytes,
|
|
121
|
+
...context(header),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function base64url(bytes) {
|
|
125
|
+
let binary = '';
|
|
126
|
+
for (const byte of bytes)
|
|
127
|
+
binary += String.fromCharCode(byte);
|
|
128
|
+
return btoa(binary)
|
|
129
|
+
.replace(/\+/gu, '-')
|
|
130
|
+
.replace(/\//gu, '_')
|
|
131
|
+
.replace(/=+$/u, '');
|
|
132
|
+
}
|
|
133
|
+
function signatureBytes(signature) {
|
|
134
|
+
const binary = atob(signature.replace(/-/gu, '+').replace(/_/gu, '/') + '==');
|
|
135
|
+
const bytes = Uint8Array.from(binary, (character) => character.charCodeAt(0));
|
|
136
|
+
if (bytes.length !== 64 || base64url(bytes) !== signature)
|
|
137
|
+
invalid('Non-canonical signature');
|
|
138
|
+
return bytes;
|
|
139
|
+
}
|
|
140
|
+
/** Node emits alg=Ed25519; older workerd expects EdDSA for JWK import. Validate the key, then import its raw public bytes. */
|
|
141
|
+
export async function importBoundedPublicKey(bytes) {
|
|
142
|
+
if (bytes.byteLength > 4096)
|
|
143
|
+
throw new BoundedContractError('RESOURCE_LIMIT', 'Public key bytes');
|
|
144
|
+
const decoded = decodeBoundedJson(bytes);
|
|
145
|
+
if (!decoded || typeof decoded !== 'object' || Array.isArray(decoded))
|
|
146
|
+
invalid('Public key record');
|
|
147
|
+
const allowed = ['kty', 'crv', 'x', 'alg', 'key_ops', 'ext', 'kid', 'use'];
|
|
148
|
+
if (Object.keys(decoded).some((key) => !allowed.includes(key)))
|
|
149
|
+
invalid('Unexpected public key field');
|
|
150
|
+
if (decoded.kty !== 'OKP' || decoded.crv !== 'Ed25519')
|
|
151
|
+
invalid('Ed25519 public key required');
|
|
152
|
+
if (decoded.alg !== undefined &&
|
|
153
|
+
decoded.alg !== 'Ed25519' &&
|
|
154
|
+
decoded.alg !== 'EdDSA')
|
|
155
|
+
invalid('Public key algorithm');
|
|
156
|
+
if (decoded.use !== undefined && decoded.use !== 'sig')
|
|
157
|
+
invalid('Public key use');
|
|
158
|
+
if (decoded.ext !== undefined && typeof decoded.ext !== 'boolean')
|
|
159
|
+
invalid('Public key extractability');
|
|
160
|
+
if (decoded.kid !== undefined)
|
|
161
|
+
text(decoded.kid, 'Public key identifier');
|
|
162
|
+
if (decoded.key_ops !== undefined &&
|
|
163
|
+
(!Array.isArray(decoded.key_ops) ||
|
|
164
|
+
decoded.key_ops.length !== 1 ||
|
|
165
|
+
decoded.key_ops[0] !== 'verify'))
|
|
166
|
+
invalid('Public key operations');
|
|
167
|
+
const x = text(decoded.x, 'Public key coordinate', 43);
|
|
168
|
+
if (!/^[A-Za-z0-9_-]{43}$/u.test(x))
|
|
169
|
+
invalid('Public key encoding');
|
|
170
|
+
const binary = atob(x.replace(/-/gu, '+').replace(/_/gu, '/') + '=');
|
|
171
|
+
const raw = Uint8Array.from(binary, (character) => character.charCodeAt(0));
|
|
172
|
+
if (raw.length !== 32 || base64url(raw) !== x)
|
|
173
|
+
invalid('Non-canonical public key');
|
|
174
|
+
return crypto.subtle.importKey('raw', raw, 'Ed25519', false, ['verify']);
|
|
175
|
+
}
|
|
176
|
+
export async function signBoundedRecord(payload, scope, key) {
|
|
177
|
+
const opaque = 'sign' in key;
|
|
178
|
+
if (!opaque && (key.algorithm.name !== 'Ed25519' || key.type !== 'private'))
|
|
179
|
+
invalid('Ed25519 private key required');
|
|
180
|
+
const bytes = encodeBoundedJson(payload);
|
|
181
|
+
const header = {
|
|
182
|
+
kind: 'qi.flow.signed-record',
|
|
183
|
+
protocol: BOUNDED_PROTOCOL,
|
|
184
|
+
resourceProfile: RESOURCE_PROFILE.id,
|
|
185
|
+
...context(scope),
|
|
186
|
+
digest: await recordDigest(bytes),
|
|
187
|
+
bytes: bytes.byteLength,
|
|
188
|
+
};
|
|
189
|
+
const signingBytes = Uint8Array.from(unsigned(header));
|
|
190
|
+
const signed = opaque
|
|
191
|
+
? Uint8Array.from(await key.sign(signingBytes))
|
|
192
|
+
: new Uint8Array(await crypto.subtle.sign('Ed25519', key, signingBytes));
|
|
193
|
+
if (signed.byteLength !== 64)
|
|
194
|
+
invalid('Ed25519 signature required');
|
|
195
|
+
return {
|
|
196
|
+
header: { ...header, signature: base64url(signed) },
|
|
197
|
+
payload: bytes,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/** The host resolves an authorized issuer key. This signature check does not replace a UCAN grant check. */
|
|
201
|
+
export async function verifyBoundedRecord(headerBytes, payloadBytes, key, expected) {
|
|
202
|
+
const header = decodeSignedHeader(headerBytes);
|
|
203
|
+
if (payloadBytes.byteLength !== header.bytes)
|
|
204
|
+
throw new BoundedContractError('INVALID_SIGNATURE', 'Payload bytes');
|
|
205
|
+
const payload = Uint8Array.from(payloadBytes);
|
|
206
|
+
if (key.algorithm.name !== 'Ed25519' || key.type !== 'public')
|
|
207
|
+
invalid('Ed25519 public key required');
|
|
208
|
+
integer(expected.now, 'Current time');
|
|
209
|
+
if (header.issuer !== expected.issuer ||
|
|
210
|
+
header.keyId !== expected.keyId ||
|
|
211
|
+
header.audience !== expected.audience ||
|
|
212
|
+
header.flowId !== expected.flowId ||
|
|
213
|
+
header.epoch !== expected.epoch ||
|
|
214
|
+
header.issuedAt > expected.now ||
|
|
215
|
+
header.expiresAt <= expected.now)
|
|
216
|
+
throw new BoundedContractError('INVALID_SIGNATURE', 'Signature scope or lifetime');
|
|
217
|
+
if ((await recordDigest(payload)) !== header.digest)
|
|
218
|
+
throw new BoundedContractError('INVALID_SIGNATURE', 'Payload digest');
|
|
219
|
+
const valid = await crypto.subtle.verify('Ed25519', key, Uint8Array.from(signatureBytes(header.signature)), Uint8Array.from(unsigned(header)));
|
|
220
|
+
if (!valid)
|
|
221
|
+
throw new BoundedContractError('INVALID_SIGNATURE', 'Signature verification');
|
|
222
|
+
const record = decodeBoundedJson(payload);
|
|
223
|
+
const canonical = encodeBoundedJson(record);
|
|
224
|
+
if (canonical.length !== payload.length ||
|
|
225
|
+
canonical.some((byte, index) => byte !== payload[index]))
|
|
226
|
+
invalid('Non-canonical record bytes');
|
|
227
|
+
return record;
|
|
228
|
+
}
|
|
229
|
+
export function decodeArtifactReference(bytes) {
|
|
230
|
+
if (bytes.byteLength > RESOURCE_PROFILE.artifactReferenceBytes)
|
|
231
|
+
throw new BoundedContractError('RESOURCE_LIMIT', 'Artifact reference bytes');
|
|
232
|
+
const value = object(decodeBoundedJson(bytes), [
|
|
233
|
+
'kind',
|
|
234
|
+
'digest',
|
|
235
|
+
'bytes',
|
|
236
|
+
'mediaType',
|
|
237
|
+
'resource',
|
|
238
|
+
'authorityDigest',
|
|
239
|
+
]);
|
|
240
|
+
if (value.kind !== 'artifact')
|
|
241
|
+
invalid('Artifact kind');
|
|
242
|
+
return {
|
|
243
|
+
kind: 'artifact',
|
|
244
|
+
digest: contentDigest(value.digest),
|
|
245
|
+
bytes: integer(value.bytes, 'Artifact bytes'),
|
|
246
|
+
mediaType: text(value.mediaType, 'Media type', 128),
|
|
247
|
+
resource: text(value.resource, 'Artifact resource'),
|
|
248
|
+
authorityDigest: contentDigest(value.authorityDigest),
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
export function decodeManifestNode(bytes) {
|
|
252
|
+
const value = object(decodeBoundedJson(bytes), [
|
|
253
|
+
'kind',
|
|
254
|
+
'protocol',
|
|
255
|
+
'level',
|
|
256
|
+
'count',
|
|
257
|
+
'children',
|
|
258
|
+
]);
|
|
259
|
+
if (value.kind !== 'manifest' || value.protocol !== BOUNDED_PROTOCOL)
|
|
260
|
+
invalid('Manifest protocol');
|
|
261
|
+
if (!Array.isArray(value.children) ||
|
|
262
|
+
value.children.length > RESOURCE_PROFILE.pageRecords)
|
|
263
|
+
invalid('Manifest children');
|
|
264
|
+
if (value.children.length === 0 && (value.level !== 0 || value.count !== 0))
|
|
265
|
+
invalid('Empty manifest');
|
|
266
|
+
const children = value.children.map((child) => {
|
|
267
|
+
const ref = object(child, ['digest', 'bytes']);
|
|
268
|
+
return {
|
|
269
|
+
digest: contentDigest(ref.digest),
|
|
270
|
+
bytes: integer(ref.bytes, 'Child bytes', 1, RESOURCE_PROFILE.recordBytes),
|
|
271
|
+
};
|
|
272
|
+
});
|
|
273
|
+
const unique = new Set(children.map((child) => child.digest));
|
|
274
|
+
if (unique.size !== children.length)
|
|
275
|
+
invalid('Duplicate manifest child');
|
|
276
|
+
return {
|
|
277
|
+
kind: 'manifest',
|
|
278
|
+
protocol: BOUNDED_PROTOCOL,
|
|
279
|
+
level: integer(value.level, 'Manifest level', 0, 16),
|
|
280
|
+
count: integer(value.count, 'Manifest record count', children.length),
|
|
281
|
+
children,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
export function negotiateCapabilities(bytes, requiredRecords) {
|
|
285
|
+
const value = object(decodeBoundedJson(bytes), [
|
|
286
|
+
'protocol',
|
|
287
|
+
'resourceProfile',
|
|
288
|
+
'recordBytes',
|
|
289
|
+
'pageBytes',
|
|
290
|
+
'supportedRecords',
|
|
291
|
+
]);
|
|
292
|
+
if (value.protocol !== BOUNDED_PROTOCOL ||
|
|
293
|
+
value.resourceProfile !== RESOURCE_PROFILE.id)
|
|
294
|
+
throw new BoundedContractError('UNSUPPORTED_PROTOCOL', 'Protocol or resource profile');
|
|
295
|
+
if (!Array.isArray(value.supportedRecords))
|
|
296
|
+
invalid('Record capabilities');
|
|
297
|
+
const supportedRecords = value.supportedRecords.map((item) => text(item, 'Record capability', 128));
|
|
298
|
+
const recordBytes = integer(value.recordBytes, 'Record capability', RESOURCE_PROFILE.recordBytes, RESOURCE_PROFILE.recordBytes);
|
|
299
|
+
const pageBytes = integer(value.pageBytes, 'Page capability', RESOURCE_PROFILE.pageBytes, RESOURCE_PROFILE.pageBytes);
|
|
300
|
+
if (new Set(supportedRecords).size !== supportedRecords.length ||
|
|
301
|
+
requiredRecords.some((kind) => !supportedRecords.includes(kind)))
|
|
302
|
+
throw new BoundedContractError('UNSUPPORTED_PROTOCOL', 'Required record capability');
|
|
303
|
+
return {
|
|
304
|
+
protocol: BOUNDED_PROTOCOL,
|
|
305
|
+
resourceProfile: RESOURCE_PROFILE.id,
|
|
306
|
+
recordBytes,
|
|
307
|
+
pageBytes,
|
|
308
|
+
supportedRecords,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=bounded-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded-contracts.js","sourceRoot":"","sources":["../src/bounded-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAqB,CAAC;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,kBAAkB;IACtB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,GAAG,GAAG,IAAI;IACrB,sBAAsB,EAAE,IAAI;IAC5B,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC1B,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC/B,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC3B,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,CAAC;IAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC3B,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC9B,aAAa,EAAE,EAAE;CAClB,CAAC,CAAC;AA8EH,SAAS,OAAO,CAAC,MAAc;IAC7B,MAAM,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AACD,SAAS,MAAM,CACb,KAA8B,EAC9B,IAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,IACE,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEzC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,IAAI,CACX,KAA8B,EAC9B,KAAa,EACb,OAAO,GAAG,GAAG;IAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO;QAC3E,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;QAC/C,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,OAAO,CACd,KAA8B,EAC9B,KAAa,EACb,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,MAAM,CAAC,gBAAgB;IAEjC,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5B,KAAK,GAAG,OAAO;QACf,KAAK,GAAG,OAAO;QAEf,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QACpE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,OAAO,KAAsB,CAAC;AAChC,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAiB;IAClD,IAAI,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,WAAW;QACjD,MAAM,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,UAAU,CAC3B,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC9D,CAAC;IACF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,MAAM;QAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,OAAO,UAAU,GAAG,EAAE,CAAC;AACzB,CAAC;AACD,SAAS,OAAO,CAAC,KAAuB;IACtC,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;QACpC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;QAClC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC1C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;QACrC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACvC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC/C,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC;KACnD,CAAC;IACF,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,MAAM,WAAW,GAAG;IAClB,MAAM;IACN,UAAU;IACV,iBAAiB;IACjB,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,QAAQ;IACR,OAAO;IACP,UAAU;IACV,WAAW;IACX,WAAW;CACZ,CAAC;AACF,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,IAAI,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,UAAU;QAChD,MAAM,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1E,IACE,KAAK,CAAC,QAAQ,KAAK,gBAAgB;QACnC,KAAK,CAAC,eAAe,KAAK,gBAAgB,CAAC,EAAE;QAE7C,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,EACtB,8BAA8B,CAC/B,CAAC;IACJ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;QACzC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACxC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,gBAAgB;QAC1B,eAAe,EAAE,gBAAgB,CAAC,EAAE;QACpC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,OAAO,CACZ,KAAK,CAAC,KAAK,EACX,cAAc,EACd,CAAC,EACD,gBAAgB,CAAC,WAAW,CAC7B;QACD,GAAG,OAAO,CAAC,KAAoC,CAAC;QAChD,SAAS;KACV,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,MAA6C;IAC7D,OAAO,iBAAiB,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,OAAO,CAAC,MAAM,CAAC;KACnB,CAAC,CAAC;AACL,CAAC;AACD,SAAS,SAAS,CAAC,KAAiB;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,MAAM,CAAC;SAChB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AACD,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS;QACvD,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8HAA8H;AAC9H,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAiB;IAEjB,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI;QACzB,MAAM,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACnE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QACpD,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACzC,IACE,OAAO,CAAC,GAAG,KAAK,SAAS;QACzB,OAAO,CAAC,GAAG,KAAK,SAAS;QACzB,OAAO,CAAC,GAAG,KAAK,OAAO;QAEvB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK;QACpD,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS;QAC/D,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAC1E,IACE,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;QAElC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3C,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAoB,EACpB,KAAuB,EACvB,GAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC;IAC7B,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;QACzE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAA0C;QACpD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,gBAAgB;QAC1B,eAAe,EAAE,gBAAgB,CAAC,EAAE;QACpC,GAAG,OAAO,CAAC,KAAK,CAAC;QACjB,MAAM,EAAE,MAAM,YAAY,CAAC,KAAK,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,UAAU;KACxB,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,UAAU,KAAK,EAAE;QAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACpE,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;QACnD,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AACD,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAuB,EACvB,YAAwB,EACxB,GAAc,EACd,QAOC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,YAAY,CAAC,UAAU,KAAK,MAAM,CAAC,KAAK;QAC1C,MAAM,IAAI,oBAAoB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC3D,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACtC,IACE,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACjC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;QAC/B,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;QACrC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACjC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;QAC/B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG;QAC9B,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG;QAEhC,MAAM,IAAI,oBAAoB,CAC5B,mBAAmB,EACnB,6BAA6B,CAC9B,CAAC;IACJ,IAAI,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM;QACjD,MAAM,IAAI,oBAAoB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACtC,SAAS,EACT,GAAG,EACH,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EACjD,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAClC,CAAC;IACF,IAAI,CAAC,KAAK;QACR,MAAM,IAAI,oBAAoB,CAC5B,mBAAmB,EACnB,wBAAwB,CACzB,CAAC;IACJ,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5C,IACE,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QACnC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;QAExD,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,IAAI,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,sBAAsB;QAC5D,MAAM,IAAI,oBAAoB,CAC5B,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;IACJ,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;QAC7C,MAAM;QACN,QAAQ;QACR,OAAO;QACP,WAAW;QACX,UAAU;QACV,iBAAiB;KAClB,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAC7C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC;QACnD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACnD,eAAe,EAAE,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC;KACtD,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;QAC7C,MAAM;QACN,UAAU;QACV,OAAO;QACP,OAAO;QACP,UAAU;KACX,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB;QAClE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/B,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,gBAAgB,CAAC,WAAW;QAEpD,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;QACzE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,OAAO;YACL,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC;SAC1E,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC;QACrE,QAAQ;KACT,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,qBAAqB,CACnC,KAAiB,EACjB,eAAkC;IAElC,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;QAC7C,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,kBAAkB;KACnB,CAAC,CAAC;IACH,IACE,KAAK,CAAC,QAAQ,KAAK,gBAAgB;QACnC,KAAK,CAAC,eAAe,KAAK,gBAAgB,CAAC,EAAE;QAE7C,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,EACtB,8BAA8B,CAC/B,CAAC;IACJ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3D,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CACrC,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CACzB,KAAK,CAAC,WAAW,EACjB,mBAAmB,EACnB,gBAAgB,CAAC,WAAW,EAC5B,gBAAgB,CAAC,WAAW,CAC7B,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CACvB,KAAK,CAAC,SAAS,EACf,iBAAiB,EACjB,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,SAAS,CAC3B,CAAC;IACF,IACE,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,MAAM;QAC1D,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhE,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,EACtB,4BAA4B,CAC7B,CAAC;IACJ,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,eAAe,EAAE,gBAAgB,CAAC,EAAE;QACpC,WAAW;QACX,SAAS;QACT,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type BoundedJson } from './bounded-codec.js';
|
|
2
|
+
import { BOUNDED_PROTOCOL, signBoundedRecord, type ContentDigest, type RecordReference, type SignatureContext, type SignedRecordHeader } from './bounded-contracts.js';
|
|
3
|
+
type JsonObject = {
|
|
4
|
+
[key: string]: BoundedJson;
|
|
5
|
+
};
|
|
6
|
+
export interface DefinitionRoot {
|
|
7
|
+
kind: 'qi.flow.definition-root';
|
|
8
|
+
protocol: typeof BOUNDED_PROTOCOL;
|
|
9
|
+
flowId: string;
|
|
10
|
+
epoch: number;
|
|
11
|
+
publishedAt: number;
|
|
12
|
+
parent: ContentDigest | null;
|
|
13
|
+
title: string;
|
|
14
|
+
goal: string | null;
|
|
15
|
+
actionManifestDigest: ContentDigest;
|
|
16
|
+
records: RecordReference;
|
|
17
|
+
count: number;
|
|
18
|
+
}
|
|
19
|
+
export interface DefinitionRecord {
|
|
20
|
+
kind: 'qi.flow.definition-record';
|
|
21
|
+
protocol: typeof BOUNDED_PROTOCOL;
|
|
22
|
+
category: 'step' | 'block' | 'participant' | 'connection';
|
|
23
|
+
id: string;
|
|
24
|
+
value: JsonObject;
|
|
25
|
+
}
|
|
26
|
+
export declare function validateDefinitionTrigger(value: BoundedJson | undefined): void;
|
|
27
|
+
export declare function decodeDefinitionRoot(bytes: Uint8Array): DefinitionRoot;
|
|
28
|
+
export declare function decodeDefinitionRecord(bytes: Uint8Array): DefinitionRecord;
|
|
29
|
+
/** References to authored blocks and action outputs use the same block namespace. */
|
|
30
|
+
export declare function definitionRecordIdentity(record: DefinitionRecord): {
|
|
31
|
+
id: string;
|
|
32
|
+
dependencies: string[];
|
|
33
|
+
};
|
|
34
|
+
export interface DefinitionUploadPort {
|
|
35
|
+
put(bytes: Uint8Array): Promise<RecordReference>;
|
|
36
|
+
}
|
|
37
|
+
/** Constant-size frontier; never collects the graph or a full list of leaf references. */
|
|
38
|
+
export declare function uploadDefinition(records: AsyncIterable<DefinitionRecord> | Iterable<DefinitionRecord>, metadata: Omit<DefinitionRoot, 'kind' | 'protocol' | 'records' | 'count' | 'epoch' | 'publishedAt'>, scope: SignatureContext, signingKey: Parameters<typeof signBoundedRecord>[2], port: DefinitionUploadPort): Promise<{
|
|
39
|
+
root: DefinitionRoot;
|
|
40
|
+
header: SignedRecordHeader;
|
|
41
|
+
payload: Uint8Array;
|
|
42
|
+
}>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=bounded-definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded-definitions.d.ts","sourceRoot":"","sources":["../src/bounded-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAIhB,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AACjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,OAAO,gBAAgB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,oBAAoB,EAAE,aAAa,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,2BAA2B,CAAC;IAClC,QAAQ,EAAE,OAAO,gBAAgB,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,YAAY,CAAC;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;CACnB;AAsDD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,IAAI,CAsDN;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAiCtE;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,CA8E1E;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAkDA;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAClD;AACD,0FAA0F;AAC1F,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EACrE,QAAQ,EAAE,IAAI,CACZ,cAAc,EACd,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,CACpE,EACD,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,EACnD,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC;IACT,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC,CA0GD"}
|