@haverstack/core 0.42.0 → 0.44.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 +6 -9
- package/dist/access.d.ts +36 -34
- package/dist/access.d.ts.map +1 -1
- package/dist/access.js +51 -100
- package/dist/access.js.map +1 -1
- package/dist/adapter/combine.d.ts.map +1 -1
- package/dist/adapter/combine.js +14 -7
- package/dist/adapter/combine.js.map +1 -1
- package/dist/adapter/copy.d.ts +27 -0
- package/dist/adapter/copy.d.ts.map +1 -0
- package/dist/adapter/copy.js +105 -0
- package/dist/adapter/copy.js.map +1 -0
- package/dist/adapter/index.d.ts +9 -4
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/adapter/index.js +6 -3
- package/dist/adapter/index.js.map +1 -1
- package/dist/adapter/reach.d.ts +14 -0
- package/dist/adapter/reach.d.ts.map +1 -0
- package/dist/adapter/reach.js +31 -0
- package/dist/adapter/reach.js.map +1 -0
- package/dist/adapter/seed.d.ts +13 -0
- package/dist/adapter/seed.d.ts.map +1 -0
- package/dist/adapter/seed.js +26 -0
- package/dist/adapter/seed.js.map +1 -0
- package/dist/associations/identity.d.ts +18 -42
- package/dist/associations/identity.d.ts.map +1 -1
- package/dist/associations/identity.js +60 -84
- package/dist/associations/identity.js.map +1 -1
- package/dist/associations/validation.d.ts +1 -8
- package/dist/associations/validation.d.ts.map +1 -1
- package/dist/associations/validation.js +3 -30
- package/dist/associations/validation.js.map +1 -1
- package/dist/collection.d.ts +7 -11
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +24 -34
- package/dist/collection.js.map +1 -1
- package/dist/content-match.d.ts +2 -2
- package/dist/content-match.js +2 -2
- package/dist/errors.d.ts +41 -12
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +56 -15
- package/dist/errors.js.map +1 -1
- package/dist/grants.d.ts +18 -6
- package/dist/grants.d.ts.map +1 -1
- package/dist/grants.js +48 -37
- package/dist/grants.js.map +1 -1
- package/dist/hash.d.ts +8 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +14 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +29 -5
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +69 -44
- package/dist/install.js.map +1 -1
- package/dist/lazy.d.ts +13 -0
- package/dist/lazy.d.ts.map +1 -0
- package/dist/lazy.js +27 -0
- package/dist/lazy.js.map +1 -0
- package/dist/merge.d.ts +1 -1
- package/dist/merge.js +1 -1
- package/dist/query-validation.d.ts +41 -28
- package/dist/query-validation.d.ts.map +1 -1
- package/dist/query-validation.js +85 -71
- package/dist/query-validation.js.map +1 -1
- package/dist/record-changes.d.ts +12 -36
- package/dist/record-changes.d.ts.map +1 -1
- package/dist/record-changes.js +9 -98
- package/dist/record-changes.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -5
- package/dist/schema.js.map +1 -1
- package/dist/scoped-stack/authority-snapshot.d.ts +37 -0
- package/dist/scoped-stack/authority-snapshot.d.ts.map +1 -0
- package/dist/scoped-stack/authority-snapshot.js +49 -0
- package/dist/scoped-stack/authority-snapshot.js.map +1 -0
- package/dist/scoped-stack/authority.d.ts +69 -51
- package/dist/scoped-stack/authority.d.ts.map +1 -1
- package/dist/scoped-stack/authority.js +189 -153
- package/dist/scoped-stack/authority.js.map +1 -1
- package/dist/scoped-stack/family-policy.d.ts +59 -0
- package/dist/scoped-stack/family-policy.d.ts.map +1 -0
- package/dist/scoped-stack/family-policy.js +68 -0
- package/dist/scoped-stack/family-policy.js.map +1 -0
- package/dist/scoped-stack/scoped-stack.d.ts +73 -86
- package/dist/scoped-stack/scoped-stack.d.ts.map +1 -1
- package/dist/scoped-stack/scoped-stack.js +279 -337
- package/dist/scoped-stack/scoped-stack.js.map +1 -1
- package/dist/scoped-stack/subscription.d.ts +14 -33
- package/dist/scoped-stack/subscription.d.ts.map +1 -1
- package/dist/scoped-stack/subscription.js +16 -57
- package/dist/scoped-stack/subscription.js.map +1 -1
- package/dist/stack/arguments.d.ts +27 -0
- package/dist/stack/arguments.d.ts.map +1 -0
- package/dist/stack/arguments.js +53 -0
- package/dist/stack/arguments.js.map +1 -0
- package/dist/stack/attachments.d.ts +1 -1
- package/dist/stack/attachments.js +1 -1
- package/dist/stack/changes.d.ts +4 -10
- package/dist/stack/changes.d.ts.map +1 -1
- package/dist/stack/changes.js +8 -8
- package/dist/stack/changes.js.map +1 -1
- package/dist/stack/client.d.ts +34 -58
- package/dist/stack/client.d.ts.map +1 -1
- package/dist/stack/field-rules.d.ts +27 -0
- package/dist/stack/field-rules.d.ts.map +1 -0
- package/dist/stack/field-rules.js +50 -0
- package/dist/stack/field-rules.js.map +1 -0
- package/dist/stack/install-app.d.ts +2 -2
- package/dist/stack/install-app.d.ts.map +1 -1
- package/dist/stack/install-app.js +16 -14
- package/dist/stack/install-app.js.map +1 -1
- package/dist/stack/integrity.d.ts +9 -53
- package/dist/stack/integrity.d.ts.map +1 -1
- package/dist/stack/integrity.js +47 -107
- package/dist/stack/integrity.js.map +1 -1
- package/dist/stack/limits.d.ts +1 -1
- package/dist/stack/limits.js +1 -1
- package/dist/stack/reads.d.ts +9 -5
- package/dist/stack/reads.d.ts.map +1 -1
- package/dist/stack/reads.js +24 -4
- package/dist/stack/reads.js.map +1 -1
- package/dist/stack/stack.d.ts +84 -79
- package/dist/stack/stack.d.ts.map +1 -1
- package/dist/stack/stack.js +236 -306
- package/dist/stack/stack.js.map +1 -1
- package/dist/stack/system-types.d.ts.map +1 -1
- package/dist/stack/system-types.js +1 -3
- package/dist/stack/system-types.js.map +1 -1
- package/dist/stack/type-grants.d.ts.map +1 -1
- package/dist/stack/type-grants.js +9 -6
- package/dist/stack/type-grants.js.map +1 -1
- package/dist/stack/write-expectation.d.ts +13 -12
- package/dist/stack/write-expectation.d.ts.map +1 -1
- package/dist/stack/write-expectation.js.map +1 -1
- package/dist/stack/write-gate.d.ts +23 -0
- package/dist/stack/write-gate.d.ts.map +1 -0
- package/dist/stack/write-gate.js +17 -0
- package/dist/stack/write-gate.js.map +1 -0
- package/dist/testing.d.ts +37 -24
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +176 -153
- package/dist/testing.js.map +1 -1
- package/dist/types/adapter.d.ts +115 -43
- package/dist/types/adapter.d.ts.map +1 -1
- package/dist/types/associations.d.ts +1 -17
- package/dist/types/associations.d.ts.map +1 -1
- package/dist/types/associations.js +1 -8
- package/dist/types/associations.js.map +1 -1
- package/dist/types/capabilities.d.ts +8 -8
- package/dist/types/capabilities.d.ts.map +1 -1
- package/dist/types/events.d.ts +3 -8
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/query.d.ts +4 -4
- package/dist/types/system.d.ts +2 -8
- package/dist/types/system.d.ts.map +1 -1
- package/dist/types/system.js.map +1 -1
- package/dist/validate.d.ts +2 -0
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +2 -1
- package/dist/validate.js.map +1 -1
- package/dist/wire/body.d.ts +32 -9
- package/dist/wire/body.d.ts.map +1 -1
- package/dist/wire/body.js +69 -8
- package/dist/wire/body.js.map +1 -1
- package/dist/wire/index.d.ts +4 -4
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +3 -3
- package/dist/wire/index.js.map +1 -1
- package/dist/wire/record.d.ts +1 -8
- package/dist/wire/record.d.ts.map +1 -1
- package/dist/wire/record.js +0 -48
- package/dist/wire/record.js.map +1 -1
- package/dist/wire/request.d.ts +18 -18
- package/dist/wire/request.d.ts.map +1 -1
- package/dist/wire/request.js +41 -36
- package/dist/wire/request.js.map +1 -1
- package/package.json +1 -1
- package/dist/stack/identity-bindings.d.ts +0 -13
- package/dist/stack/identity-bindings.d.ts.map +0 -1
- package/dist/stack/identity-bindings.js +0 -36
- package/dist/stack/identity-bindings.js.map +0 -1
package/dist/stack/client.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* with the option and result shapes its verbs take. Shapes only: the
|
|
6
6
|
* behaviour behind them lives in stack.ts and scoped-stack.ts.
|
|
7
7
|
*/
|
|
8
|
-
import type { Actor, AppId, AssociationEdit, AttachmentContent, AuthorityAssociation, DataAssociation, EntityId, FileId, IfVersionOptions, JournalQuery, PutAttachmentOptions, QueryResult, RecordChange,
|
|
8
|
+
import type { Actor, AppId, AssociationEdit, AttachmentContent, AuthorityAssociation, DataAssociation, EntityId, FileId, IfVersionOptions, JournalQuery, PutAttachmentOptions, QueryResult, RecordChange, RecordId, RecordJournalEntry, RecordVersion, StackCapabilities, StackQuery, StackRecord, SubscribeOptions, TypeId, Unsubscribe, VersionsQuery } from '../types/index.js';
|
|
9
9
|
import type { ContentOf, Migration, ReadonlyTypeSchema, TypeHandle } from '../type-handle.js';
|
|
10
10
|
import type { Collection } from '../collection.js';
|
|
11
11
|
export type CreateRecordOptions = {
|
|
@@ -117,12 +117,19 @@ export type DeleteRecordOptions = IfVersionOptions & {
|
|
|
117
117
|
purge?: boolean;
|
|
118
118
|
};
|
|
119
119
|
/**
|
|
120
|
-
* What a delete reports back.
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* referenced.
|
|
120
|
+
* What a delete reports back. The record is captured inside the same
|
|
121
|
+
* atomic write as the delete, never read beforehand. `referencedFileIds`
|
|
122
|
+
* is information, not action: a purge never touches the blob store. See
|
|
123
|
+
* docs/spec/attachments.md § A purge strands the bytes it referenced.
|
|
124
124
|
*/
|
|
125
125
|
export type DeleteResult = {
|
|
126
|
+
/**
|
|
127
|
+
* The record as a soft delete left it — under ScopedStack, presented as
|
|
128
|
+
* its tombstone — or as it stood immediately before destruction for a
|
|
129
|
+
* purge, and `null` when there was nothing at `id` to purge.
|
|
130
|
+
* See docs/spec/versioning.md § The tombstone is literal.
|
|
131
|
+
*/
|
|
132
|
+
record: StackRecord | null;
|
|
126
133
|
/**
|
|
127
134
|
* The files the purged record referenced — its attachment associations
|
|
128
135
|
* and its `file-ref` content fields, deduplicated. The purge removes the
|
|
@@ -132,21 +139,6 @@ export type DeleteResult = {
|
|
|
132
139
|
*/
|
|
133
140
|
referencedFileIds: FileId[];
|
|
134
141
|
};
|
|
135
|
-
/**
|
|
136
|
-
* What deleteAndReturn() reports back — DeleteResult plus the record itself,
|
|
137
|
-
* captured inside the same atomic operation as the destroy rather than a
|
|
138
|
-
* read beforehand. See Stack.deleteAndReturn().
|
|
139
|
-
*/
|
|
140
|
-
export type DeleteAndReturnResult = DeleteResult & {
|
|
141
|
-
/**
|
|
142
|
-
* The record as it stood at the moment of deletion: immediately before
|
|
143
|
-
* destruction for a purge, or the resulting tombstone for a soft
|
|
144
|
-
* delete. Null only for the purge no-op — there was nothing to
|
|
145
|
-
* delete, and nothing to report; every other outcome throws instead of
|
|
146
|
-
* returning null (see Stack.delete()'s own no-op cases).
|
|
147
|
-
*/
|
|
148
|
-
record: StackRecord | null;
|
|
149
|
-
};
|
|
150
142
|
/** Options for Stack.migrateAll(). */
|
|
151
143
|
export type MigrateAllOptions = {
|
|
152
144
|
/**
|
|
@@ -195,55 +187,39 @@ export interface StackClient {
|
|
|
195
187
|
/** getEntityByDid() for the one DID every stack reserves: its own owner. */
|
|
196
188
|
getOwnerEntity(): Promise<StackRecord | null>;
|
|
197
189
|
/**
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
* one refused key refuses the call. See docs/spec/data-model.md § Mutations.
|
|
190
|
+
* Merge a patch into a record's content, one level deep (`null` removes a
|
|
191
|
+
* key). The only content edit, and the one write besides the lifecycle
|
|
192
|
+
* verbs that bumps `version`. See docs/spec/data-model.md § Mutations.
|
|
202
193
|
*/
|
|
203
|
-
mutate(id: RecordId, changes: RecordChangeSet, opts?: IfVersionOptions): Promise<StackRecord>;
|
|
204
|
-
/** mutate() with `contentPatch` alone — the common case, named for it. */
|
|
205
194
|
patchContent(id: RecordId, patch: Record<string, unknown | null>, opts?: IfVersionOptions): Promise<StackRecord>;
|
|
206
195
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* regardless of write order. See docs/spec/data-model.md § Mutations and
|
|
210
|
-
* docs/spec/versioning.md § Version history.
|
|
196
|
+
* Move a record under `parentId`, or to the root with `null`. See
|
|
197
|
+
* docs/spec/data-model.md § Reparenting.
|
|
211
198
|
*/
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
|
|
199
|
+
setParent(id: RecordId, parentId: RecordId | null, opts?: IfVersionOptions): Promise<StackRecord>;
|
|
200
|
+
/** Withhold a record from enumeration, or restore it. See docs/spec/unlisted.md. */
|
|
201
|
+
setUnlisted(id: RecordId, unlisted: boolean, opts?: IfVersionOptions): Promise<StackRecord>;
|
|
215
202
|
/**
|
|
216
|
-
* Apply
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
* `repoint` is not a request: an add naming an attachment the record
|
|
220
|
-
* already holds re-points it. See docs/spec/data-model.md § Mutations.
|
|
203
|
+
* Apply adds and removes to a record's data associations as one write,
|
|
204
|
+
* changing only what the list names. An add naming an attachment the
|
|
205
|
+
* record already holds re-points it. See docs/spec/data-model.md § Mutations.
|
|
221
206
|
*/
|
|
222
|
-
|
|
207
|
+
editAssociations(id: RecordId, edits: AssociationEdit[], opts?: IfVersionOptions): Promise<StackRecord>;
|
|
208
|
+
/** Make a record's data associations exactly `associations`. */
|
|
209
|
+
setAssociations(id: RecordId, associations: DataAssociation[], opts?: IfVersionOptions): Promise<StackRecord>;
|
|
223
210
|
/**
|
|
224
|
-
*
|
|
225
|
-
* `
|
|
226
|
-
*
|
|
227
|
-
* `grantAccess(id, [read, write])`. No-bump, like associate().
|
|
228
|
-
* See docs/spec/access-control.md § Write implies read.
|
|
211
|
+
* editAssociations() for who reaches a record, so a downgrade (remove
|
|
212
|
+
* `write`, keep `read`) is one change. `write` never implies `read`:
|
|
213
|
+
* grant both. See docs/spec/access-control.md § Record-level permissions.
|
|
229
214
|
*/
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
|
|
215
|
+
editAccess(id: RecordId, edits: AssociationEdit[], opts?: IfVersionOptions): Promise<StackRecord>;
|
|
216
|
+
/** Make who reaches a record exactly `permissions`; `[]` is private. */
|
|
217
|
+
setAccess(id: RecordId, permissions: AuthorityAssociation[], opts?: IfVersionOptions): Promise<StackRecord>;
|
|
233
218
|
/**
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
* See docs/spec/access-control.md § Record-level permissions.
|
|
219
|
+
* Soft-delete a record, or purge it with its history, reporting the
|
|
220
|
+
* record it acted on. See docs/spec/versioning.md § Deletion.
|
|
237
221
|
*/
|
|
238
|
-
amendAccess(id: RecordId, changes: AssociationEdit[]): Promise<StackRecord>;
|
|
239
222
|
delete(id: RecordId, opts?: DeleteRecordOptions): Promise<DeleteResult>;
|
|
240
|
-
/**
|
|
241
|
-
* delete(), plus the record it acted on — read and destroyed as one
|
|
242
|
-
* atomic operation, so a caller that needs the record for its own
|
|
243
|
-
* response (e.g. a server building a purge's body) never opens a
|
|
244
|
-
* gap between reading it and destroying it. See Stack.deleteAndReturn().
|
|
245
|
-
*/
|
|
246
|
-
deleteAndReturn(id: RecordId, opts?: DeleteRecordOptions): Promise<DeleteAndReturnResult>;
|
|
247
223
|
undelete(id: RecordId, opts?: IfVersionOptions): Promise<StackRecord>;
|
|
248
224
|
getVersions(id: RecordId, query?: VersionsQuery): Promise<RecordVersion[]>;
|
|
249
225
|
getVersion(id: RecordId, version: number): Promise<RecordVersion | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/stack/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/stack/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System field rules
|
|
3
|
+
* -------------------------------------------------------
|
|
4
|
+
* Which system-type content fields are bindings, which of those are
|
|
5
|
+
* unique, and which fields are immutable, so the write checks and the
|
|
6
|
+
* permission policy read one declaration. The `_attachment` mimeType
|
|
7
|
+
* rule is not here: the first record for a fileId decides it, which no
|
|
8
|
+
* per-field declaration says.
|
|
9
|
+
*
|
|
10
|
+
* See docs/spec/data-model.md § Immutable fields and
|
|
11
|
+
* docs/spec/identity.md § DID bindings.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* A field holds no value while absent or the empty string — how a required
|
|
15
|
+
* string field says "none yet". See docs/spec/data-model.md § Immutable fields.
|
|
16
|
+
*/
|
|
17
|
+
export declare const isUnset: (value: unknown) => boolean;
|
|
18
|
+
interface Binding {
|
|
19
|
+
field: 'did' | 'appId';
|
|
20
|
+
unique: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare const bindingsOf: (family: string) => readonly Binding[];
|
|
23
|
+
export declare const bindingFieldsOf: (family: string) => readonly ("did" | "appId")[];
|
|
24
|
+
/** See docs/spec/data-model.md § Immutable fields. */
|
|
25
|
+
export declare const immutableFieldsOf: (family: string) => readonly string[];
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=field-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-rules.d.ts","sourceRoot":"","sources":["../../src/stack/field-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,OAA8C,CAAC;AAExF,UAAU,OAAO;IACf,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAsBD,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,SAAS,OAAO,EAAgC,CAAC;AAE7F,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,EAC7B,CAAC;AAQ/C,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,SAAS,MAAM,EAGjE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System field rules
|
|
3
|
+
* -------------------------------------------------------
|
|
4
|
+
* Which system-type content fields are bindings, which of those are
|
|
5
|
+
* unique, and which fields are immutable, so the write checks and the
|
|
6
|
+
* permission policy read one declaration. The `_attachment` mimeType
|
|
7
|
+
* rule is not here: the first record for a fileId decides it, which no
|
|
8
|
+
* per-field declaration says.
|
|
9
|
+
*
|
|
10
|
+
* See docs/spec/data-model.md § Immutable fields and
|
|
11
|
+
* docs/spec/identity.md § DID bindings.
|
|
12
|
+
*/
|
|
13
|
+
import { SYSTEM_TYPES } from '../types/index.js';
|
|
14
|
+
/**
|
|
15
|
+
* A field holds no value while absent or the empty string — how a required
|
|
16
|
+
* string field says "none yet". See docs/spec/data-model.md § Immutable fields.
|
|
17
|
+
*/
|
|
18
|
+
export const isUnset = (value) => value === undefined || value === '';
|
|
19
|
+
/**
|
|
20
|
+
* Content fields that are lookup keys rather than display values: a card
|
|
21
|
+
* claims one, and something later resolves through it. The unique ones are
|
|
22
|
+
* those an Actor is resolved *by*; `_app.appId` is not, since nothing
|
|
23
|
+
* resolves by it and a new key's card must repeat it.
|
|
24
|
+
* See docs/spec/identity.md § DID bindings.
|
|
25
|
+
*/
|
|
26
|
+
const BINDINGS = new Map([
|
|
27
|
+
[
|
|
28
|
+
SYSTEM_TYPES.APP,
|
|
29
|
+
[
|
|
30
|
+
{ field: 'did', unique: true },
|
|
31
|
+
{ field: 'appId', unique: false },
|
|
32
|
+
],
|
|
33
|
+
],
|
|
34
|
+
[SYSTEM_TYPES.ENTITY, [{ field: 'did', unique: true }]],
|
|
35
|
+
// One install answers for each app; see docs/spec/apps.md § The `_install` record.
|
|
36
|
+
[SYSTEM_TYPES.INSTALL, [{ field: 'appId', unique: true }]],
|
|
37
|
+
]);
|
|
38
|
+
export const bindingsOf = (family) => BINDINGS.get(family) ?? [];
|
|
39
|
+
export const bindingFieldsOf = (family) => bindingsOf(family).map(({ field }) => field);
|
|
40
|
+
/** The immutable fields that are not bindings. */
|
|
41
|
+
const FIXED_FIELDS = new Map([
|
|
42
|
+
[SYSTEM_TYPES.CONFIG, ['ownerEntityId']],
|
|
43
|
+
[SYSTEM_TYPES.ATTACHMENT, ['fileId', 'mimeType', 'size']],
|
|
44
|
+
]);
|
|
45
|
+
/** See docs/spec/data-model.md § Immutable fields. */
|
|
46
|
+
export const immutableFieldsOf = (family) => [
|
|
47
|
+
...bindingFieldsOf(family),
|
|
48
|
+
...(FIXED_FIELDS.get(family) ?? []),
|
|
49
|
+
];
|
|
50
|
+
//# sourceMappingURL=field-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-rules.js","sourceRoot":"","sources":["../../src/stack/field-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;AAOxF;;;;;;GAMG;AACH,MAAM,QAAQ,GAA4C,IAAI,GAAG,CAAC;IAChE;QACE,YAAY,CAAC,GAAG;QAChB;YACE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;YAC9B,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;SAClC;KACF;IACD,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,mFAAmF;IACnF,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAsB,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAE7F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAgC,EAAE,CAC9E,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAE/C,kDAAkD;AAClD,MAAM,YAAY,GAA2C,IAAI,GAAG,CAAC;IACnE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAqB,EAAE,CAAC;IACtE,GAAG,eAAe,CAAC,MAAM,CAAC;IAC1B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;CACpC,CAAC"}
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
* against Stack's public API alone, so every write here passes the same
|
|
8
8
|
* checks any other caller's would. See docs/spec/apps.md.
|
|
9
9
|
*/
|
|
10
|
-
import type { AppManifest, InstallPlan } from '../install.js';
|
|
10
|
+
import type { AppManifest, InstallAppOptions, InstallPlan } from '../install.js';
|
|
11
11
|
import type { AppId, EntityId, InstallContent, StackRecord } from '../types/index.js';
|
|
12
12
|
import type { Stack } from './stack.js';
|
|
13
13
|
export declare function planInstall(stack: Stack, submitted: AppManifest, opts: {
|
|
14
14
|
did: EntityId;
|
|
15
15
|
}): Promise<InstallPlan>;
|
|
16
|
-
export declare function installApp(stack: Stack,
|
|
16
|
+
export declare function installApp(stack: Stack, submitted: AppManifest, opts: InstallAppOptions): Promise<StackRecord & {
|
|
17
17
|
content: InstallContent;
|
|
18
18
|
}>;
|
|
19
19
|
export declare function uninstallApp(stack: Stack, appId: AppId): Promise<StackRecord & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../src/stack/install-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkCH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../src/stack/install-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkCH,OAAO,KAAK,EACV,WAAW,EAEX,iBAAiB,EACjB,WAAW,EAEZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAEV,KAAK,EAIL,QAAQ,EAER,cAAc,EAEd,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,wBAAsB,WAAW,CAC/B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE;IAAE,GAAG,EAAE,QAAQ,CAAA;CAAE,GACtB,OAAO,CAAC,WAAW,CAAC,CAuEtB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,WAAW,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC,CA+CpD;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,WAAW,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC,CAapD"}
|
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
* checks any other caller's would. See docs/spec/apps.md.
|
|
9
9
|
*/
|
|
10
10
|
import { ARGUMENTS_INVALID, StackConflictError, StackNotFoundError, StackSchemaDriftError, StackValidationError, } from '../errors.js';
|
|
11
|
-
import {
|
|
12
|
-
import { INSTALL_APP_LABEL, INSTALL_GRANT_LABEL, claimedFamilies, familyStanding, grantIsRequest, installAppLink, installGrantLink, installReader, linkedIds, namespaceOf, ownTypeIds, planFingerprint, sameRequest, snapshotManifest, } from '../install.js';
|
|
11
|
+
import { INSTALL_APP_LABEL, INSTALL_GRANT_LABEL, claimedFamilies, familyStanding, grantIsRequest, installAppLink, installGrantLink, installReader, linkedIds, namespaceOf, ownTypeIds, planFingerprint, sameRequest, snapshotManifest, validateRequests, } from '../install.js';
|
|
13
12
|
import { baseIdOf, diffSchemas, hashSchema, parseTypeId } from '../schema.js';
|
|
14
13
|
import { findAppCardByDid, loadInstallRecords, queryAllPages } from './reads.js';
|
|
15
14
|
import { SYSTEM_TYPES } from '../types/index.js';
|
|
@@ -63,7 +62,7 @@ export async function planInstall(stack, submitted, opts) {
|
|
|
63
62
|
if (typeof key === 'string')
|
|
64
63
|
linkedKeys.push(key);
|
|
65
64
|
}
|
|
66
|
-
|
|
65
|
+
const plan = {
|
|
67
66
|
manifest,
|
|
68
67
|
did,
|
|
69
68
|
existing,
|
|
@@ -79,11 +78,13 @@ export async function planInstall(stack, submitted, opts) {
|
|
|
79
78
|
!linkedIds(existing, INSTALL_APP_LABEL).includes(card.id),
|
|
80
79
|
linkedKeys,
|
|
81
80
|
};
|
|
81
|
+
const fingerprint = await planFingerprint(plan);
|
|
82
|
+
return { ...plan, fingerprint };
|
|
82
83
|
}
|
|
83
|
-
export async function installApp(stack,
|
|
84
|
-
const fresh = await planInstall(stack,
|
|
85
|
-
if (
|
|
86
|
-
throw new StackConflictError(`The
|
|
84
|
+
export async function installApp(stack, submitted, opts) {
|
|
85
|
+
const fresh = await planInstall(stack, submitted, { did: opts.did });
|
|
86
|
+
if (fresh.fingerprint !== opts.fingerprint) {
|
|
87
|
+
throw new StackConflictError(`The install of "${fresh.manifest.appId}" no longer matches the approved plan; plan it again`);
|
|
87
88
|
}
|
|
88
89
|
const { manifest, did, existing } = fresh;
|
|
89
90
|
for (const type of manifest.types)
|
|
@@ -108,7 +109,9 @@ export async function installApp(stack, plan) {
|
|
|
108
109
|
const current = existing.deletedAt ? await stack.undelete(existing.id) : existing;
|
|
109
110
|
install = await stack.patchContent(existing.id, { name: manifest.name, version: manifest.version ?? null, defines, requests }, { ifVersion: current.version });
|
|
110
111
|
if (!linkedIds(install, INSTALL_APP_LABEL).includes(card.id)) {
|
|
111
|
-
install = await stack.
|
|
112
|
+
install = await stack.editAssociations(install.id, [
|
|
113
|
+
{ op: 'add', association: installAppLink(card.id) },
|
|
114
|
+
]);
|
|
112
115
|
}
|
|
113
116
|
}
|
|
114
117
|
return (await reconcileInstallGrants(stack, install));
|
|
@@ -124,8 +127,8 @@ export async function uninstallApp(stack, appId) {
|
|
|
124
127
|
edits.push({ op: 'remove', association: installGrantLink(id) });
|
|
125
128
|
}
|
|
126
129
|
if (edits.length > 0)
|
|
127
|
-
await stack.
|
|
128
|
-
const { record } = await stack.
|
|
130
|
+
await stack.editAssociations(install.id, edits);
|
|
131
|
+
const { record } = await stack.delete(install.id);
|
|
129
132
|
return record;
|
|
130
133
|
}
|
|
131
134
|
/** A manifest's own shape, and every request held to grantType()'s rules. */
|
|
@@ -172,10 +175,9 @@ function checkManifest(manifest, did) {
|
|
|
172
175
|
}
|
|
173
176
|
}
|
|
174
177
|
});
|
|
178
|
+
errors.push(...validateRequests(manifest.requests, 'requests'));
|
|
175
179
|
if (errors.length > 0)
|
|
176
180
|
throw new StackValidationError(errors, ARGUMENTS_INVALID);
|
|
177
|
-
for (const r of manifest.requests)
|
|
178
|
-
checkGrantValid(r.baseId, r.actions);
|
|
179
181
|
}
|
|
180
182
|
/** The key's `_app` card, created or undeleted as needed. */
|
|
181
183
|
async function ensureAppCard(stack, manifest, did) {
|
|
@@ -231,7 +233,7 @@ async function reconcileInstallGrants(stack, install) {
|
|
|
231
233
|
edits.push({ op: 'add', association: installGrantLink(grant.id) });
|
|
232
234
|
}
|
|
233
235
|
}
|
|
234
|
-
let result = edits.length > 0 ? await stack.
|
|
236
|
+
let result = edits.length > 0 ? await stack.editAssociations(install.id, edits) : install;
|
|
235
237
|
// Each linked key may read its own install, which is how an app learns
|
|
236
238
|
// what was approved; a key of this app no longer linked may not.
|
|
237
239
|
// See docs/spec/apps.md § Over the wire.
|
|
@@ -254,7 +256,7 @@ async function reconcileInstallGrants(stack, install) {
|
|
|
254
256
|
.map((entityId) => ({ op: 'remove', association: installReader(entityId) })),
|
|
255
257
|
];
|
|
256
258
|
if (access.length > 0)
|
|
257
|
-
result = await stack.
|
|
259
|
+
result = await stack.editAccess(install.id, access);
|
|
258
260
|
return result;
|
|
259
261
|
}
|
|
260
262
|
//# sourceMappingURL=install-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../src/stack/install-app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../src/stack/install-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Write invariants
|
|
3
3
|
* -------------------------------------------------------
|
|
4
|
-
* The integrity rules a Stack write owes whoever makes it —
|
|
5
|
-
* bindings, containment, attachment metadata
|
|
4
|
+
* The integrity rules a Stack write owes whoever makes it — immutable
|
|
5
|
+
* fields, DID and appId bindings, containment, attachment metadata and a
|
|
6
6
|
* group's admin roster. They bind every requester, the stack owner
|
|
7
7
|
* included, which is why they live beneath `ScopedStack`'s permission
|
|
8
8
|
* gates rather than among them. Each reads unscoped: through the Stack it
|
|
9
9
|
* is handed, or a by-id `read` straight from its adapter.
|
|
10
10
|
*/
|
|
11
11
|
import type { RecordResolver } from '../access.js';
|
|
12
|
-
import type { Association,
|
|
12
|
+
import type { Association, DataAssociation, StackRecord, TypeId } from '../types/index.js';
|
|
13
13
|
import type { Stack } from './stack.js';
|
|
14
|
-
/** Uniqueness for every unique binding field a newly created card claims. */
|
|
15
|
-
export declare function checkBindingsOnCreate(stack: Stack, typeId: TypeId, content: Record<string, unknown>): Promise<void>;
|
|
16
14
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
15
|
+
* Every content integrity check create, patch, restore and migrate owe: a
|
|
16
|
+
* change, judged against `prior` (absent on create), then claims, judged
|
|
17
|
+
* against other records. A claim is asked only of a value not already held
|
|
18
|
+
* in the destination family, so a claim check never finds the record itself.
|
|
19
|
+
* See docs/spec/data-model.md § Immutable fields.
|
|
21
20
|
*/
|
|
22
|
-
export declare function
|
|
23
|
-
/**
|
|
24
|
-
* Bindings across a migration, whose content replaces the old wholesale.
|
|
25
|
-
* Immutability is asked over both families' binding fields, so a card can
|
|
26
|
-
* neither shed a DID by migrating out nor pick one up on the way in;
|
|
27
|
-
* uniqueness, of the destination only. See docs/spec/identity.md § DID bindings.
|
|
28
|
-
*/
|
|
29
|
-
export declare function checkBindingsOnMigrate(stack: Stack, fromTypeId: TypeId, toTypeId: TypeId, id: RecordId, existing: Record<string, unknown>, content: Record<string, unknown>): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* A binding is permanent once made: uniqueness stops a second card claiming
|
|
32
|
-
* a value, but only immutability stops an existing card being moved onto
|
|
33
|
-
* one. A subject whose key changes gets a new card.
|
|
34
|
-
* See docs/spec/identity.md § DID bindings.
|
|
35
|
-
*/
|
|
36
|
-
export declare function checkBindingImmutable(family: string, field: 'did' | 'appId', existing: unknown, next: unknown): void;
|
|
21
|
+
export declare function checkContentWrite(stack: Stack, typeId: TypeId, content: Record<string, unknown>, prior?: StackRecord): Promise<void>;
|
|
37
22
|
/**
|
|
38
23
|
* A caller-named `parentId` is a well-formed id of a record that exists —
|
|
39
24
|
* format first, so a malformed one is a 400 naming the problem. A restore
|
|
@@ -48,20 +33,6 @@ export declare function assertParentExists(read: RecordResolver, id: string, par
|
|
|
48
33
|
* See docs/spec/data-model.md § Reparenting.
|
|
49
34
|
*/
|
|
50
35
|
export declare function assertNoParentCycle(read: RecordResolver, id: string, parentId: string): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* The `_attachment@1` fields a write may not move, each with the message it
|
|
53
|
-
* is refused by. Ordered as reported. See docs/spec/attachments.md § The
|
|
54
|
-
* `_attachment` record type.
|
|
55
|
-
*/
|
|
56
|
-
declare const ATTACHMENT_IMMUTABLE_FIELDS: readonly [readonly ["mimeType", "mimeType is immutable after creation; delete and re-upload to change it"], readonly ["fileId", "fileId is immutable"], readonly ["size", "size is immutable"]];
|
|
57
|
-
type AttachmentImmutableField = (typeof ATTACHMENT_IMMUTABLE_FIELDS)[number][0];
|
|
58
|
-
/**
|
|
59
|
-
* mimeType belongs to the fileId: its first metadata record fixes it, and
|
|
60
|
-
* a conflicting later one is refused. Best-effort against a racing first
|
|
61
|
-
* upload; what survives the race is a deterministic winner. See
|
|
62
|
-
* docs/spec/attachments.md § The `_attachment` record type.
|
|
63
|
-
*/
|
|
64
|
-
export declare function checkAttachmentMimeTypeOnCreate(stack: Stack, content: AttachmentContent): Promise<void>;
|
|
65
36
|
/**
|
|
66
37
|
* An `attachmentRecordId` must name an `_attachment` record for the same
|
|
67
38
|
* `fileId`. Pointers already in `stored` are not re-asked, so restating an
|
|
@@ -69,20 +40,6 @@ export declare function checkAttachmentMimeTypeOnCreate(stack: Stack, content: A
|
|
|
69
40
|
* See docs/spec/attachments.md § Naming the upload a reference came from.
|
|
70
41
|
*/
|
|
71
42
|
export declare function checkAttachmentAssociationPointers(read: RecordResolver, associations: Association[] | undefined, stored?: Association[]): Promise<void>;
|
|
72
|
-
/**
|
|
73
|
-
* Refuse a write that moves an `_attachment@1` record's fileId, size or
|
|
74
|
-
* mimeType. `violates` decides what counts as a move, since a patch names
|
|
75
|
-
* only what it changes while a migration re-sends all three.
|
|
76
|
-
* See docs/spec/attachments.md § The `_attachment` record type.
|
|
77
|
-
*/
|
|
78
|
-
export declare function assertAttachmentImmutable(violates: (field: AttachmentImmutableField) => boolean): void;
|
|
79
|
-
/**
|
|
80
|
-
* `_config.entityId` defines stack ownership; neither patchContent() nor
|
|
81
|
-
* restoreVersion() may change it. A conflict with stack integrity, not a
|
|
82
|
-
* schema violation — hence StackConflictError. See docs/spec.md § The
|
|
83
|
-
* `_config` record.
|
|
84
|
-
*/
|
|
85
|
-
export declare function checkConfigEntityIdUnchanged(existingEntityId: EntityId, newEntityId: EntityId): void;
|
|
86
43
|
/**
|
|
87
44
|
* Refuse a write that would leave a `_group` Record with no `admin`, asked
|
|
88
45
|
* of the roster the write would produce. An integrity rule, not a
|
|
@@ -90,5 +47,4 @@ export declare function checkConfigEntityIdUnchanged(existingEntityId: EntityId,
|
|
|
90
47
|
* See docs/spec/identity.md § Group.
|
|
91
48
|
*/
|
|
92
49
|
export declare function assertGroupAdminRemains(record: StackRecord, next: DataAssociation[]): void;
|
|
93
|
-
export {};
|
|
94
50
|
//# sourceMappingURL=integrity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../../src/stack/integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AASnD,OAAO,KAAK,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../../src/stack/integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AASnD,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EACf,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMxC;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAoED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,cAAc,EACpB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAgBf;AA+BD;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,EACvC,MAAM,GAAE,WAAW,EAAO,GACzB,OAAO,CAAC,IAAI,CAAC,CAqCf;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,CAO1F"}
|