@estiva-app/interop 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +114 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/projection.d.ts +116 -12
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +240 -19
- package/dist/projection.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +6 -0
- package/src/projection.ts +383 -25
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,120 @@ how a declaration is read, is a MAJOR — in `0.x`, a MINOR — even when no
|
|
|
6
6
|
TypeScript signature moved. A consumer upgrading must be able to tell whether
|
|
7
7
|
manifests already published still mean what they meant.
|
|
8
8
|
|
|
9
|
+
## 0.7.0 — 2026-09-02
|
|
10
|
+
|
|
11
|
+
**Manifest behaviour: a `body` slot now reports which content model it is
|
|
12
|
+
written in, and a structured value is no longer truncated.** No manifest changes
|
|
13
|
+
shape. A manifest that already declares `{"body": {"field": "content"}}` starts
|
|
14
|
+
resolving with a `format`; one that declares `truncate` on a value whose event
|
|
15
|
+
says it is a block document stops having it applied.
|
|
16
|
+
|
|
17
|
+
PRO-2 held the `body` slot open because "structured content" had no specified
|
|
18
|
+
format. RIC-1 decided it (SPEC §13): messages are marker text, rich text fields
|
|
19
|
+
are JSON block documents, and the two share an inline vocabulary and nothing
|
|
20
|
+
else. §13 forbids reading either as the other, so a consumer needs to be told
|
|
21
|
+
which one it has — and that is what a `ResolvedSlot` now carries.
|
|
22
|
+
|
|
23
|
+
- **`ResolvedSlot.format`** — `'marker' | 'blocks' | 'unknown'`, and **absent
|
|
24
|
+
when the value is not a body at all**. Absent is not the same as `'marker'`: a
|
|
25
|
+
folded `status` arrives through the same `value` tag a folded description
|
|
26
|
+
does, so nothing in the data distinguishes them and only the slot they were
|
|
27
|
+
declared into does.
|
|
28
|
+
|
|
29
|
+
`'unknown'` exists so a consumer can decline. A format specified after this
|
|
30
|
+
runtime was written must not be parsed as either model, and §13.5 makes
|
|
31
|
+
rendering it as plain text conformant.
|
|
32
|
+
|
|
33
|
+
- **`contentFormatOf(event)`, `CONTENT_FORMAT_TAG`, `BLOCK_DOCUMENT_FORMAT`,
|
|
34
|
+
`BODY_SLOT`** are exported. The default lives here rather than in each
|
|
35
|
+
consumer for the reason `CLOSED_WIDGETS` does: two copies of *absent means
|
|
36
|
+
marker* disagree the first time a third format exists, and the disagreement
|
|
37
|
+
shows up as one app rendering JSON at a person.
|
|
38
|
+
|
|
39
|
+
- **The format is read from the event the value came from**, never from the
|
|
40
|
+
object's root — SPEC §13.4. A description created as marker text and later
|
|
41
|
+
edited into blocks is a root with no tag and a change with one, and the fold
|
|
42
|
+
takes the change's value, tag and all.
|
|
43
|
+
|
|
44
|
+
- **A `fold` may now be seeded from `content`, not only from a tag** —
|
|
45
|
+
`{"fold": "description", "field": "content"}`. §7.2 rule 2 already allowed a
|
|
46
|
+
fold seeded from a tag, for the reason that tag-alone goes stale and
|
|
47
|
+
fold-alone loses the creation value. A body lives in `content`, so the same
|
|
48
|
+
argument reaches there, and until now neither of Ship's descriptions could be
|
|
49
|
+
declared at all: an issue's is `fields.description?.value ?? event.content`,
|
|
50
|
+
and a project's puts a `description` tag between the two. The chain is fold,
|
|
51
|
+
then tag, then content.
|
|
52
|
+
|
|
53
|
+
Found by trying to declare the slot rather than by reading the spec. The two
|
|
54
|
+
expressible declarations were both wrong in the way §7.2 rule 1 warns about:
|
|
55
|
+
`{field: "content"}` renders the creation value for ever, and
|
|
56
|
+
`{fold: "description"}` renders blank for every object nobody has edited —
|
|
57
|
+
most of them — and blank reads as "that app is broken" (PEE-10).
|
|
58
|
+
|
|
59
|
+
- **`truncate` is refused on a structured value.** PRO-8 established that
|
|
60
|
+
truncating structure produces output that is wrong and cannot tell that it is
|
|
61
|
+
wrong; it was enforced by a comment in Ship's manifest and a type only Ship
|
|
62
|
+
had. Any manifest could publish `{"field": "content", "truncate": 120}`, and
|
|
63
|
+
the consumer would have sliced a JSON document. Marker text is still
|
|
64
|
+
truncated — a cut `**bold` is visibly cut.
|
|
65
|
+
|
|
66
|
+
**Absence of a declaration stays a declaration, permanently.** 731 published
|
|
67
|
+
bodies carry no `content-format` tag and none of them can be given one: roots
|
|
68
|
+
are replaceable by their author alone, messages and changes not at all, and
|
|
69
|
+
REW-11 established that rewriting stamps a `created_at` the relay will not
|
|
70
|
+
backdate. Untagged means marker text for good, not during a window.
|
|
71
|
+
|
|
72
|
+
## 0.6.0 — 2026-09-01
|
|
73
|
+
|
|
74
|
+
**Manifest behaviour: an object-creating action is now offered instead of
|
|
75
|
+
skipped.** No manifest changes shape; one that already declares
|
|
76
|
+
`input.type: "object"` starts being rendered, which is the point (RFC 0.4
|
|
77
|
+
§13.4).
|
|
78
|
+
|
|
79
|
+
- **`resolveActions` no longer drops them.** It used to say why: *"an action
|
|
80
|
+
that creates a whole new object needs a form and a parent, so it is skipped
|
|
81
|
+
rather than drawn as a control that cannot work."* True until something drew
|
|
82
|
+
one — and the consequence was that a manifest could describe the single most
|
|
83
|
+
useful cross-app action and no app could offer it. Ship has declared
|
|
84
|
+
`add-issue` with a real schema the whole time.
|
|
85
|
+
|
|
86
|
+
They resolve with `control: 'form'`, `fields` (each with any vocabulary
|
|
87
|
+
already looked up, the same service `options` performs for a `select`), and
|
|
88
|
+
**`createsUnder`** — the other half of "needs a form *and a parent*". A
|
|
89
|
+
consumer drawing only the properties would publish an orphan.
|
|
90
|
+
|
|
91
|
+
- **`buildActionEvent` takes `{ property: value }`** for those actions, and a
|
|
92
|
+
`newId` for the object being created.
|
|
93
|
+
|
|
94
|
+
`newId` is supplied rather than generated: ADR 0002 §10 constraint 2 — the
|
|
95
|
+
runtime reaches for nothing and is handed everything — and it makes the built
|
|
96
|
+
event a pure function of its inputs. It is **required** for a kind in NIP-01's
|
|
97
|
+
parameterized-replaceable range, because an object published without a `d` has
|
|
98
|
+
no address at all: nothing can reference it, comment on it, or act on it.
|
|
99
|
+
|
|
100
|
+
**The rule that makes construction possible, previously implicit: a property's
|
|
101
|
+
name is the tag its value is written to.** It held for Ship by a coincidence of
|
|
102
|
+
naming — `add-issue` declares `{ title }` and a Ship issue carries
|
|
103
|
+
`["title", …]` — and nothing said so, while RFC 0.4 §13.4 asserts the existing
|
|
104
|
+
declaration is already sufficient for a consumer to try. Stated now at the point
|
|
105
|
+
of use.
|
|
106
|
+
|
|
107
|
+
Its limit, recorded rather than designed around: **nothing can target an event's
|
|
108
|
+
`content`.** Ship's issue description lives there and is therefore not creatable
|
|
109
|
+
from another app, which is why `add-issue` declares only a title.
|
|
110
|
+
|
|
111
|
+
**Every refusal names what was allowed** — an undeclared field, a required one
|
|
112
|
+
left empty, a value outside a declared vocabulary, and a scalar handed to a form
|
|
113
|
+
or the reverse. That is a requirement rather than a nicety: the owning app
|
|
114
|
+
cannot enforce any of it, so a consumer that guesses is the one putting junk in
|
|
115
|
+
a shared record, and one told only "invalid" cannot do better next time.
|
|
116
|
+
|
|
117
|
+
Verified against production, through Ship's live manifest: resolved as a form,
|
|
118
|
+
built, published, **and Ship's own fold shows an ordinary issue** — right title,
|
|
119
|
+
default status, right parent. The fixture was deleted afterwards.
|
|
120
|
+
|
|
121
|
+
Additive, so a MINOR by the rule ADR 0002 §4b sets for `0.x`.
|
|
122
|
+
|
|
9
123
|
## 0.5.0 — 2026-09-01
|
|
10
124
|
|
|
11
125
|
**Manifest behaviour: two optional fields an action may now declare.** Nothing
|
package/dist/index.d.ts
CHANGED
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
* of every app that installed it, which is the objection that rules out
|
|
25
25
|
* iframes.
|
|
26
26
|
*/
|
|
27
|
-
export { resolveManifest, resolveForeignObject, resolveForeignEvent, resolveFolderProject, commentKindsOf, buildActionEvent, pickWidget, widgetChainProblem, CLOSED_WIDGETS, peopleViaRelay, createProjectionCache, createPeopleCache, MANIFEST_TTL_MS, PROFILE_HIT_TTL_MS, PROFILE_MISS_TTL_MS, type PeopleCache, type PeopleCacheOptions, type ProjectionCache, type ResolvedManifest, type QueryFn, type PeopleFn, type People, type ForeignObject, type FolderProject, type ResolvedSlot, type ResolvedAction, type ManifestAction, type ActionEffect, ACTION_EFFECTS, type UnsignedActionEvent, } from './projection.js';
|
|
27
|
+
export { resolveManifest, resolveForeignObject, resolveForeignEvent, resolveFolderProject, commentKindsOf, buildActionEvent, pickWidget, widgetChainProblem, CLOSED_WIDGETS, contentFormatOf, BODY_SLOT, CONTENT_FORMAT_TAG, BLOCK_DOCUMENT_FORMAT, type ContentFormat, peopleViaRelay, createProjectionCache, createPeopleCache, MANIFEST_TTL_MS, PROFILE_HIT_TTL_MS, PROFILE_MISS_TTL_MS, type PeopleCache, type PeopleCacheOptions, type ProjectionCache, type ResolvedManifest, type QueryFn, type PeopleFn, type People, type ForeignObject, type FolderProject, type ResolvedSlot, type ResolvedAction, type ActionFormField, type ManifestAction, type ActionEffect, ACTION_EFFECTS, type UnsignedActionEvent, } from './projection.js';
|
|
28
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,aAAa,EAClB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
* of every app that installed it, which is the objection that rules out
|
|
25
25
|
* iframes.
|
|
26
26
|
*/
|
|
27
|
-
export { resolveManifest, resolveForeignObject, resolveForeignEvent, resolveFolderProject, commentKindsOf, buildActionEvent, pickWidget, widgetChainProblem, CLOSED_WIDGETS, peopleViaRelay, createProjectionCache, createPeopleCache, MANIFEST_TTL_MS, PROFILE_HIT_TTL_MS, PROFILE_MISS_TTL_MS, ACTION_EFFECTS, } from './projection.js';
|
|
27
|
+
export { resolveManifest, resolveForeignObject, resolveForeignEvent, resolveFolderProject, commentKindsOf, buildActionEvent, pickWidget, widgetChainProblem, CLOSED_WIDGETS, contentFormatOf, BODY_SLOT, CONTENT_FORMAT_TAG, BLOCK_DOCUMENT_FORMAT, peopleViaRelay, createProjectionCache, createPeopleCache, MANIFEST_TTL_MS, PROFILE_HIT_TTL_MS, PROFILE_MISS_TTL_MS, ACTION_EFFECTS, } from './projection.js';
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EAErB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EAenB,cAAc,GAEf,MAAM,iBAAiB,CAAA"}
|
package/dist/projection.d.ts
CHANGED
|
@@ -263,7 +263,28 @@ export interface ManifestAction {
|
|
|
263
263
|
};
|
|
264
264
|
input?: {
|
|
265
265
|
type: string;
|
|
266
|
+
/** For a scalar input: the vocabulary its value must come from. */
|
|
266
267
|
enum?: string;
|
|
268
|
+
/**
|
|
269
|
+
* For `type: 'object'`: the fields a consumer draws, and which are required.
|
|
270
|
+
*
|
|
271
|
+
* **A property's name is the tag its value is written to** (PRO-4). That
|
|
272
|
+
* rule was implicit — Ship's `add-issue` declares `{ title }` and a Ship
|
|
273
|
+
* issue carries `["title", …]`, so it held by coincidence of naming and
|
|
274
|
+
* nothing said so. It is stated here because a consumer cannot construct
|
|
275
|
+
* the event without it, and RFC 0.4 §13.4 asserts the existing declaration
|
|
276
|
+
* is already sufficient for one to try.
|
|
277
|
+
*
|
|
278
|
+
* Its limit, recorded rather than designed around: **nothing can target an
|
|
279
|
+
* event's `content`.** Ship's issue description lives there and is
|
|
280
|
+
* therefore not creatable from another app, which is why `add-issue`
|
|
281
|
+
* declares only a title.
|
|
282
|
+
*/
|
|
283
|
+
properties?: Record<string, {
|
|
284
|
+
type?: string;
|
|
285
|
+
enum?: string;
|
|
286
|
+
}>;
|
|
287
|
+
required?: string[];
|
|
267
288
|
};
|
|
268
289
|
}
|
|
269
290
|
/**
|
|
@@ -276,6 +297,19 @@ export interface ManifestAction {
|
|
|
276
297
|
* them on this side is what lets the React component stay a dumb renderer that
|
|
277
298
|
* would work for any app.
|
|
278
299
|
*/
|
|
300
|
+
/** One field of an object-creating action's form. */
|
|
301
|
+
export interface ActionFormField {
|
|
302
|
+
/** Also the tag its value is written to — see {@link ManifestAction.input}. */
|
|
303
|
+
name: string;
|
|
304
|
+
type: string;
|
|
305
|
+
required: boolean;
|
|
306
|
+
/** When the property names a vocabulary, its entries, already looked up. */
|
|
307
|
+
options?: {
|
|
308
|
+
value: string;
|
|
309
|
+
label: string;
|
|
310
|
+
colour?: string;
|
|
311
|
+
}[];
|
|
312
|
+
}
|
|
279
313
|
export interface ResolvedAction {
|
|
280
314
|
id: string;
|
|
281
315
|
label: string;
|
|
@@ -286,13 +320,27 @@ export interface ResolvedAction {
|
|
|
286
320
|
* something this version does not recognise — both meaning *unknown*.
|
|
287
321
|
*/
|
|
288
322
|
effect?: ActionEffect;
|
|
289
|
-
control: 'select' | 'pubkey' | 'text';
|
|
323
|
+
control: 'select' | 'pubkey' | 'text' | 'form';
|
|
290
324
|
/** For `select`: the declared vocabulary, already looked up. */
|
|
291
325
|
options?: {
|
|
292
326
|
value: string;
|
|
293
327
|
label: string;
|
|
294
328
|
colour?: string;
|
|
295
329
|
}[];
|
|
330
|
+
/**
|
|
331
|
+
* For `form`: the fields to draw, in declaration order, with any vocabulary
|
|
332
|
+
* already looked up — the same service `options` performs for a `select`.
|
|
333
|
+
*/
|
|
334
|
+
fields?: ActionFormField[];
|
|
335
|
+
/**
|
|
336
|
+
* For `form`: that the new object hangs under the one the action was invoked
|
|
337
|
+
* on (`emits.toAddressOf: 'self'`).
|
|
338
|
+
*
|
|
339
|
+
* Surfaced because it is the other half of "needs a form **and a parent**",
|
|
340
|
+
* which is what made these unrenderable: a consumer drawing only the
|
|
341
|
+
* properties would publish an orphan.
|
|
342
|
+
*/
|
|
343
|
+
createsUnder?: string;
|
|
296
344
|
/** The value this field holds right now, so a control can show it. */
|
|
297
345
|
current?: string;
|
|
298
346
|
field?: string;
|
|
@@ -369,6 +417,46 @@ export declare function createProjectionCache(ttlMs?: number): ProjectionCache;
|
|
|
369
417
|
* reference nothing can draw — paying full price on every tick for ever.
|
|
370
418
|
*/
|
|
371
419
|
export declare function resolveManifest(pointer: AddressPointer, query: QueryFn, cache?: ProjectionCache): Promise<ResolvedManifest | null>;
|
|
420
|
+
/**
|
|
421
|
+
* What content model a body is written in — SPEC §13.4.
|
|
422
|
+
*
|
|
423
|
+
* Three values, not two, and not the raw tag string. A consumer has to make a
|
|
424
|
+
* three-way decision and **must not guess the third**:
|
|
425
|
+
*
|
|
426
|
+
* - `marker` — the §13.2 dialect. The default, permanently. 731 published
|
|
427
|
+
* bodies carry no tag and none of them can be given one, so this is not a
|
|
428
|
+
* migration window that closes.
|
|
429
|
+
* - `blocks` — a §13.3 JSON block document.
|
|
430
|
+
* - `unknown` — a format declared after this runtime was written. Render the
|
|
431
|
+
* body as plain text; §13.5 says declining to format is conformant, and
|
|
432
|
+
* parsing it as either known model is what §13 forbids outright.
|
|
433
|
+
*
|
|
434
|
+
* It is resolved here rather than left to each consumer for the same reason
|
|
435
|
+
* `CLOSED_WIDGETS` is: two copies of `tag === undefined ? marker : tag ===
|
|
436
|
+
* 'estiva-blocks-1' ? blocks : text` disagree the first time a third format
|
|
437
|
+
* exists, and the disagreement shows up as one app rendering JSON at a person.
|
|
438
|
+
*/
|
|
439
|
+
export type ContentFormat = 'marker' | 'blocks' | 'unknown';
|
|
440
|
+
/**
|
|
441
|
+
* The one slot in SPEC §7.2's closed set that means "structured content".
|
|
442
|
+
*
|
|
443
|
+
* Named rather than inlined because the runtime keys behaviour on it twice —
|
|
444
|
+
* whether a value carries a content format, and whether it may be truncated —
|
|
445
|
+
* and a consumer reads `slots.body` to find it.
|
|
446
|
+
*/
|
|
447
|
+
export declare const BODY_SLOT = "body";
|
|
448
|
+
/** The tag SPEC §13.4 defines. Absence is a declaration, not an omission. */
|
|
449
|
+
export declare const CONTENT_FORMAT_TAG = "content-format";
|
|
450
|
+
/** The one format §13.3 names today. */
|
|
451
|
+
export declare const BLOCK_DOCUMENT_FORMAT = "estiva-blocks-1";
|
|
452
|
+
/**
|
|
453
|
+
* The content model an event's body is in.
|
|
454
|
+
*
|
|
455
|
+
* **Decided by the tag alone.** §13.4 is explicit that a reader MUST NOT decide
|
|
456
|
+
* by inspecting the body: a legacy description that happens to begin with `{`
|
|
457
|
+
* is marker text, because it carries no tag.
|
|
458
|
+
*/
|
|
459
|
+
export declare function contentFormatOf(event: SignedEvent): ContentFormat;
|
|
372
460
|
/**
|
|
373
461
|
* Which layout to draw, from a declared type or an ordered chain of them.
|
|
374
462
|
*
|
|
@@ -424,6 +512,19 @@ export interface ResolvedSlot {
|
|
|
424
512
|
colour?: string;
|
|
425
513
|
/** True when the value is a pubkey and should be shown as a person. */
|
|
426
514
|
isPubkey?: boolean;
|
|
515
|
+
/**
|
|
516
|
+
* The content model this value is written in — SPEC §13.4.
|
|
517
|
+
*
|
|
518
|
+
* Set only for a slot whose source can carry a body (`{field: "content"}`, or
|
|
519
|
+
* a `fold` a change event has actually set). **Undefined means the value is
|
|
520
|
+
* not a body at all** — a tag, a seed, a default — not that it is marker
|
|
521
|
+
* text. `'marker'` is what "a body with no declared format" resolves to, and
|
|
522
|
+
* that is permanent rather than a migration state.
|
|
523
|
+
*
|
|
524
|
+
* A consumer rendering `slots.body` must branch on this. Parsing a block
|
|
525
|
+
* document as marker text, or the reverse, is forbidden outright by §13.
|
|
526
|
+
*/
|
|
527
|
+
format?: ContentFormat;
|
|
427
528
|
/**
|
|
428
529
|
* The underlying field this slot reads, when it has a name.
|
|
429
530
|
*
|
|
@@ -662,16 +763,6 @@ lookupPeople?: PeopleFn,
|
|
|
662
763
|
depth?: number,
|
|
663
764
|
/** See {@link ProjectionCache}. Omitting it is exactly the old behaviour. */
|
|
664
765
|
cache?: ProjectionCache): Promise<FolderProject | null>;
|
|
665
|
-
/**
|
|
666
|
-
* Build the event that performs a manifest-declared action.
|
|
667
|
-
*
|
|
668
|
-
* Pure, and separate from the Convex action for the same reason `projection.ts`
|
|
669
|
-
* is separate from `foreign.ts`: this is the part worth testing against a live
|
|
670
|
-
* relay, and it must not need a deployment or a signed-in session to run.
|
|
671
|
-
*
|
|
672
|
-
* Returns a string on refusal rather than throwing — every failure here is
|
|
673
|
-
* something a user should read.
|
|
674
|
-
*/
|
|
675
766
|
export declare function buildActionEvent(args: {
|
|
676
767
|
manifest: {
|
|
677
768
|
records?: RecordsRule;
|
|
@@ -685,7 +776,20 @@ export declare function buildActionEvent(args: {
|
|
|
685
776
|
objectAuthor: string;
|
|
686
777
|
folder: string;
|
|
687
778
|
actionId: string;
|
|
688
|
-
|
|
779
|
+
/**
|
|
780
|
+
* A scalar for a change or a comment; `{ property: value }` for an
|
|
781
|
+
* object-creating action, whose form has several fields.
|
|
782
|
+
*/
|
|
783
|
+
value: string | Record<string, string>;
|
|
784
|
+
/**
|
|
785
|
+
* A fresh identifier for an object being created, when its kind is
|
|
786
|
+
* parameterized-replaceable and therefore needs a `d`.
|
|
787
|
+
*
|
|
788
|
+
* Supplied rather than generated: ADR 0002 §10 constraint 2 — the runtime
|
|
789
|
+
* reaches for nothing and is handed everything. It also makes the built event
|
|
790
|
+
* a pure function of its inputs, which is what lets a test assert on one.
|
|
791
|
+
*/
|
|
792
|
+
newId?: string;
|
|
689
793
|
pubkey: string;
|
|
690
794
|
createdAtMs: number;
|
|
691
795
|
}): UnsignedActionEvent | string;
|
package/dist/projection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAiF,KAAK,cAAc,EAAqB,MAAM,sBAAsB,CAAA;AAC5J,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEnF,+EAA+E;AAC/E,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;AAEpF,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAE7D,4DAA4D;AAC5D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAc,CAAA;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAEzC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,OAAO,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACtC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAA;IAClC,sDAAsD;IACtD,KAAK,IAAI,IAAI,CAAA;CACd;AAKD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CAiC/E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAevD;AA0CD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAK3D;AAED,0DAA0D;AAC1D,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C;AAED,UAAU,QAAQ;IAChB;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,CAAC,EAAE,MAAM,CAAA;QACd;;;;;;;;;;;;;WAaG;QACH,KAAK,CAAC,EAAE,SAAS,GAAG,YAAY,CAAA;KACjC,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;AAE5D,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAsC,CAAA;AAExF,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gCAAgC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd;;;;;;;;;WASG;QACH,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
|