@haverstack/core 0.37.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +19 -15
  2. package/dist/access.d.ts +4 -6
  3. package/dist/access.d.ts.map +1 -1
  4. package/dist/access.js +7 -8
  5. package/dist/access.js.map +1 -1
  6. package/dist/adapter-entry.d.ts +7 -6
  7. package/dist/adapter-entry.d.ts.map +1 -1
  8. package/dist/adapter-entry.js +6 -5
  9. package/dist/adapter-entry.js.map +1 -1
  10. package/dist/attachment-download.d.ts +3 -1
  11. package/dist/attachment-download.d.ts.map +1 -1
  12. package/dist/attachment-download.js +1 -1
  13. package/dist/attachment-download.js.map +1 -1
  14. package/dist/changes.d.ts +22 -16
  15. package/dist/changes.d.ts.map +1 -1
  16. package/dist/changes.js +43 -32
  17. package/dist/changes.js.map +1 -1
  18. package/dist/combine.d.ts +1 -1
  19. package/dist/combine.js +6 -6
  20. package/dist/combine.js.map +1 -1
  21. package/dist/errors.d.ts +24 -12
  22. package/dist/errors.d.ts.map +1 -1
  23. package/dist/errors.js +32 -17
  24. package/dist/errors.js.map +1 -1
  25. package/dist/grants.d.ts +17 -25
  26. package/dist/grants.d.ts.map +1 -1
  27. package/dist/grants.js +27 -14
  28. package/dist/grants.js.map +1 -1
  29. package/dist/identity-bindings.js +2 -2
  30. package/dist/index.d.ts +12 -8
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +12 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/query-validation.d.ts +28 -11
  35. package/dist/query-validation.d.ts.map +1 -1
  36. package/dist/query-validation.js +95 -36
  37. package/dist/query-validation.js.map +1 -1
  38. package/dist/record-changes.d.ts +11 -10
  39. package/dist/record-changes.d.ts.map +1 -1
  40. package/dist/record-changes.js +33 -25
  41. package/dist/record-changes.js.map +1 -1
  42. package/dist/record-id.d.ts +3 -3
  43. package/dist/record-id.js +8 -8
  44. package/dist/record-id.js.map +1 -1
  45. package/dist/scoped-stack.d.ts +71 -34
  46. package/dist/scoped-stack.d.ts.map +1 -1
  47. package/dist/scoped-stack.js +107 -88
  48. package/dist/scoped-stack.js.map +1 -1
  49. package/dist/stack-reads.d.ts +2 -2
  50. package/dist/stack-reads.js +5 -5
  51. package/dist/stack-reads.js.map +1 -1
  52. package/dist/stack.d.ts +132 -161
  53. package/dist/stack.d.ts.map +1 -1
  54. package/dist/stack.js +287 -288
  55. package/dist/stack.js.map +1 -1
  56. package/dist/testing.d.ts +17 -17
  57. package/dist/testing.d.ts.map +1 -1
  58. package/dist/testing.js +46 -42
  59. package/dist/testing.js.map +1 -1
  60. package/dist/types.d.ts +169 -143
  61. package/dist/types.d.ts.map +1 -1
  62. package/dist/types.js +2 -2
  63. package/dist/types.js.map +1 -1
  64. package/dist/wire-body.d.ts +71 -0
  65. package/dist/wire-body.d.ts.map +1 -0
  66. package/dist/wire-body.js +138 -0
  67. package/dist/wire-body.js.map +1 -0
  68. package/dist/wire-entry.d.ts +9 -8
  69. package/dist/wire-entry.d.ts.map +1 -1
  70. package/dist/wire-entry.js +13 -14
  71. package/dist/wire-entry.js.map +1 -1
  72. package/dist/wire-record.d.ts +4 -4
  73. package/dist/wire-record.d.ts.map +1 -1
  74. package/dist/wire-record.js +35 -22
  75. package/dist/wire-record.js.map +1 -1
  76. package/dist/wire-request.d.ts +37 -4
  77. package/dist/wire-request.d.ts.map +1 -1
  78. package/dist/wire-request.js +288 -79
  79. package/dist/wire-request.js.map +1 -1
  80. package/package.json +1 -1
package/README.md CHANGED
@@ -25,16 +25,16 @@ import { LocalAdapter } from '@haverstack/adapter-local';
25
25
  import { writeFile } from 'node:fs/promises';
