@fungi.computer/puffball 0.0.0-stage → 0.0.1
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/LICENSE +21 -0
- package/README.md +443 -2
- package/dist/app-api.d.ts +7 -0
- package/dist/app-api.js +61 -0
- package/dist/app-backend-binding-vocabulary.d.ts +299 -0
- package/dist/app-backend-binding-vocabulary.js +257 -0
- package/dist/app-backend-bindings.d.ts +21 -0
- package/dist/app-backend-bindings.js +47 -0
- package/dist/app-declaration.d.ts +46 -0
- package/dist/app-declaration.js +115 -0
- package/dist/app-event-facts.d.ts +40 -0
- package/dist/app-event-facts.js +28 -0
- package/dist/app-method-context.d.ts +109 -0
- package/dist/app-method-context.js +9 -0
- package/dist/app-method-runtime.d.ts +86 -0
- package/dist/app-method-runtime.js +122 -0
- package/dist/app-origin-paths.d.ts +6 -0
- package/dist/app-origin-paths.js +6 -0
- package/dist/app-vocabulary.d.ts +189 -0
- package/dist/app-vocabulary.js +103 -0
- package/dist/app.d.ts +379 -0
- package/dist/app.js +71 -0
- package/dist/artifact-dispositions.d.ts +115 -0
- package/dist/artifact-dispositions.js +234 -0
- package/dist/assets.d.ts +54 -0
- package/dist/assets.js +89 -0
- package/dist/backend.d.ts +41 -0
- package/dist/backend.js +29 -0
- package/dist/background-replay.d.ts +115 -0
- package/dist/background-replay.js +175 -0
- package/dist/buyer-references.d.ts +69 -0
- package/dist/buyer-references.js +154 -0
- package/dist/cloudflare-assets.d.ts +48 -0
- package/dist/cloudflare-assets.js +105 -0
- package/dist/cloudflare.d.ts +254 -0
- package/dist/cloudflare.js +1619 -0
- package/dist/effect.d.ts +73 -0
- package/dist/effect.js +325 -0
- package/dist/git-representation.d.ts +13 -0
- package/dist/git-representation.js +16 -0
- package/dist/inbox.d.ts +132 -0
- package/dist/inbox.js +81 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +85 -0
- package/dist/internal/app-description.d.ts +14 -0
- package/dist/internal/app-description.js +98 -0
- package/dist/internal/app-release-artifact-reader.d.ts +26 -0
- package/dist/internal/app-release-artifact-reader.js +1 -0
- package/dist/internal/app-release-contract.d.ts +540 -0
- package/dist/internal/app-release-contract.js +169 -0
- package/dist/internal/app-release-schema.d.ts +1676 -0
- package/dist/internal/app-release-schema.js +386 -0
- package/dist/internal/app-release-store.d.ts +47 -0
- package/dist/internal/app-release-store.js +1 -0
- package/dist/internal/background-sync.d.ts +7 -0
- package/dist/internal/background-sync.js +10 -0
- package/dist/internal/deterministic-memory-app-release-store.d.ts +14 -0
- package/dist/internal/deterministic-memory-app-release-store.js +319 -0
- package/dist/internal/failure.d.ts +2 -0
- package/dist/internal/failure.js +9 -0
- package/dist/internal/immutable-release-material.d.ts +3 -0
- package/dist/internal/immutable-release-material.js +13 -0
- package/dist/internal/promise-app-release-store-adapter.d.ts +9 -0
- package/dist/internal/promise-app-release-store-adapter.js +65 -0
- package/dist/internal/promise-artifact-reader-adapter.d.ts +9 -0
- package/dist/internal/promise-artifact-reader-adapter.js +18 -0
- package/dist/internal/public-route-sql.d.ts +10 -0
- package/dist/internal/public-route-sql.js +239 -0
- package/dist/internal/public-website-authority.d.ts +338 -0
- package/dist/internal/public-website-authority.js +50 -0
- package/dist/internal/public-website-delivery.d.ts +59 -0
- package/dist/internal/public-website-delivery.js +232 -0
- package/dist/internal/public-website-fetch.d.ts +8 -0
- package/dist/internal/public-website-fetch.js +54 -0
- package/dist/internal/release-transition-material.d.ts +3 -0
- package/dist/internal/release-transition-material.js +11 -0
- package/dist/internal/verified-artifact-snapshot.d.ts +41 -0
- package/dist/internal/verified-artifact-snapshot.js +91 -0
- package/dist/public-route-moderation.d.ts +83 -0
- package/dist/public-route-moderation.js +236 -0
- package/dist/public-route-policy.d.ts +51 -0
- package/dist/public-route-policy.js +88 -0
- package/dist/public-routes.d.ts +34 -0
- package/dist/public-routes.js +136 -0
- package/dist/publisher.d.ts +61 -0
- package/dist/publisher.js +16 -0
- package/dist/safety-takedown.d.ts +56 -0
- package/dist/safety-takedown.js +146 -0
- package/dist/seller-closure-notice.d.ts +14 -0
- package/dist/seller-closure-notice.js +14 -0
- package/dist/seller-closure.d.ts +15 -0
- package/dist/seller-closure.js +31 -0
- package/dist/testing.d.ts +8 -0
- package/dist/testing.js +47 -0
- package/docs/api/README.md +26 -0
- package/docs/api/app-backend-binding-vocabulary.md +276 -0
- package/docs/api/app-backend-bindings.md +141 -0
- package/docs/api/app-event-facts.md +110 -0
- package/docs/api/app-method-context.md +166 -0
- package/docs/api/app-method-runtime.md +330 -0
- package/docs/api/backend.md +108 -0
- package/docs/api/background-replay.md +516 -0
- package/docs/api/cloudflare.md +1044 -0
- package/docs/api/effect.md +2429 -0
- package/docs/api/git-representation.md +56 -0
- package/docs/api/inbox.md +289 -0
- package/docs/api/index.md +2868 -0
- package/docs/api/publisher.md +147 -0
- package/docs/api/testing.md +31 -0
- package/package.json +158 -3
|
@@ -0,0 +1,2868 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/puffball**](README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/puffball](README.md) / index
|
|
8
|
+
|
|
9
|
+
# index
|
|
10
|
+
|
|
11
|
+
## Classes
|
|
12
|
+
|
|
13
|
+
### AppReleaseInputError
|
|
14
|
+
|
|
15
|
+
Fixed, non-leaking input failure for one public parser boundary.
|
|
16
|
+
|
|
17
|
+
#### Extends
|
|
18
|
+
|
|
19
|
+
- `Error`
|
|
20
|
+
|
|
21
|
+
#### Constructors
|
|
22
|
+
|
|
23
|
+
##### Constructor
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
new AppReleaseInputError(parserName): AppReleaseInputError;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
###### Parameters
|
|
30
|
+
|
|
31
|
+
| Parameter | Type |
|
|
32
|
+
| ------------ | ----------------------------------------------- |
|
|
33
|
+
| `parserName` | [`AppReleaseParserName`](#appreleaseparsername) |
|
|
34
|
+
|
|
35
|
+
###### Returns
|
|
36
|
+
|
|
37
|
+
[`AppReleaseInputError`](#appreleaseinputerror)
|
|
38
|
+
|
|
39
|
+
###### Overrides
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
Error.constructor;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### Properties
|
|
46
|
+
|
|
47
|
+
##### parserName
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
readonly parserName: AppReleaseParserName;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### AppReleaseCommandInputError
|
|
56
|
+
|
|
57
|
+
Fixed non-leaking input failure for one public catalog command.
|
|
58
|
+
|
|
59
|
+
#### Extends
|
|
60
|
+
|
|
61
|
+
- `Error`
|
|
62
|
+
|
|
63
|
+
#### Constructors
|
|
64
|
+
|
|
65
|
+
##### Constructor
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
new AppReleaseCommandInputError(commandName): AppReleaseCommandInputError;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
###### Parameters
|
|
72
|
+
|
|
73
|
+
| Parameter | Type |
|
|
74
|
+
| ------------- | ------------------------------------------------- |
|
|
75
|
+
| `commandName` | [`AppReleaseCommandName`](#appreleasecommandname) |
|
|
76
|
+
|
|
77
|
+
###### Returns
|
|
78
|
+
|
|
79
|
+
[`AppReleaseCommandInputError`](#appreleasecommandinputerror)
|
|
80
|
+
|
|
81
|
+
###### Overrides
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
Error.constructor;
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### Properties
|
|
88
|
+
|
|
89
|
+
##### commandName
|
|
90
|
+
|
|
91
|
+
```ts
|
|
92
|
+
readonly commandName: AppReleaseCommandName;
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### AppReleaseInvalidStoreResultError
|
|
98
|
+
|
|
99
|
+
Fixed non-leaking failure when a foreign Store success is structurally invalid.
|
|
100
|
+
|
|
101
|
+
#### Extends
|
|
102
|
+
|
|
103
|
+
- `Error`
|
|
104
|
+
|
|
105
|
+
#### Constructors
|
|
106
|
+
|
|
107
|
+
##### Constructor
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
new AppReleaseInvalidStoreResultError(): AppReleaseInvalidStoreResultError;
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
###### Returns
|
|
114
|
+
|
|
115
|
+
[`AppReleaseInvalidStoreResultError`](#appreleaseinvalidstoreresulterror)
|
|
116
|
+
|
|
117
|
+
###### Overrides
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
Error.constructor;
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### AppReleaseImmutableConflictError
|
|
126
|
+
|
|
127
|
+
Fixed conflict when one Release ID receives changed immutable input.
|
|
128
|
+
|
|
129
|
+
#### Extends
|
|
130
|
+
|
|
131
|
+
- `Error`
|
|
132
|
+
|
|
133
|
+
#### Constructors
|
|
134
|
+
|
|
135
|
+
##### Constructor
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
new AppReleaseImmutableConflictError(): AppReleaseImmutableConflictError;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
###### Returns
|
|
142
|
+
|
|
143
|
+
[`AppReleaseImmutableConflictError`](#appreleaseimmutableconflicterror)
|
|
144
|
+
|
|
145
|
+
###### Overrides
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
Error.constructor;
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### AppReleaseOwnerAppAbsentError
|
|
154
|
+
|
|
155
|
+
Fixed failure when a new Release references an App that does not exist.
|
|
156
|
+
|
|
157
|
+
#### Extends
|
|
158
|
+
|
|
159
|
+
- `Error`
|
|
160
|
+
|
|
161
|
+
#### Constructors
|
|
162
|
+
|
|
163
|
+
##### Constructor
|
|
164
|
+
|
|
165
|
+
```ts
|
|
166
|
+
new AppReleaseOwnerAppAbsentError(appId): AppReleaseOwnerAppAbsentError;
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
###### Parameters
|
|
170
|
+
|
|
171
|
+
| Parameter | Type |
|
|
172
|
+
| --------- | ----------------- |
|
|
173
|
+
| `appId` | [`AppId`](#appid) |
|
|
174
|
+
|
|
175
|
+
###### Returns
|
|
176
|
+
|
|
177
|
+
[`AppReleaseOwnerAppAbsentError`](#appreleaseownerappabsenterror)
|
|
178
|
+
|
|
179
|
+
###### Overrides
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
Error.constructor;
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
#### Properties
|
|
186
|
+
|
|
187
|
+
##### appId
|
|
188
|
+
|
|
189
|
+
```ts
|
|
190
|
+
readonly appId: AppId;
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
### AppReleaseSurfaceOwnerAppAbsentError
|
|
196
|
+
|
|
197
|
+
Fixed failure when a new public Surface references an App that does not exist.
|
|
198
|
+
|
|
199
|
+
#### Extends
|
|
200
|
+
|
|
201
|
+
- `Error`
|
|
202
|
+
|
|
203
|
+
#### Constructors
|
|
204
|
+
|
|
205
|
+
##### Constructor
|
|
206
|
+
|
|
207
|
+
```ts
|
|
208
|
+
new AppReleaseSurfaceOwnerAppAbsentError(appId): AppReleaseSurfaceOwnerAppAbsentError;
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
###### Parameters
|
|
212
|
+
|
|
213
|
+
| Parameter | Type |
|
|
214
|
+
| --------- | ----------------- |
|
|
215
|
+
| `appId` | [`AppId`](#appid) |
|
|
216
|
+
|
|
217
|
+
###### Returns
|
|
218
|
+
|
|
219
|
+
[`AppReleaseSurfaceOwnerAppAbsentError`](#appreleasesurfaceownerappabsenterror)
|
|
220
|
+
|
|
221
|
+
###### Overrides
|
|
222
|
+
|
|
223
|
+
```ts
|
|
224
|
+
Error.constructor;
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
#### Properties
|
|
228
|
+
|
|
229
|
+
##### appId
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
readonly appId: AppId;
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
### AppReleaseStoreUnavailableError
|
|
238
|
+
|
|
239
|
+
Fixed non-leaking failure when the injected App Release store is unavailable.
|
|
240
|
+
|
|
241
|
+
#### Extends
|
|
242
|
+
|
|
243
|
+
- `Error`
|
|
244
|
+
|
|
245
|
+
#### Constructors
|
|
246
|
+
|
|
247
|
+
##### Constructor
|
|
248
|
+
|
|
249
|
+
```ts
|
|
250
|
+
new AppReleaseStoreUnavailableError(): AppReleaseStoreUnavailableError;
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
###### Returns
|
|
254
|
+
|
|
255
|
+
[`AppReleaseStoreUnavailableError`](#appreleasestoreunavailableerror)
|
|
256
|
+
|
|
257
|
+
###### Overrides
|
|
258
|
+
|
|
259
|
+
```ts
|
|
260
|
+
Error.constructor;
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### AppReleaseReleaseAbsentError
|
|
266
|
+
|
|
267
|
+
Fixed failure when artifact verification names no stored Release.
|
|
268
|
+
|
|
269
|
+
#### Extends
|
|
270
|
+
|
|
271
|
+
- `Error`
|
|
272
|
+
|
|
273
|
+
#### Constructors
|
|
274
|
+
|
|
275
|
+
##### Constructor
|
|
276
|
+
|
|
277
|
+
```ts
|
|
278
|
+
new AppReleaseReleaseAbsentError(): AppReleaseReleaseAbsentError;
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
###### Returns
|
|
282
|
+
|
|
283
|
+
[`AppReleaseReleaseAbsentError`](#appreleasereleaseabsenterror)
|
|
284
|
+
|
|
285
|
+
###### Overrides
|
|
286
|
+
|
|
287
|
+
```ts
|
|
288
|
+
Error.constructor;
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
### AppReleaseArtifactUnavailableError
|
|
294
|
+
|
|
295
|
+
Fixed non-leaking failure when the injected artifact reader is unavailable.
|
|
296
|
+
|
|
297
|
+
#### Extends
|
|
298
|
+
|
|
299
|
+
- `Error`
|
|
300
|
+
|
|
301
|
+
#### Constructors
|
|
302
|
+
|
|
303
|
+
##### Constructor
|
|
304
|
+
|
|
305
|
+
```ts
|
|
306
|
+
new AppReleaseArtifactUnavailableError(): AppReleaseArtifactUnavailableError;
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
###### Returns
|
|
310
|
+
|
|
311
|
+
[`AppReleaseArtifactUnavailableError`](#appreleaseartifactunavailableerror)
|
|
312
|
+
|
|
313
|
+
###### Overrides
|
|
314
|
+
|
|
315
|
+
```ts
|
|
316
|
+
Error.constructor;
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
### AppReleaseArtifactMissingError
|
|
322
|
+
|
|
323
|
+
Fixed failure when the requested artifact cannot be found.
|
|
324
|
+
|
|
325
|
+
#### Extends
|
|
326
|
+
|
|
327
|
+
- `Error`
|
|
328
|
+
|
|
329
|
+
#### Constructors
|
|
330
|
+
|
|
331
|
+
##### Constructor
|
|
332
|
+
|
|
333
|
+
```ts
|
|
334
|
+
new AppReleaseArtifactMissingError(): AppReleaseArtifactMissingError;
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
###### Returns
|
|
338
|
+
|
|
339
|
+
[`AppReleaseArtifactMissingError`](#appreleaseartifactmissingerror)
|
|
340
|
+
|
|
341
|
+
###### Overrides
|
|
342
|
+
|
|
343
|
+
```ts
|
|
344
|
+
Error.constructor;
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
### AppReleaseArtifactDigestMismatchError
|
|
350
|
+
|
|
351
|
+
Fixed failure when resolved artifact bytes do not match the expected digest.
|
|
352
|
+
|
|
353
|
+
#### Extends
|
|
354
|
+
|
|
355
|
+
- `Error`
|
|
356
|
+
|
|
357
|
+
#### Constructors
|
|
358
|
+
|
|
359
|
+
##### Constructor
|
|
360
|
+
|
|
361
|
+
```ts
|
|
362
|
+
new AppReleaseArtifactDigestMismatchError(): AppReleaseArtifactDigestMismatchError;
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
###### Returns
|
|
366
|
+
|
|
367
|
+
[`AppReleaseArtifactDigestMismatchError`](#appreleaseartifactdigestmismatcherror)
|
|
368
|
+
|
|
369
|
+
###### Overrides
|
|
370
|
+
|
|
371
|
+
```ts
|
|
372
|
+
Error.constructor;
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
### AppReleaseArtifactInvalidSnapshotError
|
|
378
|
+
|
|
379
|
+
Fixed failure when a hostile artifact read cannot form a valid snapshot.
|
|
380
|
+
|
|
381
|
+
#### Extends
|
|
382
|
+
|
|
383
|
+
- `Error`
|
|
384
|
+
|
|
385
|
+
#### Constructors
|
|
386
|
+
|
|
387
|
+
##### Constructor
|
|
388
|
+
|
|
389
|
+
```ts
|
|
390
|
+
new AppReleaseArtifactInvalidSnapshotError(): AppReleaseArtifactInvalidSnapshotError;
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
###### Returns
|
|
394
|
+
|
|
395
|
+
[`AppReleaseArtifactInvalidSnapshotError`](#appreleaseartifactinvalidsnapshoterror)
|
|
396
|
+
|
|
397
|
+
###### Overrides
|
|
398
|
+
|
|
399
|
+
```ts
|
|
400
|
+
Error.constructor;
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
### AppReleaseUnimplementedError
|
|
406
|
+
|
|
407
|
+
Error thrown when a catalog operation is not implemented in this slice.
|
|
408
|
+
|
|
409
|
+
#### Extends
|
|
410
|
+
|
|
411
|
+
- `Error`
|
|
412
|
+
|
|
413
|
+
#### Constructors
|
|
414
|
+
|
|
415
|
+
##### Constructor
|
|
416
|
+
|
|
417
|
+
```ts
|
|
418
|
+
new AppReleaseUnimplementedError(): AppReleaseUnimplementedError;
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
###### Returns
|
|
422
|
+
|
|
423
|
+
[`AppReleaseUnimplementedError`](#appreleaseunimplementederror)
|
|
424
|
+
|
|
425
|
+
###### Overrides
|
|
426
|
+
|
|
427
|
+
```ts
|
|
428
|
+
Error.constructor;
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
### AppReleaseTransitionReleaseAbsentError
|
|
434
|
+
|
|
435
|
+
Fixed failure when a transition names no stored Release.
|
|
436
|
+
|
|
437
|
+
#### Extends
|
|
438
|
+
|
|
439
|
+
- `Error`
|
|
440
|
+
|
|
441
|
+
#### Constructors
|
|
442
|
+
|
|
443
|
+
##### Constructor
|
|
444
|
+
|
|
445
|
+
```ts
|
|
446
|
+
new AppReleaseTransitionReleaseAbsentError(): AppReleaseTransitionReleaseAbsentError;
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
###### Returns
|
|
450
|
+
|
|
451
|
+
[`AppReleaseTransitionReleaseAbsentError`](#appreleasetransitionreleaseabsenterror)
|
|
452
|
+
|
|
453
|
+
###### Overrides
|
|
454
|
+
|
|
455
|
+
```ts
|
|
456
|
+
Error.constructor;
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
### AppReleaseTransitionReleaseUnverifiedError
|
|
462
|
+
|
|
463
|
+
Fixed failure when promotion or rollback names an unverified Release.
|
|
464
|
+
|
|
465
|
+
#### Extends
|
|
466
|
+
|
|
467
|
+
- `Error`
|
|
468
|
+
|
|
469
|
+
#### Constructors
|
|
470
|
+
|
|
471
|
+
##### Constructor
|
|
472
|
+
|
|
473
|
+
```ts
|
|
474
|
+
new AppReleaseTransitionReleaseUnverifiedError(): AppReleaseTransitionReleaseUnverifiedError;
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
###### Returns
|
|
478
|
+
|
|
479
|
+
[`AppReleaseTransitionReleaseUnverifiedError`](#appreleasetransitionreleaseunverifiederror)
|
|
480
|
+
|
|
481
|
+
###### Overrides
|
|
482
|
+
|
|
483
|
+
```ts
|
|
484
|
+
Error.constructor;
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
### AppReleaseTransitionArtifactIncompatibleError
|
|
490
|
+
|
|
491
|
+
Fixed failure when a website selection names a non-HTML artifact.
|
|
492
|
+
|
|
493
|
+
#### Extends
|
|
494
|
+
|
|
495
|
+
- `Error`
|
|
496
|
+
|
|
497
|
+
#### Constructors
|
|
498
|
+
|
|
499
|
+
##### Constructor
|
|
500
|
+
|
|
501
|
+
```ts
|
|
502
|
+
new AppReleaseTransitionArtifactIncompatibleError(): AppReleaseTransitionArtifactIncompatibleError;
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
###### Returns
|
|
506
|
+
|
|
507
|
+
[`AppReleaseTransitionArtifactIncompatibleError`](#appreleasetransitionartifactincompatibleerror)
|
|
508
|
+
|
|
509
|
+
###### Overrides
|
|
510
|
+
|
|
511
|
+
```ts
|
|
512
|
+
Error.constructor;
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
### AppReleaseTransitionReleaseRevokedError
|
|
518
|
+
|
|
519
|
+
Fixed failure when promotion or rollback names a revoked Release.
|
|
520
|
+
|
|
521
|
+
#### Extends
|
|
522
|
+
|
|
523
|
+
- `Error`
|
|
524
|
+
|
|
525
|
+
#### Constructors
|
|
526
|
+
|
|
527
|
+
##### Constructor
|
|
528
|
+
|
|
529
|
+
```ts
|
|
530
|
+
new AppReleaseTransitionReleaseRevokedError(): AppReleaseTransitionReleaseRevokedError;
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
###### Returns
|
|
534
|
+
|
|
535
|
+
[`AppReleaseTransitionReleaseRevokedError`](#appreleasetransitionreleaserevokederror)
|
|
536
|
+
|
|
537
|
+
###### Overrides
|
|
538
|
+
|
|
539
|
+
```ts
|
|
540
|
+
Error.constructor;
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
### AppReleaseTransitionSurfaceAbsentError
|
|
546
|
+
|
|
547
|
+
Fixed failure when a transition names no stored public Surface.
|
|
548
|
+
|
|
549
|
+
#### Extends
|
|
550
|
+
|
|
551
|
+
- `Error`
|
|
552
|
+
|
|
553
|
+
#### Constructors
|
|
554
|
+
|
|
555
|
+
##### Constructor
|
|
556
|
+
|
|
557
|
+
```ts
|
|
558
|
+
new AppReleaseTransitionSurfaceAbsentError(): AppReleaseTransitionSurfaceAbsentError;
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
###### Returns
|
|
562
|
+
|
|
563
|
+
[`AppReleaseTransitionSurfaceAbsentError`](#appreleasetransitionsurfaceabsenterror)
|
|
564
|
+
|
|
565
|
+
###### Overrides
|
|
566
|
+
|
|
567
|
+
```ts
|
|
568
|
+
Error.constructor;
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
### AppReleaseTransitionOwnershipConflictError
|
|
574
|
+
|
|
575
|
+
Fixed failure when a Release is owned by another App than its Surface.
|
|
576
|
+
|
|
577
|
+
#### Extends
|
|
578
|
+
|
|
579
|
+
- `Error`
|
|
580
|
+
|
|
581
|
+
#### Constructors
|
|
582
|
+
|
|
583
|
+
##### Constructor
|
|
584
|
+
|
|
585
|
+
```ts
|
|
586
|
+
new AppReleaseTransitionOwnershipConflictError(): AppReleaseTransitionOwnershipConflictError;
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
###### Returns
|
|
590
|
+
|
|
591
|
+
[`AppReleaseTransitionOwnershipConflictError`](#appreleasetransitionownershipconflicterror)
|
|
592
|
+
|
|
593
|
+
###### Overrides
|
|
594
|
+
|
|
595
|
+
```ts
|
|
596
|
+
Error.constructor;
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
---
|
|
600
|
+
|
|
601
|
+
### AppReleaseTransitionIdempotencyConflictError
|
|
602
|
+
|
|
603
|
+
Fixed failure when an idempotency key is reused for changed material input.
|
|
604
|
+
|
|
605
|
+
#### Extends
|
|
606
|
+
|
|
607
|
+
- `Error`
|
|
608
|
+
|
|
609
|
+
#### Constructors
|
|
610
|
+
|
|
611
|
+
##### Constructor
|
|
612
|
+
|
|
613
|
+
```ts
|
|
614
|
+
new AppReleaseTransitionIdempotencyConflictError(): AppReleaseTransitionIdempotencyConflictError;
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
###### Returns
|
|
618
|
+
|
|
619
|
+
[`AppReleaseTransitionIdempotencyConflictError`](#appreleasetransitionidempotencyconflicterror)
|
|
620
|
+
|
|
621
|
+
###### Overrides
|
|
622
|
+
|
|
623
|
+
```ts
|
|
624
|
+
Error.constructor;
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
---
|
|
628
|
+
|
|
629
|
+
### AppReleaseTransitionIdUnavailableError
|
|
630
|
+
|
|
631
|
+
Fixed, non-leaking failure when Cairn cannot issue a transition identity.
|
|
632
|
+
|
|
633
|
+
#### Extends
|
|
634
|
+
|
|
635
|
+
- `Error`
|
|
636
|
+
|
|
637
|
+
#### Constructors
|
|
638
|
+
|
|
639
|
+
##### Constructor
|
|
640
|
+
|
|
641
|
+
```ts
|
|
642
|
+
new AppReleaseTransitionIdUnavailableError(): AppReleaseTransitionIdUnavailableError;
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
###### Returns
|
|
646
|
+
|
|
647
|
+
[`AppReleaseTransitionIdUnavailableError`](#appreleasetransitionidunavailableerror)
|
|
648
|
+
|
|
649
|
+
###### Overrides
|
|
650
|
+
|
|
651
|
+
```ts
|
|
652
|
+
Error.constructor;
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
---
|
|
656
|
+
|
|
657
|
+
### AppReleasePublicWebsiteNotFoundError
|
|
658
|
+
|
|
659
|
+
Fixed non-leaking failure for malformed, absent, or unselected routes.
|
|
660
|
+
|
|
661
|
+
#### Extends
|
|
662
|
+
|
|
663
|
+
- `Error`
|
|
664
|
+
|
|
665
|
+
#### Constructors
|
|
666
|
+
|
|
667
|
+
##### Constructor
|
|
668
|
+
|
|
669
|
+
```ts
|
|
670
|
+
new AppReleasePublicWebsiteNotFoundError(): AppReleasePublicWebsiteNotFoundError;
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
###### Returns
|
|
674
|
+
|
|
675
|
+
[`AppReleasePublicWebsiteNotFoundError`](#appreleasepublicwebsitenotfounderror)
|
|
676
|
+
|
|
677
|
+
###### Overrides
|
|
678
|
+
|
|
679
|
+
```ts
|
|
680
|
+
Error.constructor;
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
### AppReleasePublicWebsiteUnavailableError
|
|
686
|
+
|
|
687
|
+
Fixed non-leaking failure when public delivery cannot be proven safe.
|
|
688
|
+
|
|
689
|
+
#### Extends
|
|
690
|
+
|
|
691
|
+
- `Error`
|
|
692
|
+
|
|
693
|
+
#### Constructors
|
|
694
|
+
|
|
695
|
+
##### Constructor
|
|
696
|
+
|
|
697
|
+
```ts
|
|
698
|
+
new AppReleasePublicWebsiteUnavailableError(): AppReleasePublicWebsiteUnavailableError;
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
###### Returns
|
|
702
|
+
|
|
703
|
+
[`AppReleasePublicWebsiteUnavailableError`](#appreleasepublicwebsiteunavailableerror)
|
|
704
|
+
|
|
705
|
+
###### Overrides
|
|
706
|
+
|
|
707
|
+
```ts
|
|
708
|
+
Error.constructor;
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
## Type Aliases
|
|
712
|
+
|
|
713
|
+
### AppRole
|
|
714
|
+
|
|
715
|
+
```ts
|
|
716
|
+
type AppRole = (typeof appRoles)[number];
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
One assignable App role.
|
|
720
|
+
|
|
721
|
+
---
|
|
722
|
+
|
|
723
|
+
### AppCapabilityId
|
|
724
|
+
|
|
725
|
+
```ts
|
|
726
|
+
type AppCapabilityId = (typeof appCapabilityIds)[number];
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
One requestable host capability id.
|
|
730
|
+
|
|
731
|
+
---
|
|
732
|
+
|
|
733
|
+
### AppApi
|
|
734
|
+
|
|
735
|
+
```ts
|
|
736
|
+
type AppApi = Readonly<{
|
|
737
|
+
methods: Readonly<
|
|
738
|
+
Record<
|
|
739
|
+
string,
|
|
740
|
+
Readonly<{
|
|
741
|
+
description: string;
|
|
742
|
+
input: object;
|
|
743
|
+
output: object;
|
|
744
|
+
effect: "read" | "write" | "external";
|
|
745
|
+
requires: readonly AppCapabilityId[];
|
|
746
|
+
pending?: true;
|
|
747
|
+
hidden?: true;
|
|
748
|
+
anonymous?: true;
|
|
749
|
+
}>
|
|
750
|
+
>
|
|
751
|
+
>;
|
|
752
|
+
toolFamily?: Readonly<{
|
|
753
|
+
name: string;
|
|
754
|
+
list: string;
|
|
755
|
+
call: string;
|
|
756
|
+
}>;
|
|
757
|
+
events?: Readonly<
|
|
758
|
+
Record<
|
|
759
|
+
string,
|
|
760
|
+
Readonly<{
|
|
761
|
+
description: string;
|
|
762
|
+
payload: object;
|
|
763
|
+
}>
|
|
764
|
+
>
|
|
765
|
+
>;
|
|
766
|
+
}>;
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
Build-generated method and event metadata. This data-only projection grants no
|
|
770
|
+
authority.
|
|
771
|
+
|
|
772
|
+
---
|
|
773
|
+
|
|
774
|
+
### AppHandler
|
|
775
|
+
|
|
776
|
+
```ts
|
|
777
|
+
type AppHandler = (typeof appHandlers)[number];
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
One shell navigation request an App can handle.
|
|
781
|
+
|
|
782
|
+
---
|
|
783
|
+
|
|
784
|
+
### AppDeclaredCommand
|
|
785
|
+
|
|
786
|
+
```ts
|
|
787
|
+
type AppDeclaredCommand = Readonly<{
|
|
788
|
+
id: string;
|
|
789
|
+
title: string;
|
|
790
|
+
category: string;
|
|
791
|
+
description?: string;
|
|
792
|
+
sigil?: string;
|
|
793
|
+
projections?: Readonly<{
|
|
794
|
+
bindings?: Readonly<{
|
|
795
|
+
order?: ... | ...;
|
|
796
|
+
}> & Readonly<{
|
|
797
|
+
values: readonly ...;
|
|
798
|
+
}>;
|
|
799
|
+
agent?: Readonly<{
|
|
800
|
+
order?: ... | ...;
|
|
801
|
+
}> & Readonly<{
|
|
802
|
+
keybind?: ... | ...;
|
|
803
|
+
}>;
|
|
804
|
+
help?: Readonly<{
|
|
805
|
+
order?: number;
|
|
806
|
+
}>;
|
|
807
|
+
menu?: Readonly<{
|
|
808
|
+
order?: number;
|
|
809
|
+
}>;
|
|
810
|
+
palette?: Readonly<{
|
|
811
|
+
order?: number;
|
|
812
|
+
}>;
|
|
813
|
+
slash?: Readonly<{
|
|
814
|
+
order?: ... | ...;
|
|
815
|
+
}> & Readonly<{
|
|
816
|
+
aliases: readonly ...;
|
|
817
|
+
}>;
|
|
818
|
+
}>;
|
|
819
|
+
}>;
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
One command an App declares so the backend can advertise it before the App is
|
|
823
|
+
open: the identity, labels and projections of a Whistle definition.
|
|
824
|
+
Availability, typed action schemas and slash argument grammars are runtime facts
|
|
825
|
+
the mounted App registers, so they are not part of the declaration.
|
|
826
|
+
|
|
827
|
+
---
|
|
828
|
+
|
|
829
|
+
### AppStorageScope
|
|
830
|
+
|
|
831
|
+
```ts
|
|
832
|
+
type AppStorageScope = (typeof appStorageScopes)[number];
|
|
833
|
+
```
|
|
834
|
+
|
|
835
|
+
The shared Team default or the calling member's private override.
|
|
836
|
+
|
|
837
|
+
---
|
|
838
|
+
|
|
839
|
+
### AppStorageKey
|
|
840
|
+
|
|
841
|
+
```ts
|
|
842
|
+
type AppStorageKey = Readonly<{
|
|
843
|
+
key: string;
|
|
844
|
+
scopes: readonly AppStorageScope[];
|
|
845
|
+
maxBytes: number;
|
|
846
|
+
}>;
|
|
847
|
+
```
|
|
848
|
+
|
|
849
|
+
One digest-covered key and the bounds its App agrees to use.
|
|
850
|
+
|
|
851
|
+
---
|
|
852
|
+
|
|
853
|
+
### AppDeclaration
|
|
854
|
+
|
|
855
|
+
```ts
|
|
856
|
+
type AppDeclaration = Readonly<{
|
|
857
|
+
api?: AppApi;
|
|
858
|
+
displayName?: string;
|
|
859
|
+
capabilities: readonly AppCapabilityId[];
|
|
860
|
+
calls?: readonly Readonly<{
|
|
861
|
+
appId: string;
|
|
862
|
+
methods: readonly string[];
|
|
863
|
+
}>[];
|
|
864
|
+
guidance?: string;
|
|
865
|
+
handlers: readonly AppHandler[];
|
|
866
|
+
receives?: readonly "git.push"[];
|
|
867
|
+
icon?: string;
|
|
868
|
+
roles: readonly AppRole[];
|
|
869
|
+
storage?: readonly AppStorageKey[];
|
|
870
|
+
commands?: readonly AppDeclaredCommand[];
|
|
871
|
+
gills?: readonly AppDeclaredGill[];
|
|
872
|
+
backend?: Readonly<{
|
|
873
|
+
bindings: readonly AppBackendBinding[];
|
|
874
|
+
sync?: Readonly<{
|
|
875
|
+
method: string;
|
|
876
|
+
}>;
|
|
877
|
+
}>;
|
|
878
|
+
}>;
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
What an App asks of the host, covered by its Release digest. Every App,
|
|
882
|
+
first-party or not, uses this same declaration; there is no other source.
|
|
883
|
+
|
|
884
|
+
---
|
|
885
|
+
|
|
886
|
+
### AppId
|
|
887
|
+
|
|
888
|
+
```ts
|
|
889
|
+
type AppId = string & object;
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
Opaque Global App identifier.
|
|
893
|
+
|
|
894
|
+
#### Type Declaration
|
|
895
|
+
|
|
896
|
+
| Name | Type |
|
|
897
|
+
| ---------------- | --------- |
|
|
898
|
+
| `appReleaseKind` | `"AppId"` |
|
|
899
|
+
|
|
900
|
+
---
|
|
901
|
+
|
|
902
|
+
### ReleaseId
|
|
903
|
+
|
|
904
|
+
```ts
|
|
905
|
+
type ReleaseId = string & object;
|
|
906
|
+
```
|
|
907
|
+
|
|
908
|
+
Opaque immutable Release identifier.
|
|
909
|
+
|
|
910
|
+
#### Type Declaration
|
|
911
|
+
|
|
912
|
+
| Name | Type |
|
|
913
|
+
| ---------------- | ------------- |
|
|
914
|
+
| `appReleaseKind` | `"ReleaseId"` |
|
|
915
|
+
|
|
916
|
+
---
|
|
917
|
+
|
|
918
|
+
### PublicSurfaceId
|
|
919
|
+
|
|
920
|
+
```ts
|
|
921
|
+
type PublicSurfaceId = string & object;
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
Opaque anonymous public-Surface identifier.
|
|
925
|
+
|
|
926
|
+
#### Type Declaration
|
|
927
|
+
|
|
928
|
+
| Name | Type |
|
|
929
|
+
| ---------------- | ------------------- |
|
|
930
|
+
| `appReleaseKind` | `"PublicSurfaceId"` |
|
|
931
|
+
|
|
932
|
+
---
|
|
933
|
+
|
|
934
|
+
### ArtifactRef
|
|
935
|
+
|
|
936
|
+
```ts
|
|
937
|
+
type ArtifactRef = string & object;
|
|
938
|
+
```
|
|
939
|
+
|
|
940
|
+
Opaque, bounded artifact locator for an injected reader.
|
|
941
|
+
|
|
942
|
+
#### Type Declaration
|
|
943
|
+
|
|
944
|
+
| Name | Type |
|
|
945
|
+
| ---------------- | --------------- |
|
|
946
|
+
| `appReleaseKind` | `"ArtifactRef"` |
|
|
947
|
+
|
|
948
|
+
---
|
|
949
|
+
|
|
950
|
+
### IdempotencyKey
|
|
951
|
+
|
|
952
|
+
```ts
|
|
953
|
+
type IdempotencyKey = string & object;
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
Caller-provided idempotency key for one control-plane operation.
|
|
957
|
+
|
|
958
|
+
#### Type Declaration
|
|
959
|
+
|
|
960
|
+
| Name | Type |
|
|
961
|
+
| ---------------- | ------------------ |
|
|
962
|
+
| `appReleaseKind` | `"IdempotencyKey"` |
|
|
963
|
+
|
|
964
|
+
---
|
|
965
|
+
|
|
966
|
+
### SourceRevision
|
|
967
|
+
|
|
968
|
+
```ts
|
|
969
|
+
type SourceRevision = string & object;
|
|
970
|
+
```
|
|
971
|
+
|
|
972
|
+
Pinned lowercase Git source revision.
|
|
973
|
+
|
|
974
|
+
#### Type Declaration
|
|
975
|
+
|
|
976
|
+
| Name | Type |
|
|
977
|
+
| ---------------- | ------------------ |
|
|
978
|
+
| `appReleaseKind` | `"SourceRevision"` |
|
|
979
|
+
|
|
980
|
+
---
|
|
981
|
+
|
|
982
|
+
### Sha256Digest
|
|
983
|
+
|
|
984
|
+
```ts
|
|
985
|
+
type Sha256Digest = string & object;
|
|
986
|
+
```
|
|
987
|
+
|
|
988
|
+
Lowercase SHA-256 digest with its `sha256:` prefix.
|
|
989
|
+
|
|
990
|
+
#### Type Declaration
|
|
991
|
+
|
|
992
|
+
| Name | Type |
|
|
993
|
+
| ---------------- | ---------------- |
|
|
994
|
+
| `appReleaseKind` | `"Sha256Digest"` |
|
|
995
|
+
|
|
996
|
+
---
|
|
997
|
+
|
|
998
|
+
### StableRoute
|
|
999
|
+
|
|
1000
|
+
```ts
|
|
1001
|
+
type StableRoute = string & object;
|
|
1002
|
+
```
|
|
1003
|
+
|
|
1004
|
+
Canonical, local origin-relative stable route for a public Surface.
|
|
1005
|
+
|
|
1006
|
+
#### Type Declaration
|
|
1007
|
+
|
|
1008
|
+
| Name | Type |
|
|
1009
|
+
| ---------------- | --------------- |
|
|
1010
|
+
| `appReleaseKind` | `"StableRoute"` |
|
|
1011
|
+
|
|
1012
|
+
---
|
|
1013
|
+
|
|
1014
|
+
### AppTransitionId
|
|
1015
|
+
|
|
1016
|
+
```ts
|
|
1017
|
+
type AppTransitionId = CairnId<"app-release", "transition">;
|
|
1018
|
+
```
|
|
1019
|
+
|
|
1020
|
+
Cairn-issued opaque identity for one owner-issued App transition.
|
|
1021
|
+
|
|
1022
|
+
---
|
|
1023
|
+
|
|
1024
|
+
### ImmutableArtifactBytes
|
|
1025
|
+
|
|
1026
|
+
```ts
|
|
1027
|
+
type ImmutableArtifactBytes = object;
|
|
1028
|
+
```
|
|
1029
|
+
|
|
1030
|
+
Immutable artifact bytes exposed only through fresh copies.
|
|
1031
|
+
|
|
1032
|
+
#### Properties
|
|
1033
|
+
|
|
1034
|
+
##### byteLength
|
|
1035
|
+
|
|
1036
|
+
```ts
|
|
1037
|
+
readonly byteLength: number;
|
|
1038
|
+
```
|
|
1039
|
+
|
|
1040
|
+
The immutable snapshot's bounded byte length.
|
|
1041
|
+
|
|
1042
|
+
#### Methods
|
|
1043
|
+
|
|
1044
|
+
##### copy()
|
|
1045
|
+
|
|
1046
|
+
```ts
|
|
1047
|
+
copy(): Uint8Array;
|
|
1048
|
+
```
|
|
1049
|
+
|
|
1050
|
+
Return an independently mutable copy of the immutable snapshot.
|
|
1051
|
+
|
|
1052
|
+
###### Returns
|
|
1053
|
+
|
|
1054
|
+
`Uint8Array`
|
|
1055
|
+
|
|
1056
|
+
---
|
|
1057
|
+
|
|
1058
|
+
### ArtifactProvenance
|
|
1059
|
+
|
|
1060
|
+
```ts
|
|
1061
|
+
type ArtifactProvenance = object;
|
|
1062
|
+
```
|
|
1063
|
+
|
|
1064
|
+
Source and build facts permanently bound to a Release artifact.
|
|
1065
|
+
|
|
1066
|
+
#### Properties
|
|
1067
|
+
|
|
1068
|
+
##### sourceRevision
|
|
1069
|
+
|
|
1070
|
+
```ts
|
|
1071
|
+
readonly sourceRevision: SourceRevision;
|
|
1072
|
+
```
|
|
1073
|
+
|
|
1074
|
+
Pinned source revision from which the artifact was built.
|
|
1075
|
+
|
|
1076
|
+
##### sourceTreeDigest
|
|
1077
|
+
|
|
1078
|
+
```ts
|
|
1079
|
+
readonly sourceTreeDigest: Sha256Digest;
|
|
1080
|
+
```
|
|
1081
|
+
|
|
1082
|
+
Digest of the source tree used for the build.
|
|
1083
|
+
|
|
1084
|
+
##### buildRecipeDigest
|
|
1085
|
+
|
|
1086
|
+
```ts
|
|
1087
|
+
readonly buildRecipeDigest: Sha256Digest;
|
|
1088
|
+
```
|
|
1089
|
+
|
|
1090
|
+
Digest of the deterministic build recipe.
|
|
1091
|
+
|
|
1092
|
+
---
|
|
1093
|
+
|
|
1094
|
+
### ReleaseArtifact
|
|
1095
|
+
|
|
1096
|
+
```ts
|
|
1097
|
+
type ReleaseArtifact = object;
|
|
1098
|
+
```
|
|
1099
|
+
|
|
1100
|
+
Immutable artifact identity and provenance bound to a Release.
|
|
1101
|
+
|
|
1102
|
+
#### Properties
|
|
1103
|
+
|
|
1104
|
+
##### artifactRef
|
|
1105
|
+
|
|
1106
|
+
```ts
|
|
1107
|
+
readonly artifactRef: ArtifactRef;
|
|
1108
|
+
```
|
|
1109
|
+
|
|
1110
|
+
Opaque reference resolved only by the injected reader.
|
|
1111
|
+
|
|
1112
|
+
##### artifactDigest
|
|
1113
|
+
|
|
1114
|
+
```ts
|
|
1115
|
+
readonly artifactDigest: Sha256Digest;
|
|
1116
|
+
```
|
|
1117
|
+
|
|
1118
|
+
Digest expected from the resolved artifact bytes.
|
|
1119
|
+
|
|
1120
|
+
##### provenance
|
|
1121
|
+
|
|
1122
|
+
```ts
|
|
1123
|
+
readonly provenance: ArtifactProvenance;
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
Write-once source and build provenance.
|
|
1127
|
+
|
|
1128
|
+
---
|
|
1129
|
+
|
|
1130
|
+
### App
|
|
1131
|
+
|
|
1132
|
+
```ts
|
|
1133
|
+
type App = object;
|
|
1134
|
+
```
|
|
1135
|
+
|
|
1136
|
+
Global App record owned by the catalog.
|
|
1137
|
+
|
|
1138
|
+
#### Properties
|
|
1139
|
+
|
|
1140
|
+
##### appId
|
|
1141
|
+
|
|
1142
|
+
```ts
|
|
1143
|
+
readonly appId: AppId;
|
|
1144
|
+
```
|
|
1145
|
+
|
|
1146
|
+
Opaque App identity.
|
|
1147
|
+
|
|
1148
|
+
---
|
|
1149
|
+
|
|
1150
|
+
### Release
|
|
1151
|
+
|
|
1152
|
+
```ts
|
|
1153
|
+
type Release = object;
|
|
1154
|
+
```
|
|
1155
|
+
|
|
1156
|
+
Immutable App Release record.
|
|
1157
|
+
|
|
1158
|
+
#### Properties
|
|
1159
|
+
|
|
1160
|
+
##### releaseId
|
|
1161
|
+
|
|
1162
|
+
```ts
|
|
1163
|
+
readonly releaseId: ReleaseId;
|
|
1164
|
+
```
|
|
1165
|
+
|
|
1166
|
+
Opaque immutable Release identity.
|
|
1167
|
+
|
|
1168
|
+
##### appId
|
|
1169
|
+
|
|
1170
|
+
```ts
|
|
1171
|
+
readonly appId: AppId;
|
|
1172
|
+
```
|
|
1173
|
+
|
|
1174
|
+
App that owns this Release.
|
|
1175
|
+
|
|
1176
|
+
##### artifact
|
|
1177
|
+
|
|
1178
|
+
```ts
|
|
1179
|
+
readonly artifact: ReleaseArtifact;
|
|
1180
|
+
```
|
|
1181
|
+
|
|
1182
|
+
Immutable artifact identity and provenance.
|
|
1183
|
+
|
|
1184
|
+
---
|
|
1185
|
+
|
|
1186
|
+
### PublicSurface
|
|
1187
|
+
|
|
1188
|
+
```ts
|
|
1189
|
+
type PublicSurface = object;
|
|
1190
|
+
```
|
|
1191
|
+
|
|
1192
|
+
Anonymous website Surface and its explicit App owner.
|
|
1193
|
+
|
|
1194
|
+
#### Properties
|
|
1195
|
+
|
|
1196
|
+
##### publicSurfaceId
|
|
1197
|
+
|
|
1198
|
+
```ts
|
|
1199
|
+
readonly publicSurfaceId: PublicSurfaceId;
|
|
1200
|
+
```
|
|
1201
|
+
|
|
1202
|
+
Opaque public-Surface identity.
|
|
1203
|
+
|
|
1204
|
+
##### appId
|
|
1205
|
+
|
|
1206
|
+
```ts
|
|
1207
|
+
readonly appId: AppId;
|
|
1208
|
+
```
|
|
1209
|
+
|
|
1210
|
+
App that owns this Surface.
|
|
1211
|
+
|
|
1212
|
+
##### stableRoute
|
|
1213
|
+
|
|
1214
|
+
```ts
|
|
1215
|
+
readonly stableRoute: StableRoute;
|
|
1216
|
+
```
|
|
1217
|
+
|
|
1218
|
+
Canonical local route locator for this Surface.
|
|
1219
|
+
|
|
1220
|
+
---
|
|
1221
|
+
|
|
1222
|
+
### PublicSurfacePublisher
|
|
1223
|
+
|
|
1224
|
+
```ts
|
|
1225
|
+
type PublicSurfacePublisher = Readonly<{
|
|
1226
|
+
kind: "customer" | "platform";
|
|
1227
|
+
teamId: string;
|
|
1228
|
+
userId: string;
|
|
1229
|
+
requestKey: string;
|
|
1230
|
+
}>;
|
|
1231
|
+
```
|
|
1232
|
+
|
|
1233
|
+
Admitted publisher identity retained separately from public Surface metadata.
|
|
1234
|
+
|
|
1235
|
+
---
|
|
1236
|
+
|
|
1237
|
+
### PublicSurfaceDefinition
|
|
1238
|
+
|
|
1239
|
+
```ts
|
|
1240
|
+
type PublicSurfaceDefinition = PublicSurface &
|
|
1241
|
+
Readonly<{
|
|
1242
|
+
publisher: PublicSurfacePublisher;
|
|
1243
|
+
}>;
|
|
1244
|
+
```
|
|
1245
|
+
|
|
1246
|
+
Creation requires explicit publisher custody; an ID is never authority.
|
|
1247
|
+
|
|
1248
|
+
---
|
|
1249
|
+
|
|
1250
|
+
### ArtifactMediaType
|
|
1251
|
+
|
|
1252
|
+
```ts
|
|
1253
|
+
type ArtifactMediaType =
|
|
1254
|
+
| "text/html; charset=utf-8"
|
|
1255
|
+
| "application/vnd.fungi.app-backend+json"
|
|
1256
|
+
| "application/vnd.fungi.app-assets+json"
|
|
1257
|
+
| "application/vnd.fungi.app+json";
|
|
1258
|
+
```
|
|
1259
|
+
|
|
1260
|
+
Supported immutable artifact representation formats.
|
|
1261
|
+
|
|
1262
|
+
---
|
|
1263
|
+
|
|
1264
|
+
### VerifiedAppArtifactReference
|
|
1265
|
+
|
|
1266
|
+
```ts
|
|
1267
|
+
type VerifiedAppArtifactReference = Readonly<{
|
|
1268
|
+
artifactRef: ArtifactRef;
|
|
1269
|
+
digest: Sha256Digest;
|
|
1270
|
+
mediaType: Exclude<ArtifactMediaType, "application/vnd.fungi.app+json">;
|
|
1271
|
+
version: string;
|
|
1272
|
+
byteLength: number;
|
|
1273
|
+
}>;
|
|
1274
|
+
```
|
|
1275
|
+
|
|
1276
|
+
One immutable child reference retained after App publication verification.
|
|
1277
|
+
|
|
1278
|
+
---
|
|
1279
|
+
|
|
1280
|
+
### DurableBackend
|
|
1281
|
+
|
|
1282
|
+
```ts
|
|
1283
|
+
type DurableBackend = Readonly<{
|
|
1284
|
+
runtime: Readonly<{
|
|
1285
|
+
kind: "durable-facet";
|
|
1286
|
+
stateSchema: number;
|
|
1287
|
+
}>;
|
|
1288
|
+
compatibilityDate: string;
|
|
1289
|
+
exportName: string;
|
|
1290
|
+
code: string;
|
|
1291
|
+
}>;
|
|
1292
|
+
```
|
|
1293
|
+
|
|
1294
|
+
Executable descriptor decoded from one verified backend child artifact.
|
|
1295
|
+
|
|
1296
|
+
---
|
|
1297
|
+
|
|
1298
|
+
### VerifiedBackendProfile
|
|
1299
|
+
|
|
1300
|
+
```ts
|
|
1301
|
+
type VerifiedBackendProfile = Omit<DurableBackend, "code">;
|
|
1302
|
+
```
|
|
1303
|
+
|
|
1304
|
+
Backend facts needed for admission, with executable code deliberately absent.
|
|
1305
|
+
|
|
1306
|
+
---
|
|
1307
|
+
|
|
1308
|
+
### VerifiedAppDescription
|
|
1309
|
+
|
|
1310
|
+
```ts
|
|
1311
|
+
type VerifiedAppDescription = Readonly<{
|
|
1312
|
+
format: "fungi-app-v1";
|
|
1313
|
+
ui: VerifiedAppArtifactReference | null;
|
|
1314
|
+
backend: Readonly<{
|
|
1315
|
+
artifact: VerifiedAppArtifactReference;
|
|
1316
|
+
profile: VerifiedBackendProfile;
|
|
1317
|
+
}> | null;
|
|
1318
|
+
declaration: AppDeclaration;
|
|
1319
|
+
}>;
|
|
1320
|
+
```
|
|
1321
|
+
|
|
1322
|
+
Normalized immutable App description persisted by the verification owner.
|
|
1323
|
+
|
|
1324
|
+
---
|
|
1325
|
+
|
|
1326
|
+
### ResolvedAppMetadata
|
|
1327
|
+
|
|
1328
|
+
```ts
|
|
1329
|
+
type ResolvedAppMetadata = Readonly<{
|
|
1330
|
+
release: Release;
|
|
1331
|
+
digest: Sha256Digest;
|
|
1332
|
+
description: VerifiedAppDescription;
|
|
1333
|
+
}>;
|
|
1334
|
+
```
|
|
1335
|
+
|
|
1336
|
+
Verified metadata returned without reading any artifact body.
|
|
1337
|
+
|
|
1338
|
+
---
|
|
1339
|
+
|
|
1340
|
+
### PublicSurfaceAuthority
|
|
1341
|
+
|
|
1342
|
+
```ts
|
|
1343
|
+
type PublicSurfaceAuthority = Readonly<{
|
|
1344
|
+
currentReleaseId: ReleaseId;
|
|
1345
|
+
sequence: number;
|
|
1346
|
+
app: App;
|
|
1347
|
+
release: Release;
|
|
1348
|
+
surface: PublicSurface;
|
|
1349
|
+
digest: Sha256Digest;
|
|
1350
|
+
revocation: ReleaseRevocation;
|
|
1351
|
+
description: VerifiedAppDescription;
|
|
1352
|
+
}>;
|
|
1353
|
+
```
|
|
1354
|
+
|
|
1355
|
+
Current metadata-only authority for one selected public Surface.
|
|
1356
|
+
|
|
1357
|
+
---
|
|
1358
|
+
|
|
1359
|
+
### VerifiedArtifactRead
|
|
1360
|
+
|
|
1361
|
+
```ts
|
|
1362
|
+
type VerifiedArtifactRead = object;
|
|
1363
|
+
```
|
|
1364
|
+
|
|
1365
|
+
Successful, verified artifact read.
|
|
1366
|
+
|
|
1367
|
+
#### Properties
|
|
1368
|
+
|
|
1369
|
+
##### kind
|
|
1370
|
+
|
|
1371
|
+
```ts
|
|
1372
|
+
readonly kind: "verified";
|
|
1373
|
+
```
|
|
1374
|
+
|
|
1375
|
+
Discriminant for a verified immutable representation snapshot.
|
|
1376
|
+
|
|
1377
|
+
##### digest
|
|
1378
|
+
|
|
1379
|
+
```ts
|
|
1380
|
+
readonly digest: Sha256Digest;
|
|
1381
|
+
```
|
|
1382
|
+
|
|
1383
|
+
Computed digest matching the requested digest.
|
|
1384
|
+
|
|
1385
|
+
##### mediaType
|
|
1386
|
+
|
|
1387
|
+
```ts
|
|
1388
|
+
readonly mediaType: ArtifactMediaType;
|
|
1389
|
+
```
|
|
1390
|
+
|
|
1391
|
+
Explicit artifact formats; an asset root is never interpreted as HTML or backend
|
|
1392
|
+
code.
|
|
1393
|
+
|
|
1394
|
+
##### bytes
|
|
1395
|
+
|
|
1396
|
+
```ts
|
|
1397
|
+
readonly bytes: ImmutableArtifactBytes;
|
|
1398
|
+
```
|
|
1399
|
+
|
|
1400
|
+
Immutable representation byte snapshot.
|
|
1401
|
+
|
|
1402
|
+
##### byteLength
|
|
1403
|
+
|
|
1404
|
+
```ts
|
|
1405
|
+
readonly byteLength: number;
|
|
1406
|
+
```
|
|
1407
|
+
|
|
1408
|
+
Byte length matching the immutable snapshot.
|
|
1409
|
+
|
|
1410
|
+
---
|
|
1411
|
+
|
|
1412
|
+
### AppUi
|
|
1413
|
+
|
|
1414
|
+
```ts
|
|
1415
|
+
type AppUi = Omit<VerifiedArtifactRead, "kind" | "mediaType"> & object;
|
|
1416
|
+
```
|
|
1417
|
+
|
|
1418
|
+
Verified UI representation; selection authority remains with its host.
|
|
1419
|
+
|
|
1420
|
+
#### Type Declaration
|
|
1421
|
+
|
|
1422
|
+
| Name | Type |
|
|
1423
|
+
| ----------- | ------------------------------------------------------------------------- |
|
|
1424
|
+
| `mediaType` | `"text/html; charset=utf-8"` \| `"application/vnd.fungi.app-assets+json"` |
|
|
1425
|
+
|
|
1426
|
+
---
|
|
1427
|
+
|
|
1428
|
+
### AppDescription
|
|
1429
|
+
|
|
1430
|
+
```ts
|
|
1431
|
+
type AppDescription = Readonly<{
|
|
1432
|
+
ui: AppUi | null;
|
|
1433
|
+
backend: Readonly<{
|
|
1434
|
+
digest: Sha256Digest;
|
|
1435
|
+
descriptor: DurableBackend;
|
|
1436
|
+
}> | null;
|
|
1437
|
+
}>;
|
|
1438
|
+
```
|
|
1439
|
+
|
|
1440
|
+
Normalized immutable code description shared by Surface and facet consumers.
|
|
1441
|
+
|
|
1442
|
+
---
|
|
1443
|
+
|
|
1444
|
+
### ResolvedApp
|
|
1445
|
+
|
|
1446
|
+
```ts
|
|
1447
|
+
type ResolvedApp = AppDescription &
|
|
1448
|
+
Readonly<{
|
|
1449
|
+
release: Release;
|
|
1450
|
+
digest: Sha256Digest;
|
|
1451
|
+
}>;
|
|
1452
|
+
```
|
|
1453
|
+
|
|
1454
|
+
One eligible Release with all declared executable parts resolved.
|
|
1455
|
+
|
|
1456
|
+
---
|
|
1457
|
+
|
|
1458
|
+
### ArtifactReadResult
|
|
1459
|
+
|
|
1460
|
+
```ts
|
|
1461
|
+
type ArtifactReadResult =
|
|
1462
|
+
| VerifiedArtifactRead
|
|
1463
|
+
| {
|
|
1464
|
+
kind: "unavailable";
|
|
1465
|
+
}
|
|
1466
|
+
| {
|
|
1467
|
+
kind: "missing";
|
|
1468
|
+
}
|
|
1469
|
+
| {
|
|
1470
|
+
kind: "digest-mismatch";
|
|
1471
|
+
actualDigest: Sha256Digest;
|
|
1472
|
+
};
|
|
1473
|
+
```
|
|
1474
|
+
|
|
1475
|
+
Closed result union returned by an injected artifact reader.
|
|
1476
|
+
|
|
1477
|
+
---
|
|
1478
|
+
|
|
1479
|
+
### ArtifactVerificationIntent
|
|
1480
|
+
|
|
1481
|
+
```ts
|
|
1482
|
+
type ArtifactVerificationIntent = "publication";
|
|
1483
|
+
```
|
|
1484
|
+
|
|
1485
|
+
Names the owner-controlled verification work requested for one read.
|
|
1486
|
+
|
|
1487
|
+
---
|
|
1488
|
+
|
|
1489
|
+
### ArtifactReader
|
|
1490
|
+
|
|
1491
|
+
```ts
|
|
1492
|
+
type ArtifactReader = object;
|
|
1493
|
+
```
|
|
1494
|
+
|
|
1495
|
+
Storage-neutral port that resolves an opaque reference and verifies bytes.
|
|
1496
|
+
|
|
1497
|
+
#### Methods
|
|
1498
|
+
|
|
1499
|
+
##### read()
|
|
1500
|
+
|
|
1501
|
+
```ts
|
|
1502
|
+
read(input): Promise<ArtifactReadResult>;
|
|
1503
|
+
```
|
|
1504
|
+
|
|
1505
|
+
Resolve and verify exactly one expected immutable artifact.
|
|
1506
|
+
|
|
1507
|
+
###### Parameters
|
|
1508
|
+
|
|
1509
|
+
| Parameter | Type | Description |
|
|
1510
|
+
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1511
|
+
| `input` | \{ `artifactRef`: [`ArtifactRef`](#artifactref); `expectedDigest`: [`Sha256Digest`](#sha256digest); `expectedObject?`: \{ `version`: `string`; `byteLength`: `number`; \}; `verification?`: [`ArtifactVerificationIntent`](#artifactverificationintent); \} | - |
|
|
1512
|
+
| `input.artifactRef` | [`ArtifactRef`](#artifactref) | Opaque artifact reference; never a storage capability. |
|
|
1513
|
+
| `input.expectedDigest` | [`Sha256Digest`](#sha256digest) | Digest that the resolved bytes must match. |
|
|
1514
|
+
| `input.expectedObject?` | \{ `version`: `string`; `byteLength`: `number`; \} | Child reference pins the native object version as well as its content. |
|
|
1515
|
+
| `input.expectedObject.version` | `string` | - |
|
|
1516
|
+
| `input.expectedObject.byteLength` | `number` | - |
|
|
1517
|
+
| `input.verification?` | [`ArtifactVerificationIntent`](#artifactverificationintent) | Publication asks the reader to verify every object named by an asset manifest. Omitted for ordinary delivery, which verifies one requested object at the asset handler boundary. |
|
|
1518
|
+
|
|
1519
|
+
###### Returns
|
|
1520
|
+
|
|
1521
|
+
`Promise`\<[`ArtifactReadResult`](#artifactreadresult)\>
|
|
1522
|
+
|
|
1523
|
+
---
|
|
1524
|
+
|
|
1525
|
+
### AppReleaseStoreFailure
|
|
1526
|
+
|
|
1527
|
+
```ts
|
|
1528
|
+
type AppReleaseStoreFailure = object;
|
|
1529
|
+
```
|
|
1530
|
+
|
|
1531
|
+
Closed infrastructure failure projected by an App Release store.
|
|
1532
|
+
|
|
1533
|
+
#### Properties
|
|
1534
|
+
|
|
1535
|
+
##### kind
|
|
1536
|
+
|
|
1537
|
+
```ts
|
|
1538
|
+
readonly kind: "unavailable";
|
|
1539
|
+
```
|
|
1540
|
+
|
|
1541
|
+
---
|
|
1542
|
+
|
|
1543
|
+
### AppReleaseStoreSuccess
|
|
1544
|
+
|
|
1545
|
+
```ts
|
|
1546
|
+
type AppReleaseStoreSuccess<Value> = object;
|
|
1547
|
+
```
|
|
1548
|
+
|
|
1549
|
+
Closed successful outcome for one App Release store operation.
|
|
1550
|
+
|
|
1551
|
+
#### Type Parameters
|
|
1552
|
+
|
|
1553
|
+
| Type Parameter |
|
|
1554
|
+
| -------------- |
|
|
1555
|
+
| `Value` |
|
|
1556
|
+
|
|
1557
|
+
#### Properties
|
|
1558
|
+
|
|
1559
|
+
##### kind
|
|
1560
|
+
|
|
1561
|
+
```ts
|
|
1562
|
+
readonly kind: "success";
|
|
1563
|
+
```
|
|
1564
|
+
|
|
1565
|
+
##### value
|
|
1566
|
+
|
|
1567
|
+
```ts
|
|
1568
|
+
readonly value: Value;
|
|
1569
|
+
```
|
|
1570
|
+
|
|
1571
|
+
---
|
|
1572
|
+
|
|
1573
|
+
### AppReleaseStoreOperationFailure
|
|
1574
|
+
|
|
1575
|
+
```ts
|
|
1576
|
+
type AppReleaseStoreOperationFailure = object;
|
|
1577
|
+
```
|
|
1578
|
+
|
|
1579
|
+
Closed failed outcome for one App Release store operation.
|
|
1580
|
+
|
|
1581
|
+
#### Properties
|
|
1582
|
+
|
|
1583
|
+
##### kind
|
|
1584
|
+
|
|
1585
|
+
```ts
|
|
1586
|
+
readonly kind: "failure";
|
|
1587
|
+
```
|
|
1588
|
+
|
|
1589
|
+
##### failure
|
|
1590
|
+
|
|
1591
|
+
```ts
|
|
1592
|
+
readonly failure: AppReleaseStoreFailure;
|
|
1593
|
+
```
|
|
1594
|
+
|
|
1595
|
+
---
|
|
1596
|
+
|
|
1597
|
+
### AppReleaseStoreResult
|
|
1598
|
+
|
|
1599
|
+
```ts
|
|
1600
|
+
type AppReleaseStoreResult<Value> =
|
|
1601
|
+
AppReleaseStoreSuccess<Value> | AppReleaseStoreOperationFailure;
|
|
1602
|
+
```
|
|
1603
|
+
|
|
1604
|
+
Closed envelope returned by every App Release store operation.
|
|
1605
|
+
|
|
1606
|
+
#### Type Parameters
|
|
1607
|
+
|
|
1608
|
+
| Type Parameter |
|
|
1609
|
+
| -------------- |
|
|
1610
|
+
| `Value` |
|
|
1611
|
+
|
|
1612
|
+
---
|
|
1613
|
+
|
|
1614
|
+
### AppRead
|
|
1615
|
+
|
|
1616
|
+
```ts
|
|
1617
|
+
type AppRead =
|
|
1618
|
+
| {
|
|
1619
|
+
kind: "found";
|
|
1620
|
+
app: App;
|
|
1621
|
+
}
|
|
1622
|
+
| {
|
|
1623
|
+
kind: "absent";
|
|
1624
|
+
};
|
|
1625
|
+
```
|
|
1626
|
+
|
|
1627
|
+
Explicit result of looking up one Global App.
|
|
1628
|
+
|
|
1629
|
+
---
|
|
1630
|
+
|
|
1631
|
+
### AppCreate
|
|
1632
|
+
|
|
1633
|
+
```ts
|
|
1634
|
+
type AppCreate =
|
|
1635
|
+
| {
|
|
1636
|
+
kind: "created";
|
|
1637
|
+
app: App;
|
|
1638
|
+
}
|
|
1639
|
+
| {
|
|
1640
|
+
kind: "existing";
|
|
1641
|
+
app: App;
|
|
1642
|
+
};
|
|
1643
|
+
```
|
|
1644
|
+
|
|
1645
|
+
Explicit result of atomically creating or observing one Global App.
|
|
1646
|
+
|
|
1647
|
+
---
|
|
1648
|
+
|
|
1649
|
+
### ReleaseRead
|
|
1650
|
+
|
|
1651
|
+
```ts
|
|
1652
|
+
type ReleaseRead =
|
|
1653
|
+
| {
|
|
1654
|
+
kind: "found";
|
|
1655
|
+
release: Release;
|
|
1656
|
+
}
|
|
1657
|
+
| {
|
|
1658
|
+
kind: "absent";
|
|
1659
|
+
};
|
|
1660
|
+
```
|
|
1661
|
+
|
|
1662
|
+
Explicit result of looking up one immutable Release.
|
|
1663
|
+
|
|
1664
|
+
---
|
|
1665
|
+
|
|
1666
|
+
### ReleaseCreate
|
|
1667
|
+
|
|
1668
|
+
```ts
|
|
1669
|
+
type ReleaseCreate =
|
|
1670
|
+
| {
|
|
1671
|
+
kind: "created";
|
|
1672
|
+
release: Release;
|
|
1673
|
+
}
|
|
1674
|
+
| {
|
|
1675
|
+
kind: "existing";
|
|
1676
|
+
release: Release;
|
|
1677
|
+
};
|
|
1678
|
+
```
|
|
1679
|
+
|
|
1680
|
+
Explicit result of atomically creating or observing one immutable Release.
|
|
1681
|
+
|
|
1682
|
+
---
|
|
1683
|
+
|
|
1684
|
+
### PublicSurfaceRead
|
|
1685
|
+
|
|
1686
|
+
```ts
|
|
1687
|
+
type PublicSurfaceRead =
|
|
1688
|
+
| {
|
|
1689
|
+
kind: "found";
|
|
1690
|
+
surface: PublicSurface;
|
|
1691
|
+
}
|
|
1692
|
+
| {
|
|
1693
|
+
kind: "absent";
|
|
1694
|
+
};
|
|
1695
|
+
```
|
|
1696
|
+
|
|
1697
|
+
Explicit result of looking up one App-owned anonymous public Surface.
|
|
1698
|
+
|
|
1699
|
+
---
|
|
1700
|
+
|
|
1701
|
+
### PublicSurfaceCreate
|
|
1702
|
+
|
|
1703
|
+
```ts
|
|
1704
|
+
type PublicSurfaceCreate =
|
|
1705
|
+
| {
|
|
1706
|
+
kind: "created";
|
|
1707
|
+
surface: PublicSurface;
|
|
1708
|
+
}
|
|
1709
|
+
| {
|
|
1710
|
+
kind: "existing";
|
|
1711
|
+
surface: PublicSurface;
|
|
1712
|
+
}
|
|
1713
|
+
| {
|
|
1714
|
+
kind: "conflict";
|
|
1715
|
+
};
|
|
1716
|
+
```
|
|
1717
|
+
|
|
1718
|
+
Explicit result of atomically creating or observing one public Surface.
|
|
1719
|
+
|
|
1720
|
+
---
|
|
1721
|
+
|
|
1722
|
+
### ReleaseVerification
|
|
1723
|
+
|
|
1724
|
+
```ts
|
|
1725
|
+
type ReleaseVerification =
|
|
1726
|
+
| {
|
|
1727
|
+
kind: "verified";
|
|
1728
|
+
digest: Sha256Digest;
|
|
1729
|
+
mediaType: "application/vnd.fungi.app+json";
|
|
1730
|
+
description: VerifiedAppDescription;
|
|
1731
|
+
}
|
|
1732
|
+
| {
|
|
1733
|
+
kind: "unverified";
|
|
1734
|
+
};
|
|
1735
|
+
```
|
|
1736
|
+
|
|
1737
|
+
Verification fact retained after a valid immutable artifact snapshot.
|
|
1738
|
+
|
|
1739
|
+
---
|
|
1740
|
+
|
|
1741
|
+
### ReleaseRevocation
|
|
1742
|
+
|
|
1743
|
+
```ts
|
|
1744
|
+
type ReleaseRevocation =
|
|
1745
|
+
| {
|
|
1746
|
+
kind: "active";
|
|
1747
|
+
}
|
|
1748
|
+
| {
|
|
1749
|
+
kind: "revoked";
|
|
1750
|
+
};
|
|
1751
|
+
```
|
|
1752
|
+
|
|
1753
|
+
Revocation fact retained independently from immutable Release bytes.
|
|
1754
|
+
|
|
1755
|
+
---
|
|
1756
|
+
|
|
1757
|
+
### ReleaseLifecycle
|
|
1758
|
+
|
|
1759
|
+
```ts
|
|
1760
|
+
type ReleaseLifecycle =
|
|
1761
|
+
| {
|
|
1762
|
+
kind: "found";
|
|
1763
|
+
release: Release;
|
|
1764
|
+
verification: ReleaseVerification;
|
|
1765
|
+
revocation: ReleaseRevocation;
|
|
1766
|
+
}
|
|
1767
|
+
| {
|
|
1768
|
+
kind: "absent";
|
|
1769
|
+
};
|
|
1770
|
+
```
|
|
1771
|
+
|
|
1772
|
+
Durable Release facts observed by transition policy.
|
|
1773
|
+
|
|
1774
|
+
---
|
|
1775
|
+
|
|
1776
|
+
### PublicSurfaceLifecycle
|
|
1777
|
+
|
|
1778
|
+
```ts
|
|
1779
|
+
type PublicSurfaceLifecycle =
|
|
1780
|
+
| {
|
|
1781
|
+
kind: "found";
|
|
1782
|
+
surface: PublicSurface;
|
|
1783
|
+
selection:
|
|
1784
|
+
| {
|
|
1785
|
+
kind: "none";
|
|
1786
|
+
}
|
|
1787
|
+
| {
|
|
1788
|
+
kind: "selected";
|
|
1789
|
+
releaseId: ReleaseId;
|
|
1790
|
+
};
|
|
1791
|
+
}
|
|
1792
|
+
| {
|
|
1793
|
+
kind: "absent";
|
|
1794
|
+
};
|
|
1795
|
+
```
|
|
1796
|
+
|
|
1797
|
+
Durable public-Surface selection fact observed by transition policy.
|
|
1798
|
+
|
|
1799
|
+
---
|
|
1800
|
+
|
|
1801
|
+
### PublicWebsiteRepresentation
|
|
1802
|
+
|
|
1803
|
+
```ts
|
|
1804
|
+
type PublicWebsiteRepresentation = Readonly<{
|
|
1805
|
+
releaseId: ReleaseId;
|
|
1806
|
+
digest: Sha256Digest;
|
|
1807
|
+
mediaType: "text/html; charset=utf-8";
|
|
1808
|
+
byteLength: number;
|
|
1809
|
+
bytes: ImmutableArtifactBytes;
|
|
1810
|
+
}>;
|
|
1811
|
+
```
|
|
1812
|
+
|
|
1813
|
+
Safe immutable website bytes selected by the current Surface authority.
|
|
1814
|
+
|
|
1815
|
+
---
|
|
1816
|
+
|
|
1817
|
+
### PublicAssetBuildRepresentation
|
|
1818
|
+
|
|
1819
|
+
```ts
|
|
1820
|
+
type PublicAssetBuildRepresentation = Omit<
|
|
1821
|
+
PublicWebsiteRepresentation,
|
|
1822
|
+
"mediaType"
|
|
1823
|
+
> &
|
|
1824
|
+
object;
|
|
1825
|
+
```
|
|
1826
|
+
|
|
1827
|
+
Verified root manifest selected by the existing public Surface owner.
|
|
1828
|
+
|
|
1829
|
+
#### Type Declaration
|
|
1830
|
+
|
|
1831
|
+
| Name | Type |
|
|
1832
|
+
| ----------- | ----------------------------------------- |
|
|
1833
|
+
| `mediaType` | `"application/vnd.fungi.app-assets+json"` |
|
|
1834
|
+
|
|
1835
|
+
---
|
|
1836
|
+
|
|
1837
|
+
### TransitionLookup
|
|
1838
|
+
|
|
1839
|
+
```ts
|
|
1840
|
+
type TransitionLookup =
|
|
1841
|
+
| {
|
|
1842
|
+
kind: "absent";
|
|
1843
|
+
}
|
|
1844
|
+
| {
|
|
1845
|
+
kind: "found";
|
|
1846
|
+
receipt: TransitionReceipt;
|
|
1847
|
+
}
|
|
1848
|
+
| {
|
|
1849
|
+
kind: "conflict";
|
|
1850
|
+
};
|
|
1851
|
+
```
|
|
1852
|
+
|
|
1853
|
+
Result of looking up an operation-scoped idempotency key.
|
|
1854
|
+
|
|
1855
|
+
---
|
|
1856
|
+
|
|
1857
|
+
### TransitionPersistence
|
|
1858
|
+
|
|
1859
|
+
```ts
|
|
1860
|
+
type TransitionPersistence =
|
|
1861
|
+
| {
|
|
1862
|
+
kind: "created";
|
|
1863
|
+
receipt: TransitionReceipt;
|
|
1864
|
+
}
|
|
1865
|
+
| {
|
|
1866
|
+
kind: "existing";
|
|
1867
|
+
receipt: TransitionReceipt;
|
|
1868
|
+
}
|
|
1869
|
+
| {
|
|
1870
|
+
kind: "conflict";
|
|
1871
|
+
}
|
|
1872
|
+
| {
|
|
1873
|
+
kind: "identity-collision";
|
|
1874
|
+
}
|
|
1875
|
+
| {
|
|
1876
|
+
kind: "lifecycle-conflict";
|
|
1877
|
+
};
|
|
1878
|
+
```
|
|
1879
|
+
|
|
1880
|
+
Result of atomically recording one transition and its receipt.
|
|
1881
|
+
|
|
1882
|
+
---
|
|
1883
|
+
|
|
1884
|
+
### PromiseAppReleaseStore
|
|
1885
|
+
|
|
1886
|
+
```ts
|
|
1887
|
+
type PromiseAppReleaseStore = object;
|
|
1888
|
+
```
|
|
1889
|
+
|
|
1890
|
+
Effect-free projection of the App Release store boundary.
|
|
1891
|
+
|
|
1892
|
+
#### Properties
|
|
1893
|
+
|
|
1894
|
+
##### readReleaseLifecycle?
|
|
1895
|
+
|
|
1896
|
+
```ts
|
|
1897
|
+
readonly optional readReleaseLifecycle?: (releaseId) => Promise<AppReleaseStoreResult<ReleaseLifecycle>>;
|
|
1898
|
+
```
|
|
1899
|
+
|
|
1900
|
+
Read immutable Release facts needed by owner-issued transitions.
|
|
1901
|
+
|
|
1902
|
+
###### Parameters
|
|
1903
|
+
|
|
1904
|
+
| Parameter | Type |
|
|
1905
|
+
| ----------- | ------------------------- |
|
|
1906
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
1907
|
+
|
|
1908
|
+
###### Returns
|
|
1909
|
+
|
|
1910
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`ReleaseLifecycle`](#releaselifecycle)\>\>
|
|
1911
|
+
|
|
1912
|
+
##### recordReleaseVerification?
|
|
1913
|
+
|
|
1914
|
+
```ts
|
|
1915
|
+
readonly optional recordReleaseVerification?: (input) => Promise<AppReleaseStoreResult<{
|
|
1916
|
+
kind: "recorded";
|
|
1917
|
+
}>>;
|
|
1918
|
+
```
|
|
1919
|
+
|
|
1920
|
+
Atomically retain that one Release artifact was successfully verified.
|
|
1921
|
+
|
|
1922
|
+
###### Parameters
|
|
1923
|
+
|
|
1924
|
+
| Parameter | Type |
|
|
1925
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1926
|
+
| `input` | \{ `releaseId`: [`ReleaseId`](#releaseid); `digest`: [`Sha256Digest`](#sha256digest); `mediaType`: `"application/vnd.fungi.app+json"`; `description`: [`VerifiedAppDescription`](#verifiedappdescription); \} |
|
|
1927
|
+
| `input.releaseId` | [`ReleaseId`](#releaseid) |
|
|
1928
|
+
| `input.digest` | [`Sha256Digest`](#sha256digest) |
|
|
1929
|
+
| `input.mediaType` | `"application/vnd.fungi.app+json"` |
|
|
1930
|
+
| `input.description` | [`VerifiedAppDescription`](#verifiedappdescription) |
|
|
1931
|
+
|
|
1932
|
+
###### Returns
|
|
1933
|
+
|
|
1934
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<\{ `kind`:
|
|
1935
|
+
`"recorded"`; \}\>\>
|
|
1936
|
+
|
|
1937
|
+
##### readTransition?
|
|
1938
|
+
|
|
1939
|
+
```ts
|
|
1940
|
+
readonly optional readTransition?: (request) => Promise<AppReleaseStoreResult<TransitionLookup>>;
|
|
1941
|
+
```
|
|
1942
|
+
|
|
1943
|
+
Read one operation-scoped transition receipt before policy checks.
|
|
1944
|
+
|
|
1945
|
+
###### Parameters
|
|
1946
|
+
|
|
1947
|
+
| Parameter | Type |
|
|
1948
|
+
| --------- | ----------------------------------------- |
|
|
1949
|
+
| `request` | [`ReleaseTransition`](#releasetransition) |
|
|
1950
|
+
|
|
1951
|
+
###### Returns
|
|
1952
|
+
|
|
1953
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`TransitionLookup`](#transitionlookup)\>\>
|
|
1954
|
+
|
|
1955
|
+
##### persistTransition?
|
|
1956
|
+
|
|
1957
|
+
```ts
|
|
1958
|
+
readonly optional persistTransition?: (request, receipt) => Promise<AppReleaseStoreResult<TransitionPersistence>>;
|
|
1959
|
+
```
|
|
1960
|
+
|
|
1961
|
+
Atomically persist a validated transition and its terminal receipt.
|
|
1962
|
+
|
|
1963
|
+
###### Parameters
|
|
1964
|
+
|
|
1965
|
+
| Parameter | Type |
|
|
1966
|
+
| --------- | ----------------------------------------- |
|
|
1967
|
+
| `request` | [`ReleaseTransition`](#releasetransition) |
|
|
1968
|
+
| `receipt` | [`TransitionReceipt`](#transitionreceipt) |
|
|
1969
|
+
|
|
1970
|
+
###### Returns
|
|
1971
|
+
|
|
1972
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`TransitionPersistence`](#transitionpersistence)\>\>
|
|
1973
|
+
|
|
1974
|
+
#### Methods
|
|
1975
|
+
|
|
1976
|
+
##### readApp()
|
|
1977
|
+
|
|
1978
|
+
```ts
|
|
1979
|
+
readApp(appId): Promise<AppReleaseStoreResult<AppRead>>;
|
|
1980
|
+
```
|
|
1981
|
+
|
|
1982
|
+
Look up one App by its opaque identifier.
|
|
1983
|
+
|
|
1984
|
+
###### Parameters
|
|
1985
|
+
|
|
1986
|
+
| Parameter | Type |
|
|
1987
|
+
| --------- | ----------------- |
|
|
1988
|
+
| `appId` | [`AppId`](#appid) |
|
|
1989
|
+
|
|
1990
|
+
###### Returns
|
|
1991
|
+
|
|
1992
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`AppRead`](#appread)\>\>
|
|
1993
|
+
|
|
1994
|
+
##### createAppIfAbsent()
|
|
1995
|
+
|
|
1996
|
+
```ts
|
|
1997
|
+
createAppIfAbsent(app): Promise<AppReleaseStoreResult<AppCreate>>;
|
|
1998
|
+
```
|
|
1999
|
+
|
|
2000
|
+
Create an App if absent, or return the immutable existing record.
|
|
2001
|
+
|
|
2002
|
+
###### Parameters
|
|
2003
|
+
|
|
2004
|
+
| Parameter | Type |
|
|
2005
|
+
| --------- | ------------- |
|
|
2006
|
+
| `app` | [`App`](#app) |
|
|
2007
|
+
|
|
2008
|
+
###### Returns
|
|
2009
|
+
|
|
2010
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`AppCreate`](#appcreate)\>\>
|
|
2011
|
+
|
|
2012
|
+
##### readRelease()
|
|
2013
|
+
|
|
2014
|
+
```ts
|
|
2015
|
+
readRelease(releaseId): Promise<AppReleaseStoreResult<ReleaseRead>>;
|
|
2016
|
+
```
|
|
2017
|
+
|
|
2018
|
+
Look up one immutable Release by its opaque identifier.
|
|
2019
|
+
|
|
2020
|
+
###### Parameters
|
|
2021
|
+
|
|
2022
|
+
| Parameter | Type |
|
|
2023
|
+
| ----------- | ------------------------- |
|
|
2024
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2025
|
+
|
|
2026
|
+
###### Returns
|
|
2027
|
+
|
|
2028
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`ReleaseRead`](#releaseread)\>\>
|
|
2029
|
+
|
|
2030
|
+
##### createReleaseIfAbsent()
|
|
2031
|
+
|
|
2032
|
+
```ts
|
|
2033
|
+
createReleaseIfAbsent(release): Promise<AppReleaseStoreResult<ReleaseCreate>>;
|
|
2034
|
+
```
|
|
2035
|
+
|
|
2036
|
+
Create a Release if absent, or return the immutable existing record.
|
|
2037
|
+
|
|
2038
|
+
###### Parameters
|
|
2039
|
+
|
|
2040
|
+
| Parameter | Type |
|
|
2041
|
+
| --------- | --------------------- |
|
|
2042
|
+
| `release` | [`Release`](#release) |
|
|
2043
|
+
|
|
2044
|
+
###### Returns
|
|
2045
|
+
|
|
2046
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`ReleaseCreate`](#releasecreate)\>\>
|
|
2047
|
+
|
|
2048
|
+
##### readPublicSurface()
|
|
2049
|
+
|
|
2050
|
+
```ts
|
|
2051
|
+
readPublicSurface(publicSurfaceId): Promise<AppReleaseStoreResult<PublicSurfaceRead>>;
|
|
2052
|
+
```
|
|
2053
|
+
|
|
2054
|
+
Look up one public Surface by its opaque identifier.
|
|
2055
|
+
|
|
2056
|
+
###### Parameters
|
|
2057
|
+
|
|
2058
|
+
| Parameter | Type |
|
|
2059
|
+
| ----------------- | ------------------------------------- |
|
|
2060
|
+
| `publicSurfaceId` | [`PublicSurfaceId`](#publicsurfaceid) |
|
|
2061
|
+
|
|
2062
|
+
###### Returns
|
|
2063
|
+
|
|
2064
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`PublicSurfaceRead`](#publicsurfaceread)\>\>
|
|
2065
|
+
|
|
2066
|
+
##### createPublicSurfaceIfAbsent()
|
|
2067
|
+
|
|
2068
|
+
```ts
|
|
2069
|
+
createPublicSurfaceIfAbsent(surface): Promise<AppReleaseStoreResult<PublicSurfaceCreate>>;
|
|
2070
|
+
```
|
|
2071
|
+
|
|
2072
|
+
Create a public Surface if absent, or return the immutable existing record.
|
|
2073
|
+
|
|
2074
|
+
###### Parameters
|
|
2075
|
+
|
|
2076
|
+
| Parameter | Type |
|
|
2077
|
+
| --------- | ----------------------------------------------------- |
|
|
2078
|
+
| `surface` | [`PublicSurfaceDefinition`](#publicsurfacedefinition) |
|
|
2079
|
+
|
|
2080
|
+
###### Returns
|
|
2081
|
+
|
|
2082
|
+
`Promise`\<[`AppReleaseStoreResult`](#appreleasestoreresult)\<[`PublicSurfaceCreate`](#publicsurfacecreate)\>\>
|
|
2083
|
+
|
|
2084
|
+
---
|
|
2085
|
+
|
|
2086
|
+
### ReleaseTransition
|
|
2087
|
+
|
|
2088
|
+
```ts
|
|
2089
|
+
type ReleaseTransition =
|
|
2090
|
+
| {
|
|
2091
|
+
kind: "promotion";
|
|
2092
|
+
publicSurfaceId: PublicSurfaceId;
|
|
2093
|
+
releaseId: ReleaseId;
|
|
2094
|
+
idempotencyKey: IdempotencyKey;
|
|
2095
|
+
}
|
|
2096
|
+
| {
|
|
2097
|
+
kind: "rollback";
|
|
2098
|
+
publicSurfaceId: PublicSurfaceId;
|
|
2099
|
+
releaseId: ReleaseId;
|
|
2100
|
+
idempotencyKey: IdempotencyKey;
|
|
2101
|
+
}
|
|
2102
|
+
| {
|
|
2103
|
+
kind: "revocation";
|
|
2104
|
+
releaseId: ReleaseId;
|
|
2105
|
+
idempotencyKey: IdempotencyKey;
|
|
2106
|
+
};
|
|
2107
|
+
```
|
|
2108
|
+
|
|
2109
|
+
Owner-issued transition request.
|
|
2110
|
+
|
|
2111
|
+
---
|
|
2112
|
+
|
|
2113
|
+
### TransitionReceipt
|
|
2114
|
+
|
|
2115
|
+
```ts
|
|
2116
|
+
type TransitionReceipt = object;
|
|
2117
|
+
```
|
|
2118
|
+
|
|
2119
|
+
Terminal receipt for an owner-issued transition.
|
|
2120
|
+
|
|
2121
|
+
#### Properties
|
|
2122
|
+
|
|
2123
|
+
##### transition
|
|
2124
|
+
|
|
2125
|
+
```ts
|
|
2126
|
+
readonly transition: ReleaseTransition;
|
|
2127
|
+
```
|
|
2128
|
+
|
|
2129
|
+
##### transitionId
|
|
2130
|
+
|
|
2131
|
+
```ts
|
|
2132
|
+
readonly transitionId: AppTransitionId;
|
|
2133
|
+
```
|
|
2134
|
+
|
|
2135
|
+
---
|
|
2136
|
+
|
|
2137
|
+
### AppReleaseCatalogOptions
|
|
2138
|
+
|
|
2139
|
+
```ts
|
|
2140
|
+
type AppReleaseCatalogOptions = object;
|
|
2141
|
+
```
|
|
2142
|
+
|
|
2143
|
+
Inputs for the catalog factory.
|
|
2144
|
+
|
|
2145
|
+
#### Properties
|
|
2146
|
+
|
|
2147
|
+
##### artifactReader
|
|
2148
|
+
|
|
2149
|
+
```ts
|
|
2150
|
+
readonly artifactReader: ArtifactReader;
|
|
2151
|
+
```
|
|
2152
|
+
|
|
2153
|
+
##### store
|
|
2154
|
+
|
|
2155
|
+
```ts
|
|
2156
|
+
readonly store: PromiseAppReleaseStore;
|
|
2157
|
+
```
|
|
2158
|
+
|
|
2159
|
+
##### artifactPolicy?
|
|
2160
|
+
|
|
2161
|
+
```ts
|
|
2162
|
+
readonly optional artifactPolicy?: object;
|
|
2163
|
+
```
|
|
2164
|
+
|
|
2165
|
+
###### maxBytes
|
|
2166
|
+
|
|
2167
|
+
```ts
|
|
2168
|
+
readonly maxBytes: number;
|
|
2169
|
+
```
|
|
2170
|
+
|
|
2171
|
+
###### maxManifestBytes?
|
|
2172
|
+
|
|
2173
|
+
```ts
|
|
2174
|
+
readonly optional maxManifestBytes?: number;
|
|
2175
|
+
```
|
|
2176
|
+
|
|
2177
|
+
---
|
|
2178
|
+
|
|
2179
|
+
### AppReleaseCatalog
|
|
2180
|
+
|
|
2181
|
+
```ts
|
|
2182
|
+
type AppReleaseCatalog = object;
|
|
2183
|
+
```
|
|
2184
|
+
|
|
2185
|
+
Public App Release catalog and public-website resolution seam.
|
|
2186
|
+
|
|
2187
|
+
#### Methods
|
|
2188
|
+
|
|
2189
|
+
##### createApp()
|
|
2190
|
+
|
|
2191
|
+
```ts
|
|
2192
|
+
createApp(app): Promise<App>;
|
|
2193
|
+
```
|
|
2194
|
+
|
|
2195
|
+
Create an App once and return the canonical stored record.
|
|
2196
|
+
|
|
2197
|
+
###### Parameters
|
|
2198
|
+
|
|
2199
|
+
| Parameter | Type |
|
|
2200
|
+
| --------- | ------------- |
|
|
2201
|
+
| `app` | [`App`](#app) |
|
|
2202
|
+
|
|
2203
|
+
###### Returns
|
|
2204
|
+
|
|
2205
|
+
`Promise`\<[`App`](#app)\>
|
|
2206
|
+
|
|
2207
|
+
##### createRelease()
|
|
2208
|
+
|
|
2209
|
+
```ts
|
|
2210
|
+
createRelease(release): Promise<Release>;
|
|
2211
|
+
```
|
|
2212
|
+
|
|
2213
|
+
Create a Release once and return the canonical stored record.
|
|
2214
|
+
|
|
2215
|
+
###### Parameters
|
|
2216
|
+
|
|
2217
|
+
| Parameter | Type |
|
|
2218
|
+
| --------- | --------------------- |
|
|
2219
|
+
| `release` | [`Release`](#release) |
|
|
2220
|
+
|
|
2221
|
+
###### Returns
|
|
2222
|
+
|
|
2223
|
+
`Promise`\<[`Release`](#release)\>
|
|
2224
|
+
|
|
2225
|
+
##### verifyReleaseArtifact()
|
|
2226
|
+
|
|
2227
|
+
```ts
|
|
2228
|
+
verifyReleaseArtifact(releaseId): Promise<VerifiedArtifactRead>;
|
|
2229
|
+
```
|
|
2230
|
+
|
|
2231
|
+
Resolve and verify the immutable artifact bound to a Release.
|
|
2232
|
+
|
|
2233
|
+
###### Parameters
|
|
2234
|
+
|
|
2235
|
+
| Parameter | Type |
|
|
2236
|
+
| ----------- | ------------------------- |
|
|
2237
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2238
|
+
|
|
2239
|
+
###### Returns
|
|
2240
|
+
|
|
2241
|
+
`Promise`\<[`VerifiedArtifactRead`](#verifiedartifactread)\>
|
|
2242
|
+
|
|
2243
|
+
##### resolveEligibleReleaseArtifact()
|
|
2244
|
+
|
|
2245
|
+
```ts
|
|
2246
|
+
resolveEligibleReleaseArtifact(releaseId): Promise<VerifiedArtifactRead & object>;
|
|
2247
|
+
```
|
|
2248
|
+
|
|
2249
|
+
Read one verified, active Release snapshot and recheck its lifecycle. The caller
|
|
2250
|
+
owns selection authorization and must resolve before each use.
|
|
2251
|
+
|
|
2252
|
+
###### Parameters
|
|
2253
|
+
|
|
2254
|
+
| Parameter | Type |
|
|
2255
|
+
| ----------- | ------------------------- |
|
|
2256
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2257
|
+
|
|
2258
|
+
###### Returns
|
|
2259
|
+
|
|
2260
|
+
`Promise`\<[`VerifiedArtifactRead`](#verifiedartifactread) & `object`\>
|
|
2261
|
+
|
|
2262
|
+
##### resolveEligibleApp()
|
|
2263
|
+
|
|
2264
|
+
```ts
|
|
2265
|
+
resolveEligibleApp(releaseId): Promise<ResolvedApp>;
|
|
2266
|
+
```
|
|
2267
|
+
|
|
2268
|
+
Resolve the UI and backend bound by one eligible immutable Release.
|
|
2269
|
+
|
|
2270
|
+
###### Parameters
|
|
2271
|
+
|
|
2272
|
+
| Parameter | Type |
|
|
2273
|
+
| ----------- | ------------------------- |
|
|
2274
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2275
|
+
|
|
2276
|
+
###### Returns
|
|
2277
|
+
|
|
2278
|
+
`Promise`\<[`ResolvedApp`](#resolvedapp)\>
|
|
2279
|
+
|
|
2280
|
+
##### resolveEligibleAppMetadata()
|
|
2281
|
+
|
|
2282
|
+
```ts
|
|
2283
|
+
resolveEligibleAppMetadata(releaseId): Promise<Readonly<{
|
|
2284
|
+
release: Release;
|
|
2285
|
+
digest: Sha256Digest;
|
|
2286
|
+
description: VerifiedAppDescription;
|
|
2287
|
+
}>>;
|
|
2288
|
+
```
|
|
2289
|
+
|
|
2290
|
+
Resolve verified App metadata without reading any artifact body.
|
|
2291
|
+
|
|
2292
|
+
###### Parameters
|
|
2293
|
+
|
|
2294
|
+
| Parameter | Type |
|
|
2295
|
+
| ----------- | ------------------------- |
|
|
2296
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2297
|
+
|
|
2298
|
+
###### Returns
|
|
2299
|
+
|
|
2300
|
+
`Promise`\<`Readonly`\<\{ `release`: [`Release`](#release); `digest`:
|
|
2301
|
+
[`Sha256Digest`](#sha256digest); `description`:
|
|
2302
|
+
[`VerifiedAppDescription`](#verifiedappdescription); \}\>\>
|
|
2303
|
+
|
|
2304
|
+
##### resolvePublicSurfaceAuthority()
|
|
2305
|
+
|
|
2306
|
+
```ts
|
|
2307
|
+
resolvePublicSurfaceAuthority(stableRoute): Promise<Readonly<{
|
|
2308
|
+
currentReleaseId: ReleaseId;
|
|
2309
|
+
sequence: number;
|
|
2310
|
+
app: App;
|
|
2311
|
+
release: Release;
|
|
2312
|
+
surface: PublicSurface;
|
|
2313
|
+
digest: Sha256Digest;
|
|
2314
|
+
revocation: ReleaseRevocation;
|
|
2315
|
+
description: VerifiedAppDescription;
|
|
2316
|
+
}>>;
|
|
2317
|
+
```
|
|
2318
|
+
|
|
2319
|
+
Resolve one selected Surface's current metadata authority without bodies.
|
|
2320
|
+
|
|
2321
|
+
###### Parameters
|
|
2322
|
+
|
|
2323
|
+
| Parameter | Type |
|
|
2324
|
+
| ------------- | ----------------------------- |
|
|
2325
|
+
| `stableRoute` | [`StableRoute`](#stableroute) |
|
|
2326
|
+
|
|
2327
|
+
###### Returns
|
|
2328
|
+
|
|
2329
|
+
`Promise`\<`Readonly`\<\{ `currentReleaseId`: [`ReleaseId`](#releaseid);
|
|
2330
|
+
`sequence`: `number`; `app`: [`App`](#app); `release`: [`Release`](#release);
|
|
2331
|
+
`surface`: [`PublicSurface`](#publicsurface); `digest`:
|
|
2332
|
+
[`Sha256Digest`](#sha256digest); `revocation`:
|
|
2333
|
+
[`ReleaseRevocation`](#releaserevocation); `description`:
|
|
2334
|
+
[`VerifiedAppDescription`](#verifiedappdescription); \}\>\>
|
|
2335
|
+
|
|
2336
|
+
##### resolvePublicSurfaceAuthorityVersion()
|
|
2337
|
+
|
|
2338
|
+
```ts
|
|
2339
|
+
resolvePublicSurfaceAuthorityVersion(stableRoute, releaseId): Promise<Readonly<{
|
|
2340
|
+
currentReleaseId: ReleaseId;
|
|
2341
|
+
sequence: number;
|
|
2342
|
+
app: App;
|
|
2343
|
+
release: Release;
|
|
2344
|
+
surface: PublicSurface;
|
|
2345
|
+
digest: Sha256Digest;
|
|
2346
|
+
revocation: ReleaseRevocation;
|
|
2347
|
+
description: VerifiedAppDescription;
|
|
2348
|
+
}>>;
|
|
2349
|
+
```
|
|
2350
|
+
|
|
2351
|
+
Resolve one previously selected Release's current metadata authority.
|
|
2352
|
+
|
|
2353
|
+
###### Parameters
|
|
2354
|
+
|
|
2355
|
+
| Parameter | Type |
|
|
2356
|
+
| ------------- | ----------------------------- |
|
|
2357
|
+
| `stableRoute` | [`StableRoute`](#stableroute) |
|
|
2358
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2359
|
+
|
|
2360
|
+
###### Returns
|
|
2361
|
+
|
|
2362
|
+
`Promise`\<`Readonly`\<\{ `currentReleaseId`: [`ReleaseId`](#releaseid);
|
|
2363
|
+
`sequence`: `number`; `app`: [`App`](#app); `release`: [`Release`](#release);
|
|
2364
|
+
`surface`: [`PublicSurface`](#publicsurface); `digest`:
|
|
2365
|
+
[`Sha256Digest`](#sha256digest); `revocation`:
|
|
2366
|
+
[`ReleaseRevocation`](#releaserevocation); `description`:
|
|
2367
|
+
[`VerifiedAppDescription`](#verifiedappdescription); \}\>\>
|
|
2368
|
+
|
|
2369
|
+
##### createPublicSurface()
|
|
2370
|
+
|
|
2371
|
+
```ts
|
|
2372
|
+
createPublicSurface(surface): Promise<PublicSurface>;
|
|
2373
|
+
```
|
|
2374
|
+
|
|
2375
|
+
Create a public Surface once and return the canonical stored record.
|
|
2376
|
+
|
|
2377
|
+
###### Parameters
|
|
2378
|
+
|
|
2379
|
+
| Parameter | Type |
|
|
2380
|
+
| --------- | ----------------------------------------------------- |
|
|
2381
|
+
| `surface` | [`PublicSurfaceDefinition`](#publicsurfacedefinition) |
|
|
2382
|
+
|
|
2383
|
+
###### Returns
|
|
2384
|
+
|
|
2385
|
+
`Promise`\<[`PublicSurface`](#publicsurface)\>
|
|
2386
|
+
|
|
2387
|
+
##### transition()
|
|
2388
|
+
|
|
2389
|
+
```ts
|
|
2390
|
+
transition(request): Promise<TransitionReceipt>;
|
|
2391
|
+
```
|
|
2392
|
+
|
|
2393
|
+
Apply one owner-issued promotion, rollback, or revocation request.
|
|
2394
|
+
|
|
2395
|
+
###### Parameters
|
|
2396
|
+
|
|
2397
|
+
| Parameter | Type |
|
|
2398
|
+
| --------- | ----------------------------------------- |
|
|
2399
|
+
| `request` | [`ReleaseTransition`](#releasetransition) |
|
|
2400
|
+
|
|
2401
|
+
###### Returns
|
|
2402
|
+
|
|
2403
|
+
`Promise`\<[`TransitionReceipt`](#transitionreceipt)\>
|
|
2404
|
+
|
|
2405
|
+
##### resolvePublicAssetBuild()
|
|
2406
|
+
|
|
2407
|
+
```ts
|
|
2408
|
+
resolvePublicAssetBuild(stableRoute): Promise<PublicAssetBuildRepresentation>;
|
|
2409
|
+
```
|
|
2410
|
+
|
|
2411
|
+
Resolve an asset-build root through the same current Surface authority.
|
|
2412
|
+
|
|
2413
|
+
###### Parameters
|
|
2414
|
+
|
|
2415
|
+
| Parameter | Type |
|
|
2416
|
+
| ------------- | ----------------------------- |
|
|
2417
|
+
| `stableRoute` | [`StableRoute`](#stableroute) |
|
|
2418
|
+
|
|
2419
|
+
###### Returns
|
|
2420
|
+
|
|
2421
|
+
`Promise`\<[`PublicAssetBuildRepresentation`](#publicassetbuildrepresentation)\>
|
|
2422
|
+
|
|
2423
|
+
##### resolvePublicAssetBuildVersion()
|
|
2424
|
+
|
|
2425
|
+
```ts
|
|
2426
|
+
resolvePublicAssetBuildVersion(stableRoute, releaseId): Promise<PublicAssetBuildRepresentation>;
|
|
2427
|
+
```
|
|
2428
|
+
|
|
2429
|
+
Resolve a pinned asset-build root through Surface authority.
|
|
2430
|
+
|
|
2431
|
+
###### Parameters
|
|
2432
|
+
|
|
2433
|
+
| Parameter | Type |
|
|
2434
|
+
| ------------- | ----------------------------- |
|
|
2435
|
+
| `stableRoute` | [`StableRoute`](#stableroute) |
|
|
2436
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2437
|
+
|
|
2438
|
+
###### Returns
|
|
2439
|
+
|
|
2440
|
+
`Promise`\<[`PublicAssetBuildRepresentation`](#publicassetbuildrepresentation)\>
|
|
2441
|
+
|
|
2442
|
+
##### resolvePublicWebsite()
|
|
2443
|
+
|
|
2444
|
+
```ts
|
|
2445
|
+
resolvePublicWebsite(stableRoute): Promise<Readonly<{
|
|
2446
|
+
releaseId: ReleaseId;
|
|
2447
|
+
digest: Sha256Digest;
|
|
2448
|
+
mediaType: "text/html; charset=utf-8";
|
|
2449
|
+
byteLength: number;
|
|
2450
|
+
bytes: ImmutableArtifactBytes;
|
|
2451
|
+
}>>;
|
|
2452
|
+
```
|
|
2453
|
+
|
|
2454
|
+
Resolve the current eligible immutable website representation.
|
|
2455
|
+
|
|
2456
|
+
###### Parameters
|
|
2457
|
+
|
|
2458
|
+
| Parameter | Type |
|
|
2459
|
+
| ------------- | ----------------------------- |
|
|
2460
|
+
| `stableRoute` | [`StableRoute`](#stableroute) |
|
|
2461
|
+
|
|
2462
|
+
###### Returns
|
|
2463
|
+
|
|
2464
|
+
`Promise`\<`Readonly`\<\{ `releaseId`: [`ReleaseId`](#releaseid); `digest`:
|
|
2465
|
+
[`Sha256Digest`](#sha256digest); `mediaType`: `"text/html; charset=utf-8"`;
|
|
2466
|
+
`byteLength`: `number`; `bytes`:
|
|
2467
|
+
[`ImmutableArtifactBytes`](#immutableartifactbytes); \}\>\>
|
|
2468
|
+
|
|
2469
|
+
##### resolvePublicWebsiteVersion()
|
|
2470
|
+
|
|
2471
|
+
```ts
|
|
2472
|
+
resolvePublicWebsiteVersion(stableRoute, releaseId): Promise<Readonly<{
|
|
2473
|
+
releaseId: ReleaseId;
|
|
2474
|
+
digest: Sha256Digest;
|
|
2475
|
+
mediaType: "text/html; charset=utf-8";
|
|
2476
|
+
byteLength: number;
|
|
2477
|
+
bytes: ImmutableArtifactBytes;
|
|
2478
|
+
}>>;
|
|
2479
|
+
```
|
|
2480
|
+
|
|
2481
|
+
Resolve a pinned eligible immutable website representation.
|
|
2482
|
+
|
|
2483
|
+
###### Parameters
|
|
2484
|
+
|
|
2485
|
+
| Parameter | Type |
|
|
2486
|
+
| ------------- | ----------------------------- |
|
|
2487
|
+
| `stableRoute` | [`StableRoute`](#stableroute) |
|
|
2488
|
+
| `releaseId` | [`ReleaseId`](#releaseid) |
|
|
2489
|
+
|
|
2490
|
+
###### Returns
|
|
2491
|
+
|
|
2492
|
+
`Promise`\<`Readonly`\<\{ `releaseId`: [`ReleaseId`](#releaseid); `digest`:
|
|
2493
|
+
[`Sha256Digest`](#sha256digest); `mediaType`: `"text/html; charset=utf-8"`;
|
|
2494
|
+
`byteLength`: `number`; `bytes`:
|
|
2495
|
+
[`ImmutableArtifactBytes`](#immutableartifactbytes); \}\>\>
|
|
2496
|
+
|
|
2497
|
+
---
|
|
2498
|
+
|
|
2499
|
+
### AppReleaseParserName
|
|
2500
|
+
|
|
2501
|
+
```ts
|
|
2502
|
+
type AppReleaseParserName =
|
|
2503
|
+
| "AppId"
|
|
2504
|
+
| "ReleaseId"
|
|
2505
|
+
| "PublicSurfaceId"
|
|
2506
|
+
| "ArtifactRef"
|
|
2507
|
+
| "IdempotencyKey"
|
|
2508
|
+
| "SourceRevision"
|
|
2509
|
+
| "Sha256Digest"
|
|
2510
|
+
| "StableRoute"
|
|
2511
|
+
| "AppTransitionId";
|
|
2512
|
+
```
|
|
2513
|
+
|
|
2514
|
+
Names the parser boundary that rejected an untrusted value.
|
|
2515
|
+
|
|
2516
|
+
---
|
|
2517
|
+
|
|
2518
|
+
### AppReleaseCommandName
|
|
2519
|
+
|
|
2520
|
+
```ts
|
|
2521
|
+
type AppReleaseCommandName =
|
|
2522
|
+
| "createApp"
|
|
2523
|
+
| "createRelease"
|
|
2524
|
+
| "verifyReleaseArtifact"
|
|
2525
|
+
| "resolveEligibleReleaseArtifact"
|
|
2526
|
+
| "resolveEligibleAppMetadata"
|
|
2527
|
+
| "resolvePublicSurfaceAuthority"
|
|
2528
|
+
| "resolvePublicSurfaceAuthorityVersion"
|
|
2529
|
+
| "createPublicSurface"
|
|
2530
|
+
| "transition";
|
|
2531
|
+
```
|
|
2532
|
+
|
|
2533
|
+
Names a public catalog command whose hostile input was rejected.
|
|
2534
|
+
|
|
2535
|
+
## Variables
|
|
2536
|
+
|
|
2537
|
+
### appRoles
|
|
2538
|
+
|
|
2539
|
+
```ts
|
|
2540
|
+
const appRoles: readonly [
|
|
2541
|
+
"dashboard",
|
|
2542
|
+
"inbox",
|
|
2543
|
+
"files",
|
|
2544
|
+
"media",
|
|
2545
|
+
"sessions",
|
|
2546
|
+
"terminal",
|
|
2547
|
+
];
|
|
2548
|
+
```
|
|
2549
|
+
|
|
2550
|
+
Roles a user may assign to an App: the shell routes "open my inbox", file
|
|
2551
|
+
navigation, media and Session conversations to the App the Team chose.
|
|
2552
|
+
`dashboard` marks an App that can open as a Team's dashboard; the Team's shell
|
|
2553
|
+
selection, not a role choice, picks among them. Extend this list here; the Hub
|
|
2554
|
+
role projection then requires the new role. A role's intent and payload wire
|
|
2555
|
+
format lives in `@fungi.computer/agar/roles`.
|
|
2556
|
+
|
|
2557
|
+
---
|
|
2558
|
+
|
|
2559
|
+
### appCapabilityIds
|
|
2560
|
+
|
|
2561
|
+
```ts
|
|
2562
|
+
const appCapabilityIds: readonly [
|
|
2563
|
+
"agent.list",
|
|
2564
|
+
"agent.manage",
|
|
2565
|
+
"agent.rename",
|
|
2566
|
+
"agent.toolPolicy",
|
|
2567
|
+
"agent.read",
|
|
2568
|
+
"agent.send",
|
|
2569
|
+
"computer.list",
|
|
2570
|
+
"computer.readFile",
|
|
2571
|
+
"computer.writeFile",
|
|
2572
|
+
"computer.execute",
|
|
2573
|
+
"llm.generation",
|
|
2574
|
+
"media.generation",
|
|
2575
|
+
"games:servers",
|
|
2576
|
+
"git.repository",
|
|
2577
|
+
"apps.open",
|
|
2578
|
+
"apps.call",
|
|
2579
|
+
"app.storage",
|
|
2580
|
+
"app.events.emit",
|
|
2581
|
+
"team.workbenchHost",
|
|
2582
|
+
"marketplace.browse",
|
|
2583
|
+
"marketplace.purchase",
|
|
2584
|
+
"workflow.run",
|
|
2585
|
+
"workflow.publish",
|
|
2586
|
+
"workflow.arm",
|
|
2587
|
+
"world",
|
|
2588
|
+
"channels.read",
|
|
2589
|
+
"channels.personal.manage",
|
|
2590
|
+
];
|
|
2591
|
+
```
|
|
2592
|
+
|
|
2593
|
+
Host capabilities an App may request. A request is never authority; the Team's
|
|
2594
|
+
installation grants decide. Extend this list here.
|
|
2595
|
+
|
|
2596
|
+
---
|
|
2597
|
+
|
|
2598
|
+
### appHandlers
|
|
2599
|
+
|
|
2600
|
+
```ts
|
|
2601
|
+
const appHandlers: readonly ["file.open"];
|
|
2602
|
+
```
|
|
2603
|
+
|
|
2604
|
+
Navigation requests an App can handle for the shell.
|
|
2605
|
+
|
|
2606
|
+
---
|
|
2607
|
+
|
|
2608
|
+
### appStorageScopes
|
|
2609
|
+
|
|
2610
|
+
```ts
|
|
2611
|
+
const appStorageScopes: readonly ["team", "member"];
|
|
2612
|
+
```
|
|
2613
|
+
|
|
2614
|
+
A declared layer of the App's own JSON data; never a cross-Team scope.
|
|
2615
|
+
|
|
2616
|
+
---
|
|
2617
|
+
|
|
2618
|
+
### emptyAppDeclaration
|
|
2619
|
+
|
|
2620
|
+
```ts
|
|
2621
|
+
const emptyAppDeclaration: AppDeclaration;
|
|
2622
|
+
```
|
|
2623
|
+
|
|
2624
|
+
The declaration of an App that asks for nothing.
|
|
2625
|
+
|
|
2626
|
+
---
|
|
2627
|
+
|
|
2628
|
+
### parseAppId
|
|
2629
|
+
|
|
2630
|
+
```ts
|
|
2631
|
+
const parseAppId: (input) => AppId;
|
|
2632
|
+
```
|
|
2633
|
+
|
|
2634
|
+
Parse an opaque Global App identifier.
|
|
2635
|
+
|
|
2636
|
+
#### Parameters
|
|
2637
|
+
|
|
2638
|
+
| Parameter | Type |
|
|
2639
|
+
| --------- | --------- |
|
|
2640
|
+
| `input` | `unknown` |
|
|
2641
|
+
|
|
2642
|
+
#### Returns
|
|
2643
|
+
|
|
2644
|
+
[`AppId`](#appid)
|
|
2645
|
+
|
|
2646
|
+
---
|
|
2647
|
+
|
|
2648
|
+
### parseAppTransitionId
|
|
2649
|
+
|
|
2650
|
+
```ts
|
|
2651
|
+
const parseAppTransitionId: (input) => AppTransitionId;
|
|
2652
|
+
```
|
|
2653
|
+
|
|
2654
|
+
Parse a Cairn-issued App transition identity.
|
|
2655
|
+
|
|
2656
|
+
#### Parameters
|
|
2657
|
+
|
|
2658
|
+
| Parameter | Type |
|
|
2659
|
+
| --------- | --------- |
|
|
2660
|
+
| `input` | `unknown` |
|
|
2661
|
+
|
|
2662
|
+
#### Returns
|
|
2663
|
+
|
|
2664
|
+
[`AppTransitionId`](#apptransitionid)
|
|
2665
|
+
|
|
2666
|
+
---
|
|
2667
|
+
|
|
2668
|
+
### parseReleaseId
|
|
2669
|
+
|
|
2670
|
+
```ts
|
|
2671
|
+
const parseReleaseId: (input) => ReleaseId;
|
|
2672
|
+
```
|
|
2673
|
+
|
|
2674
|
+
Parse an opaque immutable Release identifier.
|
|
2675
|
+
|
|
2676
|
+
#### Parameters
|
|
2677
|
+
|
|
2678
|
+
| Parameter | Type |
|
|
2679
|
+
| --------- | --------- |
|
|
2680
|
+
| `input` | `unknown` |
|
|
2681
|
+
|
|
2682
|
+
#### Returns
|
|
2683
|
+
|
|
2684
|
+
[`ReleaseId`](#releaseid)
|
|
2685
|
+
|
|
2686
|
+
---
|
|
2687
|
+
|
|
2688
|
+
### parsePublicSurfaceId
|
|
2689
|
+
|
|
2690
|
+
```ts
|
|
2691
|
+
const parsePublicSurfaceId: (input) => PublicSurfaceId;
|
|
2692
|
+
```
|
|
2693
|
+
|
|
2694
|
+
Parse an opaque anonymous public-Surface identifier.
|
|
2695
|
+
|
|
2696
|
+
#### Parameters
|
|
2697
|
+
|
|
2698
|
+
| Parameter | Type |
|
|
2699
|
+
| --------- | --------- |
|
|
2700
|
+
| `input` | `unknown` |
|
|
2701
|
+
|
|
2702
|
+
#### Returns
|
|
2703
|
+
|
|
2704
|
+
[`PublicSurfaceId`](#publicsurfaceid)
|
|
2705
|
+
|
|
2706
|
+
---
|
|
2707
|
+
|
|
2708
|
+
### parseArtifactRef
|
|
2709
|
+
|
|
2710
|
+
```ts
|
|
2711
|
+
const parseArtifactRef: (input) => ArtifactRef;
|
|
2712
|
+
```
|
|
2713
|
+
|
|
2714
|
+
Parse an opaque bounded artifact reference.
|
|
2715
|
+
|
|
2716
|
+
#### Parameters
|
|
2717
|
+
|
|
2718
|
+
| Parameter | Type |
|
|
2719
|
+
| --------- | --------- |
|
|
2720
|
+
| `input` | `unknown` |
|
|
2721
|
+
|
|
2722
|
+
#### Returns
|
|
2723
|
+
|
|
2724
|
+
[`ArtifactRef`](#artifactref)
|
|
2725
|
+
|
|
2726
|
+
---
|
|
2727
|
+
|
|
2728
|
+
### parseIdempotencyKey
|
|
2729
|
+
|
|
2730
|
+
```ts
|
|
2731
|
+
const parseIdempotencyKey: (input) => IdempotencyKey;
|
|
2732
|
+
```
|
|
2733
|
+
|
|
2734
|
+
Parse a caller-provided idempotency key.
|
|
2735
|
+
|
|
2736
|
+
#### Parameters
|
|
2737
|
+
|
|
2738
|
+
| Parameter | Type |
|
|
2739
|
+
| --------- | --------- |
|
|
2740
|
+
| `input` | `unknown` |
|
|
2741
|
+
|
|
2742
|
+
#### Returns
|
|
2743
|
+
|
|
2744
|
+
[`IdempotencyKey`](#idempotencykey)
|
|
2745
|
+
|
|
2746
|
+
---
|
|
2747
|
+
|
|
2748
|
+
### parseSourceRevision
|
|
2749
|
+
|
|
2750
|
+
```ts
|
|
2751
|
+
const parseSourceRevision: (input) => SourceRevision;
|
|
2752
|
+
```
|
|
2753
|
+
|
|
2754
|
+
Parse a pinned lowercase Git source revision.
|
|
2755
|
+
|
|
2756
|
+
#### Parameters
|
|
2757
|
+
|
|
2758
|
+
| Parameter | Type |
|
|
2759
|
+
| --------- | --------- |
|
|
2760
|
+
| `input` | `unknown` |
|
|
2761
|
+
|
|
2762
|
+
#### Returns
|
|
2763
|
+
|
|
2764
|
+
[`SourceRevision`](#sourcerevision)
|
|
2765
|
+
|
|
2766
|
+
---
|
|
2767
|
+
|
|
2768
|
+
### parseSha256Digest
|
|
2769
|
+
|
|
2770
|
+
```ts
|
|
2771
|
+
const parseSha256Digest: (input) => Sha256Digest;
|
|
2772
|
+
```
|
|
2773
|
+
|
|
2774
|
+
Parse a lowercase SHA-256 digest.
|
|
2775
|
+
|
|
2776
|
+
#### Parameters
|
|
2777
|
+
|
|
2778
|
+
| Parameter | Type |
|
|
2779
|
+
| --------- | --------- |
|
|
2780
|
+
| `input` | `unknown` |
|
|
2781
|
+
|
|
2782
|
+
#### Returns
|
|
2783
|
+
|
|
2784
|
+
[`Sha256Digest`](#sha256digest)
|
|
2785
|
+
|
|
2786
|
+
---
|
|
2787
|
+
|
|
2788
|
+
### parseStableRoute
|
|
2789
|
+
|
|
2790
|
+
```ts
|
|
2791
|
+
const parseStableRoute: (input) => StableRoute;
|
|
2792
|
+
```
|
|
2793
|
+
|
|
2794
|
+
Parse a canonical local origin-relative stable route.
|
|
2795
|
+
|
|
2796
|
+
#### Parameters
|
|
2797
|
+
|
|
2798
|
+
| Parameter | Type |
|
|
2799
|
+
| --------- | --------- |
|
|
2800
|
+
| `input` | `unknown` |
|
|
2801
|
+
|
|
2802
|
+
#### Returns
|
|
2803
|
+
|
|
2804
|
+
[`StableRoute`](#stableroute)
|
|
2805
|
+
|
|
2806
|
+
## Functions
|
|
2807
|
+
|
|
2808
|
+
### isEmptyAppDeclaration()
|
|
2809
|
+
|
|
2810
|
+
```ts
|
|
2811
|
+
function isEmptyAppDeclaration(declaration): boolean;
|
|
2812
|
+
```
|
|
2813
|
+
|
|
2814
|
+
An empty declaration is omitted from the manifest to keep digests stable.
|
|
2815
|
+
|
|
2816
|
+
#### Parameters
|
|
2817
|
+
|
|
2818
|
+
| Parameter | Type |
|
|
2819
|
+
| ------------- | ----------------------------------- |
|
|
2820
|
+
| `declaration` | [`AppDeclaration`](#appdeclaration) |
|
|
2821
|
+
|
|
2822
|
+
#### Returns
|
|
2823
|
+
|
|
2824
|
+
`boolean`
|
|
2825
|
+
|
|
2826
|
+
---
|
|
2827
|
+
|
|
2828
|
+
### issuePublicSurfaceId()
|
|
2829
|
+
|
|
2830
|
+
```ts
|
|
2831
|
+
function issuePublicSurfaceId(): PublicSurfaceId;
|
|
2832
|
+
```
|
|
2833
|
+
|
|
2834
|
+
Publisher issues customer Surface identities through Cairn, never from slugs.
|
|
2835
|
+
|
|
2836
|
+
#### Returns
|
|
2837
|
+
|
|
2838
|
+
[`PublicSurfaceId`](#publicsurfaceid)
|
|
2839
|
+
|
|
2840
|
+
---
|
|
2841
|
+
|
|
2842
|
+
### createAppReleaseCatalog()
|
|
2843
|
+
|
|
2844
|
+
```ts
|
|
2845
|
+
function createAppReleaseCatalog(options): AppReleaseCatalog;
|
|
2846
|
+
```
|
|
2847
|
+
|
|
2848
|
+
Create the App Release catalog.
|
|
2849
|
+
|
|
2850
|
+
The default Promise facade adapts each foreign port once before calling the same
|
|
2851
|
+
Effect-native core.
|
|
2852
|
+
|
|
2853
|
+
#### Parameters
|
|
2854
|
+
|
|
2855
|
+
| Parameter | Type |
|
|
2856
|
+
| --------- | ------------------------------------------------------- |
|
|
2857
|
+
| `options` | [`AppReleaseCatalogOptions`](#appreleasecatalogoptions) |
|
|
2858
|
+
|
|
2859
|
+
#### Returns
|
|
2860
|
+
|
|
2861
|
+
[`AppReleaseCatalog`](#appreleasecatalog)
|
|
2862
|
+
|
|
2863
|
+
## References
|
|
2864
|
+
|
|
2865
|
+
### AppBackendBinding
|
|
2866
|
+
|
|
2867
|
+
Re-exports
|
|
2868
|
+
[AppBackendBinding](app-backend-binding-vocabulary.md#appbackendbinding)
|