26
26
 
27
27
  const dbPath = './my-stack.db';
28
- const keyPath = './my-stack.key.json'; // see "Key custody" below for where this really belongs
28
+ const keyPath = './my-stack.key.json'; // see "Key custody" under Identity for where this really belongs
29
29
 
30
30
  // First run: neither file exists yet, so this generates an identity
31
31
  // keypair and persists the private key before initializing. Every run
32
- // after that: the db exists, so this just opens it — the entityId
32
+ // after that: the db exists, so this just opens it — the ownerEntityId
33
33
  // function below is never called, so no throwaway keypair is minted.
34
34
  const adapter = await LocalAdapter.openOrInitialize({
35
35
  path: dbPath,
36
36
  timezone: 'America/New_York',
37
- entityId: async () => {
37
+ ownerEntityId: async () => {
38
38
  const { did, privateKey } = await generateDidKeypair();
39
39
  await writeFile(keyPath, JSON.stringify(await exportDidPrivateKeyJwk(privateKey)));
40
40
  return did;
@@ -43,12 +43,16 @@ const adapter = await LocalAdapter.openOrInitialize({
43
43
 
44
44
  // ownerProfile creates your own _entity profile record on first run —
45
45
  // safe to keep passing on every open, it's a no-op once the record exists.
46
- const stack = await Stack.create(adapter, { ownerProfile: { name: 'Jane Smith' } });
46
+ const stack = await Stack.open(adapter, { ownerProfile: { name: 'Jane Smith' } });
47
47
 
48
48
  // Define a type
49
- await stack.defineType('com.example.myapp/note@1', 'Note', {
50
- text: { kind: 'text', required: true },
51
- title: { kind: 'string' },
49
+ await stack.defineType({
50
+ id: 'com.example.myapp/note@1',
51
+ name: 'Note',
52
+ schema: {
53
+ text: { kind: 'text', required: true },
54
+ title: { kind: 'string' },
55
+ },
52
56
  });
53
57
 
54
58
  // Create a record
@@ -89,7 +93,7 @@ The fundamental unit of data. Every record has:
89
93
  - A **Crockford base-32 ID** — time-sortable, human-readable, URL-safe
90
94
  - A **type** — defined by the app that created it
91
95
  - **Content** — a JSON object validated against the type's schema
92
- - Optional: `parentId`, `entityId`, `appId`, `principalId`, `permissions`, `associations`
96
+ - Optional: `parentId`, `createdBy`, `appId`, `permissions`, `associations`
93
97
 
94
98
  ### Identity
95
99
 
@@ -114,7 +118,7 @@ Tags, attachments, and relationships are unified under a single model:
114
118
  ```ts
115
119
  { kind: 'tag', label: 'favourite' }
116
120
  { kind: 'attachment', label: 'avatar', fileId: '...' }
117
- { kind: 'relationship', label: 'reply-to', recordId: '...' }
121
+ { kind: 'relationship', label: 'reply-to', target: { kind: 'record', recordId: '...' } }
118
122
  ```
119
123
 
120
124
  ### Migrations
@@ -122,12 +126,12 @@ Tags, attachments, and relationships are unified under a single model:
122
126
  Types can evolve over time. Register migration functions between adjacent versions and the library composes them into chains automatically:
123
127
 
124
128
  ```ts
125
- await stack.defineType(
126
- 'com.example.myapp/note@2',
127
- 'Note',
128
- { text: { kind: 'text', required: true }, title: { kind: 'string' } },
129
- { migratesFrom: 'com.example.myapp/note@1' },
130
- );
129
+ await stack.defineType({
130
+ id: 'com.example.myapp/note@2',
131
+ name: 'Note',
132
+ schema: { text: { kind: 'text', required: true }, title: { kind: 'string' } },
133
+ migratesFrom: 'com.example.myapp/note@1',
134
+ });
131
135
 
132
136
  stack.registerMigration({
133
137
  from: 'com.example.myapp/note@1',
package/dist/access.d.ts CHANGED
@@ -12,11 +12,9 @@
12
12
  * it. Every tier is affirmative, so an element read past its own kind —
13
13
  * or carrying no kind at all — confers nothing.
14
14
  */
15
- import type { Association, AuthorityAssociation, DataAssociation, EntityId, RecordId, StackRecord } from './types.js';
15
+ import type { Association, AuthorityAssociation, DataAssociation, EntityId, GroupRole, RecordId, StackRecord } from './types.js';
16
16
  import type { ValidationError } from './validate.js';
17
17
  export type AccessMode = 'read' | 'write';
18
- /** An entity's standing within a `_group` Record's roster. `admin` implies `member` for ACL purposes. */
19
- export type GroupRole = 'member' | 'admin';
20
18
  /**
21
19
  * Resolves a Record by ID. Used to walk a `_group` Record's associations for
22
20
  * membership checks without requiring a full StackAdapter.
@@ -69,7 +67,7 @@ export declare function groupRoleFromAssociations(associations: DataAssociation[
69
67
  */
70
68
  export declare function hasGroupAdmin(associations: DataAssociation[] | undefined): boolean;
71
69
  /**
72
- * Whether one association is an `admin` roster entry. The `entity` scope is
70
+ * Whether one association is an `admin` roster entry. The `entity` target is
73
71
  * what makes it one — a `record` target carrying the same label confers
74
72
  * nothing, so it must not count toward the invariant either.
75
73
  * See docs/spec/data-model.md § Relationship targets.
@@ -81,8 +79,8 @@ export declare function isGroupAdminAssociation(association: Association): boole
81
79
  * own, whichever side of a delegation the owner is on.
82
80
  * See docs/spec/access-control.md § Delegation: principal and subject.
83
81
  */
84
- export declare function isOwnerActingAlone(session: {
85
- principalId: EntityId | null;
82
+ export declare function isOwnerActingAlone(actor: {
86
83
  subjectId: EntityId | null;
84
+ principalId?: EntityId | null;
87
85
  }, ownerEntityId: EntityId): boolean;
88
86
  //# sourceMappingURL=access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,QAAQ,EAER,QAAQ,EACR,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,yGAAyG;AACzG,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;AAE3E;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,QAAQ,GAAG,IAAI,EAChC,aAAa,EAAE,QAAQ,GAAG,IAAI,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAyCD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,oBAAoB,EAAE,GAAG,SAAS,EAC/C,IAAI,SAAgB,GACnB,eAAe,EAAE,CAanB;AAaD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,eAAe,EAAE,GAAG,SAAS,EAC3C,QAAQ,EAAE,QAAQ,GACjB,SAAS,GAAG,IAAI,CAalB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,OAAO,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAMzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE;IAAE,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,EACrE,aAAa,EAAE,QAAQ,GACtB,OAAO,CAET"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;AAE3E;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,QAAQ,GAAG,IAAI,EAChC,aAAa,EAAE,QAAQ,GAAG,IAAI,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAyCD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,oBAAoB,EAAE,GAAG,SAAS,EAC/C,IAAI,SAAgB,GACnB,eAAe,EAAE,CAanB;AAaD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,eAAe,EAAE,GAAG,SAAS,EAC3C,QAAQ,EAAE,QAAQ,GACjB,SAAS,GAAG,IAAI,CASlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,OAAO,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAMzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IAAE,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,EACpE,aAAa,EAAE,QAAQ,GACtB,OAAO,CAGT"}
package/dist/access.js CHANGED
@@ -80,7 +80,7 @@ function isWorldRead(association) {
80
80
  async function granteeCovers(grantee, subjectEntityId, resolveRecord) {
81
81
  if (!subjectEntityId)
82
82
  return false;
83
- if (grantee.scope === 'entity')
83
+ if (grantee.kind === 'entity')
84
84
  return grantee.entityId === subjectEntityId;
85
85
  const role = await resolveGroupRole(grantee.groupId, subjectEntityId, resolveRecord);
86
86
  return grantee.role === 'admin' ? role === 'admin' : role !== null;
@@ -136,9 +136,7 @@ export function carriesRoster(record) {
136
136
  export function groupRoleFromAssociations(associations, entityId) {
137
137
  let role = null;
138
138
  for (const a of associations ?? []) {
139
- if (a.kind === 'relationship' &&
140
- a.target.scope === 'entity' &&
141
- a.target.entityId === entityId) {
139
+ if (a.kind === 'relationship' && a.target.kind === 'entity' && a.target.entityId === entityId) {
142
140
  if (a.label === 'admin')
143
141
  return 'admin';
144
142
  if (a.label === 'member')
@@ -160,7 +158,7 @@ export function hasGroupAdmin(associations) {
160
158
  return (associations ?? []).some(isGroupAdminAssociation);
161
159
  }
162
160
  /**
163
- * Whether one association is an `admin` roster entry. The `entity` scope is
161
+ * Whether one association is an `admin` roster entry. The `entity` target is
164
162
  * what makes it one — a `record` target carrying the same label confers
165
163
  * nothing, so it must not count toward the invariant either.
166
164
  * See docs/spec/data-model.md § Relationship targets.
@@ -168,7 +166,7 @@ export function hasGroupAdmin(associations) {
168
166
  export function isGroupAdminAssociation(association) {
169
167
  return (association.kind === 'relationship' &&
170
168
  association.label === 'admin' &&
171
- association.target.scope === 'entity');
169
+ association.target.kind === 'entity');
172
170
  }
173
171
  /**
174
172
  * Whether a request is the stack owner acting alone — the tier behind every
@@ -176,7 +174,8 @@ export function isGroupAdminAssociation(association) {
176
174
  * own, whichever side of a delegation the owner is on.
177
175
  * See docs/spec/access-control.md § Delegation: principal and subject.
178
176
  */
179
- export function isOwnerActingAlone(session, ownerEntityId) {
180
- return session.principalId === ownerEntityId && session.subjectId === ownerEntityId;
177
+ export function isOwnerActingAlone(actor, ownerEntityId) {
178
+ const principalId = actor.principalId === undefined ? actor.subjectId : actor.principalId;
179
+ return principalId === ownerEntityId && actor.subjectId === ownerEntityId;
181
180
  }
182
181
  //# sourceMappingURL=access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  /**
2
2
  * @haverstack/core/adapter
3
3
  * -------------------------------------------------------
4
- * The interfaces a storage adapter implements — record storage, blob
5
- * storage, and the capabilities an adapter declares. Audience: adapter
6
- * implementers (see the in-repo adapters), not app or plugin code, which
7
- * reads `stack.features` instead of these directly.
4
+ * The interfaces a storage adapter implements — the full StackAdapter,
5
+ * its record and blob halves, and the options Stack hands them — plus the
6
+ * helpers adapters share. Audience: adapter implementers (see the in-repo
7
+ * adapters). Types an app reads too, such as StackCapabilities, live in
8
+ * the root entry point instead: every export has exactly one home.
8
9
  */
9
- export type { StackRecordAdapter, StackBlobAdapter, AdapterCapabilities, ContentFilterReach, MissingCapability, BlobFileInfo, ExpectedVersionOptions, BumpVersionOptions, SubscribeChangesOptions, } from './types.js';
10
+ export type { StackAdapter, StackRecordAdapter, StackBlobAdapter, BlobInfo, BumpVersionOptions, SnapshotOptions, JournalEntryInput, JournalOptions, SubscribeChangesOptions, } from './types.js';
10
11
  export { combineAdapters } from './combine.js';
11
- export { assertQueryCapabilities, assertSortCapability, assertValidSort, assertValidRelatedTo, assertValidJournalQuery, filtersContent, parseContentFilterKey, } from './query-validation.js';
12
+ export { assertQueryCapabilities, assertSortCapability, assertValidSort, assertValidAssociationFilters, assertValidJournalQuery, filtersContent, parseContentFilterKey, } from './query-validation.js';
12
13
  export { contentSortEntry, contentSortKey, compareSortEntries } from './sort.js';
13
14
  export type { SortEntry } from './sort.js';
14
15
  //# sourceMappingURL=adapter-entry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-entry.d.ts","sourceRoot":"","sources":["../src/adapter-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjF,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"adapter-entry.d.ts","sourceRoot":"","sources":["../src/adapter-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjF,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * @haverstack/core/adapter
3
3
  * -------------------------------------------------------
4
- * The interfaces a storage adapter implements — record storage, blob
5
- * storage, and the capabilities an adapter declares. Audience: adapter
6
- * implementers (see the in-repo adapters), not app or plugin code, which
7
- * reads `stack.features` instead of these directly.
4
+ * The interfaces a storage adapter implements — the full StackAdapter,
5
+ * its record and blob halves, and the options Stack hands them — plus the
6
+ * helpers adapters share. Audience: adapter implementers (see the in-repo
7
+ * adapters). Types an app reads too, such as StackCapabilities, live in
8
+ * the root entry point instead: every export has exactly one home.
8
9
  */
9
10
  export { combineAdapters } from './combine.js';
10
- export { assertQueryCapabilities, assertSortCapability, assertValidSort, assertValidRelatedTo, assertValidJournalQuery, filtersContent, parseContentFilterKey, } from './query-validation.js';
11
+ export { assertQueryCapabilities, assertSortCapability, assertValidSort, assertValidAssociationFilters, assertValidJournalQuery, filtersContent, parseContentFilterKey, } from './query-validation.js';
11
12
  export { contentSortEntry, contentSortKey, compareSortEntries } from './sort.js';
12
13
  //# sourceMappingURL=adapter-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-entry.js","sourceRoot":"","sources":["../src/adapter-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"adapter-entry.js","sourceRoot":"","sources":["../src/adapter-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
@@ -84,7 +84,9 @@ export declare function compareRecordedAttachments<T extends {
84
84
  export declare function resolveReferencedAttachment<T extends {
85
85
  id: string;
86
86
  createdAt: Date;
87
- entityId?: string;
87
+ createdBy?: {
88
+ subjectId: string;
89
+ };
88
90
  }>(records: readonly T[], opts?: {
89
91
  attachmentRecordId?: string;
90
92
  requesterEntityId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-download.d.ts","sourceRoot":"","sources":["../src/attachment-download.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAcH,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,6BAA6B,CAAC;AAE9D,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAqB9C;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMrE;AAmCD,yKAAyK;AACzK,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGjF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,EAC/E,OAAO,EAAE,SAAS,CAAC,EAAE,GACpB,CAAC,GAAG,SAAS,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,EAClF,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,GACH,MAAM,CAIR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAE5D,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,IAAI,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GACrE,CAAC,GAAG,SAAS,CAUf;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,6BAA6B,CAUhC"}
1
+ {"version":3,"file":"attachment-download.d.ts","sourceRoot":"","sources":["../src/attachment-download.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAcH,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,6BAA6B,CAAC;AAE9D,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAqB9C;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMrE;AAmCD,yKAAyK;AACzK,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGjF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,EAC/E,OAAO,EAAE,SAAS,CAAC,EAAE,GACpB,CAAC,GAAG,SAAS,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,EAClF,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,GACH,MAAM,CAIR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAE5E,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,IAAI,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GACrE,CAAC,GAAG,SAAS,CAUf;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,6BAA6B,CAUhC"}
@@ -156,7 +156,7 @@ export function resolveReferencedAttachment(records, opts = {}) {
156
156
  return named;
157
157
  }
158
158
  if (opts.requesterEntityId) {
159
- const own = records.filter((record) => record.entityId === opts.requesterEntityId);
159
+ const own = records.filter((record) => record.createdBy?.subjectId === opts.requesterEntityId);
160
160
  if (own.length > 0)
161
161
  return firstRecordedAttachment(own);
162
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-download.js","sourceRoot":"","sources":["../src/attachment-download.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-download.js","sourceRoot":"","sources":["../src/attachment-download.ts"],"names":[],"mappings":"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"}
package/dist/changes.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * The split between those last two is the point of this module. Emission
9
9
  * always carries the record — a permission filter has nothing to decide
10
- * with otherwise, and on a hard delete there is nothing left to fetch —
10
+ * with otherwise, and on a purge there is nothing left to fetch —
11
11
  * while the frame handed to a handler is projected from it. So the rule
12
12
  * that a purge discloses neither the record nor its provenance is a
13
13
  * property of one function here, not a convention every emission site has
@@ -37,10 +37,18 @@ export type EmittedChange = {
37
37
  * record did not move. See docs/spec/events.md § The reparent transition.
38
38
  */
39
39
  previousParentId?: string | null;
40
+ /**
41
+ * The type a `migrate` or `restore` took the record out of. Emitter-side
42
+ * only, like `previousParentId` and for the same reason: a `typeId` or
43
+ * `baseId` filter answers for the origin as well as the destination.
44
+ * Absent wherever the type did not change. See docs/spec/events.md
45
+ * § The type-change transition.
46
+ */
47
+ previousTypeId?: string;
40
48
  };
41
49
  /**
42
50
  * Whether an emission matches a subscription's filter. Reads the record
43
- * for the fields the envelope deliberately omits, so `entityId` filters on
51
+ * for the fields the envelope deliberately omits, so `createdBy` filters on
44
52
  * the author and `purged` frames stay filterable without carrying either.
45
53
  */
46
54
  export declare function matchesFilter(emitted: EmittedChange, filter?: ChangeFilter): boolean;
@@ -55,7 +63,7 @@ export declare function matchesFilter(emitted: EmittedChange, filter?: ChangeFil
55
63
  export declare function passesUnlistedBoundary(emitted: EmittedChange, includeUnlisted?: boolean): boolean;
56
64
  /**
57
65
  * The frame a subscriber receives. A `purged` frame never carries the
58
- * record, whatever was asked for: hard delete is the erasure primitive,
66
+ * record, whatever was asked for: purge is the erasure primitive,
59
67
  * and a frame that shipped the body — or the author — of a record the
60
68
  * stack has just destroyed would hand every subscriber a permanent copy of
61
69
  * the thing being erased. See docs/spec/events.md § Purged records carry
@@ -123,11 +131,17 @@ export declare class PendingChange {
123
131
  constructor(ops: ChangeOp | ChangeOp[], moved?: {
124
132
  /**
125
133
  * The requester behind a write that stamps nothing on the record
126
- * itself. A version-bumping write stamps `updatedBy`/`updatedVia`,
127
- * so its emission reads them back instead — see emission() below.
134
+ * itself. A version-bumping write stamps `updatedBy`, so its
135
+ * emission reads it back instead — see emission() below.
128
136
  */
129
137
  actor?: ChangeActor;
130
138
  previousParentId?: string | null;
139
+ /**
140
+ * The type before a write that can change it. Feed-only: every journal
141
+ * entry carries its own `typeId`, so consecutive entries already show
142
+ * the change.
143
+ */
144
+ previousTypeId?: string;
131
145
  /**
132
146
  * What the write moved, association by association. One list for
133
147
  * both halves: the journal takes it as it stands and the feed is
@@ -142,8 +156,8 @@ export declare class PendingChange {
142
156
  *
143
157
  * Absent for a purge, which destroys the log an entry would be appended
144
158
  * to. The rule lives here rather than at each call site that would
145
- * otherwise have to remember it. See docs/spec/journal.md § A hard
146
- * delete destroys the journal.
159
+ * otherwise have to remember it. See docs/spec/journal.md § A purge
160
+ * destroys the journal.
147
161
  */
148
162
  get journal(): JournalEntryInput | undefined;
149
163
  /**
@@ -158,15 +172,7 @@ export declare class PendingChange {
158
172
  * record of some type was destroyed and nothing about whose it was.
159
173
  */
160
174
  emission(record: StackRecord, at?: Date): EmittedChange;
161
- /**
162
- * The frame's two flat lists, flattened out of the one the journal
163
- * takes. Present only where non-empty.
164
- *
165
- * The data half alone: the `permissions` op is what announces an ACL
166
- * move, so a subscriber watching tags is never handed the sharing graph
167
- * as a side effect of the partition sharing one delta.
168
- * See docs/spec/events.md § The event shape.
169
- */
175
+ /** The frame's two flat lists, present only where non-empty. */
170
176
  private associationDeltas;
171
177
  }
172
178
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
package/dist/changes.js CHANGED
@@ -7,19 +7,19 @@
7
7
  *
8
8
  * The split between those last two is the point of this module. Emission
9
9
  * always carries the record — a permission filter has nothing to decide
10
- * with otherwise, and on a hard delete there is nothing left to fetch —
10
+ * with otherwise, and on a purge there is nothing left to fetch —
11
11
  * while the frame handed to a handler is projected from it. So the rule
12
12
  * that a purge discloses neither the record nor its provenance is a
13
13
  * property of one function here, not a convention every emission site has
14
14
  * to remember. See docs/spec/events.md.
15
15
  */
16
- import { StackQueryError } from './errors.js';
17
- import { bumpsVersion, feedAssociationDelta, movesAuthority } from './record-changes.js';
16
+ import { StackBadRequestError } from './errors.js';
17
+ import { bumpsVersion, feedAssociationDelta } from './record-changes.js';
18
18
  /** The `baseId@version` split, as grants and query filters read it. */
19
19
  const baseIdOf = (typeId) => typeId.split('@')[0];
20
20
  /**
21
21
  * Whether an emission matches a subscription's filter. Reads the record
22
- * for the fields the envelope deliberately omits, so `entityId` filters on
22
+ * for the fields the envelope deliberately omits, so `createdBy` filters on
23
23
  * the author and `purged` frames stay filterable without carrying either.
24
24
  */
25
25
  export function matchesFilter(emitted, filter) {
@@ -28,10 +28,19 @@ export function matchesFilter(emitted, filter) {
28
28
  const { change, record } = emitted;
29
29
  if (filter.kinds && !filter.kinds.includes(change.kind))
30
30
  return false;
31
+ // A type change is announced to both types it concerns, as a move is to
32
+ // both containers: see docs/spec/events.md § The type-change transition.
33
+ const typeIds = [change.typeId];
34
+ if (emitted.previousTypeId !== undefined)
35
+ typeIds.push(emitted.previousTypeId);
31
36
  if (filter.typeId !== undefined) {
32
- const wanted = Array.isArray(filter.typeId) ? filter.typeId : [filter.typeId];
33
- const family = baseIdOf(change.typeId);
34
- if (!wanted.some((t) => baseIdOf(t) === family))
37
+ const wanted = asArray(filter.typeId);
38
+ if (!typeIds.some((t) => wanted.includes(t)))
39
+ return false;
40
+ }
41
+ if (filter.baseId !== undefined) {
42
+ const wanted = asArray(filter.baseId);
43
+ if (!typeIds.some((t) => wanted.includes(baseIdOf(t))))
35
44
  return false;
36
45
  }
37
46
  if (filter.parentId !== undefined) {
@@ -45,10 +54,17 @@ export function matchesFilter(emitted, filter) {
45
54
  if (parentId !== filter.parentId && origin !== filter.parentId)
46
55
  return false;
47
56
  }
48
- if (filter.entityId !== undefined && record.entityId !== filter.entityId)
49
- return false;
57
+ for (const field of ['subjectId', 'principalId']) {
58
+ const wanted = filter.createdBy?.[field];
59
+ if (wanted === undefined)
60
+ continue;
61
+ const id = record.createdBy?.[field];
62
+ if (id === undefined || !asArray(wanted).includes(id))
63
+ return false;
64
+ }
50
65
  return true;
51
66
  }
67
+ const asArray = (value) => (Array.isArray(value) ? value : [value]);
52
68
  /**
53
69
  * Whether an emission passes the unlisted-enumeration boundary for one
54
70
  * subscription. The `unlist` transition is the one exception to the
@@ -66,7 +82,7 @@ export function passesUnlistedBoundary(emitted, includeUnlisted) {
66
82
  }
67
83
  /**
68
84
  * The frame a subscriber receives. A `purged` frame never carries the
69
- * record, whatever was asked for: hard delete is the erasure primitive,
85
+ * record, whatever was asked for: purge is the erasure primitive,
70
86
  * and a frame that shipped the body — or the author — of a record the
71
87
  * stack has just destroyed would hand every subscriber a permanent copy of
72
88
  * the thing being erased. See docs/spec/events.md § Purged records carry
@@ -215,8 +231,8 @@ export class PendingChange {
215
231
  *
216
232
  * Absent for a purge, which destroys the log an entry would be appended
217
233
  * to. The rule lives here rather than at each call site that would
218
- * otherwise have to remember it. See docs/spec/journal.md § A hard
219
- * delete destroys the journal.
234
+ * otherwise have to remember it. See docs/spec/journal.md § A purge
235
+ * destroys the journal.
220
236
  */
221
237
  get journal() {
222
238
  if (this.kind === 'purged')
@@ -262,6 +278,10 @@ export class PendingChange {
262
278
  ...(this.moved.previousParentId !== undefined && {
263
279
  previousParentId: this.moved.previousParentId,
264
280
  }),
281
+ ...(this.moved.previousTypeId !== undefined &&
282
+ this.moved.previousTypeId !== record.typeId && {
283
+ previousTypeId: this.moved.previousTypeId,
284
+ }),
265
285
  change: {
266
286
  kind: this.kind,
267
287
  ops: this.ops,
@@ -275,17 +295,9 @@ export class PendingChange {
275
295
  },
276
296
  };
277
297
  }
278
- /**
279
- * The frame's two flat lists, flattened out of the one the journal
280
- * takes. Present only where non-empty.
281
- *
282
- * The data half alone: the `permissions` op is what announces an ACL
283
- * move, so a subscriber watching tags is never handed the sharing graph
284
- * as a side effect of the partition sharing one delta.
285
- * See docs/spec/events.md § The event shape.
286
- */
298
+ /** The frame's two flat lists, present only where non-empty. */
287
299
  associationDeltas() {
288
- const { added, removed } = feedAssociationDelta((this.moved.associations ?? []).filter((c) => !movesAuthority(c)));
300
+ const { added, removed } = feedAssociationDelta(this.moved.associations ?? []);
289
301
  return {
290
302
  ...(added.length && { associationsAdded: added }),
291
303
  ...(removed.length && { associationsRemoved: removed }),
@@ -302,8 +314,7 @@ function actorOf(record, kind) {
302
314
  if (!record.updatedBy)
303
315
  return undefined;
304
316
  return {
305
- entityId: record.updatedBy,
306
- ...(record.updatedVia !== undefined && { principalId: record.updatedVia }),
317
+ ...record.updatedBy,
307
318
  ...(kind === 'created' && record.appId !== undefined && { appId: record.appId }),
308
319
  };
309
320
  }
@@ -360,12 +371,12 @@ export const CHANGE_KINDS = {
360
371
  patch: 'changed',
361
372
  associate: 'changed',
362
373
  dissociate: 'changed',
363
- permissions: 'changed',
374
+ reshare: 'changed',
364
375
  migrate: 'changed',
365
376
  restore: 'changed',
366
377
  undelete: 'changed',
367
378
  delete: 'deleted',
368
- 'hard-delete': 'purged',
379
+ purge: 'purged',
369
380
  list: 'changed',
370
381
  unlist: 'deleted',
371
382
  reparent: 'changed',
@@ -376,7 +387,7 @@ export const CHANGE_KINDS = {
376
387
  * Same charset and same reason as the auth nonce — see
377
388
  * docs/spec/change-feed.md § Frames.
378
389
  */
379
- const SEQ_FORMAT = /^[A-Za-z0-9_-]+$/;
390
+ const CURSOR_FORMAT = /^[A-Za-z0-9_-]+$/;
380
391
  /**
381
392
  * `since` only means something where a relay exists: a stack with no
382
393
  * third party whose writes could have been missed has no cursor it could
@@ -393,14 +404,14 @@ export function assertSinceUsable(since, relaysChanges) {
393
404
  if (since === undefined)
394
405
  return;
395
406
  if (!relaysChanges) {
396
- throw new StackQueryError('subscribe() was passed `since`, but this stack relays no changes from elsewhere and so ' +
407
+ throw new StackBadRequestError('subscribe() was passed `since`, but this stack relays no changes from elsewhere and so ' +
397
408
  'has no cursor it could ever have minted. Omit `since` — or, for a stack that relays ' +
398
- 'from a server, use the seq off a previously delivered RecordChange.');
409
+ 'from a server, use the cursor off a previously delivered RecordChange.');
399
410
  }
400
- if (!SEQ_FORMAT.test(since)) {
401
- throw new StackQueryError(`subscribe() was passed the resume cursor "${since}", which is not a valid seq: a cursor ` +
411
+ if (!CURSOR_FORMAT.test(since)) {
412
+ throw new StackBadRequestError(`subscribe() was passed the resume cursor "${since}", which cannot be framed: a cursor ` +
402
413
  'carries unreserved base64url characters only, because it travels in a frame id. Use ' +
403
- 'the seq off a previously delivered RecordChange, unaltered.');
414
+ 'the cursor off a previously delivered RecordChange, unaltered.');
404
415
  }
405
416
  }
406
417
  //# sourceMappingURL=changes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"changes.js","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
package/dist/combine.d.ts CHANGED
@@ -4,7 +4,7 @@ import type { StackAdapter, StackRecordAdapter, StackBlobAdapter } from './types
4
4
  * Use this when you want different backends for records and blobs, e.g.:
5
5
  *
6
6
  * const adapter = combineAdapters({ record: sqliteAdapter, blob: s3Adapter });
7
- * const stack = await Stack.create(adapter);
7
+ * const stack = await Stack.open(adapter);
8
8
  */
9
9
  export declare function combineAdapters(parts: {
10
10
  record: StackRecordAdapter;