@estiva-app/interop 0.6.0 → 0.8.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 CHANGED
@@ -6,6 +6,103 @@ 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.8.0 — 2026-09-02
10
+
11
+ **Manifest behaviour: a `body` slot now always reports a format, whichever
12
+ source it came from.** 0.7.0 reported one only for `{field: "content"}` and for
13
+ a folded change, on the reasoning that *a tag is a scalar and never a body*.
14
+
15
+ **That was false, and false in the common case.** Ship writes a project's
16
+ description to a root `description` tag and leaves `content` empty on purpose,
17
+ so a reader holding only tags has it without fetching content (`events.ts`).
18
+ Found by resolving production rather than by re-reading the rule: 11 of 15
19
+ projects resolve a body and **2 of them reported `format: undefined`**, because
20
+ nobody had ever changed their description and it lives in the tag.
21
+
22
+ A consumer seeing `undefined` cannot tell which model it has, and §13 forbids
23
+ guessing — so those two were exactly the objects the format exists for.
24
+
25
+ The rule is now the slot, not the source:
26
+
27
+ | the value came from | format |
28
+ | --- | --- |
29
+ | a change event | what that change declared, else `marker` |
30
+ | a root tag, or the root's `content` | `contentFormatOf(root)` — both are the same event, and §13.4's tag describes that event's body wherever it keeps it |
31
+ | a `default` | `marker`; a literal in the manifest is plain text by construction |
32
+
33
+ So **`slots.body` always carries a format and a consumer never needs its own
34
+ `?? 'marker'`**, which is the whole reason the default lives in this package.
35
+
36
+ Unchanged: `{field: "content"}` reports a format whatever slot it was declared
37
+ into, which keeps the truncation guard reachable for the
38
+ `{"subtitle": {"field": "content", "truncate": 120}}` mis-declaration. And
39
+ everything that is not a body still reports nothing — `undefined` means *not a
40
+ body*, not *marker*. A `title` on a block-document event still reports nothing,
41
+ and a folded `lead` is a pubkey rather than prose.
42
+
43
+ ## 0.7.0 — 2026-09-02
44
+
45
+ **Manifest behaviour: a `body` slot now reports which content model it is
46
+ written in, and a structured value is no longer truncated.** No manifest changes
47
+ shape. A manifest that already declares `{"body": {"field": "content"}}` starts
48
+ resolving with a `format`; one that declares `truncate` on a value whose event
49
+ says it is a block document stops having it applied.
50
+
51
+ PRO-2 held the `body` slot open because "structured content" had no specified
52
+ format. RIC-1 decided it (SPEC §13): messages are marker text, rich text fields
53
+ are JSON block documents, and the two share an inline vocabulary and nothing
54
+ else. §13 forbids reading either as the other, so a consumer needs to be told
55
+ which one it has — and that is what a `ResolvedSlot` now carries.
56
+
57
+ - **`ResolvedSlot.format`** — `'marker' | 'blocks' | 'unknown'`, and **absent
58
+ when the value is not a body at all**. Absent is not the same as `'marker'`: a
59
+ folded `status` arrives through the same `value` tag a folded description
60
+ does, so nothing in the data distinguishes them and only the slot they were
61
+ declared into does.
62
+
63
+ `'unknown'` exists so a consumer can decline. A format specified after this
64
+ runtime was written must not be parsed as either model, and §13.5 makes
65
+ rendering it as plain text conformant.
66
+
67
+ - **`contentFormatOf(event)`, `CONTENT_FORMAT_TAG`, `BLOCK_DOCUMENT_FORMAT`,
68
+ `BODY_SLOT`** are exported. The default lives here rather than in each
69
+ consumer for the reason `CLOSED_WIDGETS` does: two copies of *absent means
70
+ marker* disagree the first time a third format exists, and the disagreement
71
+ shows up as one app rendering JSON at a person.
72
+
73
+ - **The format is read from the event the value came from**, never from the
74
+ object's root — SPEC §13.4. A description created as marker text and later
75
+ edited into blocks is a root with no tag and a change with one, and the fold
76
+ takes the change's value, tag and all.
77
+
78
+ - **A `fold` may now be seeded from `content`, not only from a tag** —
79
+ `{"fold": "description", "field": "content"}`. §7.2 rule 2 already allowed a
80
+ fold seeded from a tag, for the reason that tag-alone goes stale and
81
+ fold-alone loses the creation value. A body lives in `content`, so the same
82
+ argument reaches there, and until now neither of Ship's descriptions could be
83
+ declared at all: an issue's is `fields.description?.value ?? event.content`,
84
+ and a project's puts a `description` tag between the two. The chain is fold,
85
+ then tag, then content.
86
+
87
+ Found by trying to declare the slot rather than by reading the spec. The two
88
+ expressible declarations were both wrong in the way §7.2 rule 1 warns about:
89
+ `{field: "content"}` renders the creation value for ever, and
90
+ `{fold: "description"}` renders blank for every object nobody has edited —
91
+ most of them — and blank reads as "that app is broken" (PEE-10).
92
+
93
+ - **`truncate` is refused on a structured value.** PRO-8 established that
94
+ truncating structure produces output that is wrong and cannot tell that it is
95
+ wrong; it was enforced by a comment in Ship's manifest and a type only Ship
96
+ had. Any manifest could publish `{"field": "content", "truncate": 120}`, and
97
+ the consumer would have sliced a JSON document. Marker text is still
98
+ truncated — a cut `**bold` is visibly cut.
99
+
100
+ **Absence of a declaration stays a declaration, permanently.** 731 published
101
+ bodies carry no `content-format` tag and none of them can be given one: roots
102
+ are replaceable by their author alone, messages and changes not at all, and
103
+ REW-11 established that rewriting stamps a `created_at` the relay will not
104
+ backdate. Untagged means marker text for good, not during a window.
105
+
9
106
  ## 0.6.0 — 2026-09-01
10
107
 
11
108
  **Manifest behaviour: an object-creating action is now offered instead of
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 ActionFormField, 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
@@ -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,eAAe,EACpB,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,EAenB,cAAc,GAEf,MAAM,iBAAiB,CAAA"}
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"}
@@ -417,6 +417,46 @@ export declare function createProjectionCache(ttlMs?: number): ProjectionCache;
417
417
  * reference nothing can draw — paying full price on every tick for ever.
418
418
  */
419
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;
420
460
  /**
421
461
  * Which layout to draw, from a declared type or an ordered chain of them.
422
462
  *
@@ -472,6 +512,19 @@ export interface ResolvedSlot {
472
512
  colour?: string;
473
513
  /** True when the value is a pubkey and should be shown as a person. */
474
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;
475
528
  /**
476
529
  * The underlying field this slot reads, when it has a name.
477
530
  *
@@ -1 +1 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
@@ -438,7 +438,18 @@ function byOrder(a, b) {
438
438
  * several paragraphs establishing is the worst available outcome, because a
439
439
  * blank card reads as "that app is broken". It was never caught because Ship
440
440
  * is the only app that had ever published a manifest, and Ship folds. Nothing
441
- * in RFC 0.4 §13.1 makes `records` mandatory.
441
+ * in RFC 0.4 §13.1 makes `records` mandatory — but SPEC §7 did, and that is the
442
+ * document a stranger implements from. It said an app **MUST** publish a
443
+ * manifest whose content carries `records` and `projections`, so the code was
444
+ * right and the specification was wrong, in a way that would have made anyone
445
+ * following the text declare change events they do not have. SPEC §7.1 now says
446
+ * `records` is OPTIONAL and states the consumer's obligation as a MUST: render
447
+ * the projection, treat every `fold` slot as absent, fall through to its
448
+ * `default`, and do not refuse (PRO-12).
449
+ *
450
+ * The citation is corrected in place rather than deleted because the two
451
+ * documents disagreeing is the thing worth remembering: reasoning from the RFC
452
+ * alone reached the right behaviour and the wrong justification.
442
453
  *
443
454
  * The substitute rule below is only ever used to *fold*, never to query, and
444
455
  * that distinction is load-bearing. The first attempt used `changeKind: -1` as
@@ -460,6 +471,31 @@ function foldRuleOf(manifest) {
460
471
  rule: 'last-write-wins-per-field',
461
472
  });
462
473
  }
474
+ /**
475
+ * The one slot in SPEC §7.2's closed set that means "structured content".
476
+ *
477
+ * Named rather than inlined because the runtime keys behaviour on it twice —
478
+ * whether a value carries a content format, and whether it may be truncated —
479
+ * and a consumer reads `slots.body` to find it.
480
+ */
481
+ export const BODY_SLOT = 'body';
482
+ /** The tag SPEC §13.4 defines. Absence is a declaration, not an omission. */
483
+ export const CONTENT_FORMAT_TAG = 'content-format';
484
+ /** The one format §13.3 names today. */
485
+ export const BLOCK_DOCUMENT_FORMAT = 'estiva-blocks-1';
486
+ /**
487
+ * The content model an event's body is in.
488
+ *
489
+ * **Decided by the tag alone.** §13.4 is explicit that a reader MUST NOT decide
490
+ * by inspecting the body: a legacy description that happens to begin with `{`
491
+ * is marker text, because it carries no tag.
492
+ */
493
+ export function contentFormatOf(event) {
494
+ const declared = tagValue(event, CONTENT_FORMAT_TAG);
495
+ if (declared === undefined || declared === '')
496
+ return 'marker';
497
+ return declared === BLOCK_DOCUMENT_FORMAT ? 'blocks' : 'unknown';
498
+ }
463
499
  function foldChanges(changes, rule) {
464
500
  const fields = {};
465
501
  for (const change of [...changes].sort(byOrder)) {
@@ -467,7 +503,16 @@ function foldChanges(changes, rule) {
467
503
  const value = tagValue(change, rule.valueTag);
468
504
  if (!field || value === undefined)
469
505
  continue; // a partial change sets nothing
470
- fields[field] = { value, by: change.pubkey, at: change.created_at };
506
+ // The format travels with the *winning* change, not with the object. SPEC
507
+ // §13.4: "an app MUST read the tag from the event it took the value from,
508
+ // never from the object's root" — a description created as marker text and
509
+ // later edited into blocks is a root with no tag and a change with one.
510
+ fields[field] = {
511
+ value,
512
+ by: change.pubkey,
513
+ at: change.created_at,
514
+ format: contentFormatOf(change),
515
+ };
471
516
  }
472
517
  return fields;
473
518
  }
@@ -565,19 +610,58 @@ function firstTag(root, tag) {
565
610
  }
566
611
  return undefined;
567
612
  }
568
- function rawSlotValue(spec, root, folded) {
613
+ function rawSlotValue(spec, root, folded, isBody) {
569
614
  // `fold` first, and a spec may carry both: a field that starts as a tag on
570
615
  // the root event and is then overridden by changes (a project's lead is the
571
616
  // case in hand). Reading the tag first would render the value the object was
572
617
  // created with forever — which is exactly what someone sees right after
573
618
  // reassigning it from here.
574
619
  if (spec.fold) {
575
- return folded[spec.fold]?.value ?? firstTag(root, spec.tag) ?? spec.default;
620
+ const change = folded[spec.fold];
621
+ if (change)
622
+ return { value: change.value, format: isBody ? (change.format ?? 'marker') : undefined };
623
+ /*
624
+ Nobody has changed this field, so the object's own creation value stands.
625
+ §7.2 rule 2 covers seeding from a tag; `field: "content"` seeds from the
626
+ event body, and the two compose — tag first, then content.
627
+
628
+ **Needed because a description is where an app puts its body and `content`
629
+ is where the body goes.** Ship's issue description is
630
+ `fields.description?.value ?? event.content` and its project description
631
+ puts a `description` tag between the two (`fold.ts`), and neither could be
632
+ declared before this. The nearest expressible declarations were both
633
+ wrong in the way §7.2 rule 1 already warns about: `{field: "content"}`
634
+ alone renders the value the object was created with for ever, and
635
+ `{fold: "description"}` alone renders blank for every object nobody has
636
+ edited — which is most of them, and blank reads as "that app is broken"
637
+ (PEE-10).
638
+
639
+ The seed tag reports no format: a tag is a scalar. Content does, because
640
+ it is the event's body whatever slot it was declared into — the same rule
641
+ the direct `field: "content"` branch below follows, and what keeps the
642
+ truncation guard reachable.
643
+ */
644
+ const seedTag = firstTag(root, spec.tag);
645
+ if (seedTag !== undefined)
646
+ return { value: seedTag, format: isBody ? contentFormatOf(root) : undefined };
647
+ if (spec.field === 'content' && root.content !== '') {
648
+ return { value: root.content, format: contentFormatOf(root) };
649
+ }
650
+ if (spec.default === undefined)
651
+ return undefined;
652
+ // A default is a literal in the manifest, not a value any event carries, so
653
+ // it is plain text by construction. Reported as `marker` rather than as
654
+ // nothing so that a `body` always has a format — see below.
655
+ return { value: spec.default, format: isBody ? 'marker' : undefined };
656
+ }
657
+ if (spec.tag) {
658
+ const value = firstTag(root, spec.tag);
659
+ if (value === undefined)
660
+ return undefined;
661
+ return { value, format: isBody ? contentFormatOf(root) : undefined };
576
662
  }
577
- if (spec.tag)
578
- return firstTag(root, spec.tag);
579
663
  if (spec.field === 'content')
580
- return root.content;
664
+ return { value: root.content, format: contentFormatOf(root) };
581
665
  /*
582
666
  `pubkey` — the event's author — added by PRO-6.
583
667
 
@@ -593,14 +677,29 @@ function rawSlotValue(spec, root, folded) {
593
677
  what a message wants as its title everywhere it appears.
594
678
  */
595
679
  if (spec.field === 'pubkey')
596
- return root.pubkey;
680
+ return { value: root.pubkey };
597
681
  return undefined;
598
682
  }
599
- function resolveSlot(spec, root, folded, manifest) {
600
- const raw = rawSlotValue(spec, root, folded);
601
- if (raw === undefined || raw === '')
683
+ function resolveSlot(spec, root, folded, manifest, name) {
684
+ const source = rawSlotValue(spec, root, folded, name === BODY_SLOT);
685
+ if (source === undefined || source.value === '')
602
686
  return null;
603
- let value = truncate(raw, spec.truncate);
687
+ const raw = source.value;
688
+ /*
689
+ PRO-8's rule, now enforceable rather than only written down.
690
+
691
+ `truncate` is a plain-text operation. Ship's manifest carried a comment
692
+ saying so and a type that forbade the pairing, but nothing stopped another
693
+ app publishing `{"field": "content", "truncate": 120}` — and the consumer
694
+ would happily slice 120 characters out of a JSON block document and render
695
+ the fragment. That is the PRO-8 defect exactly: output that is wrong and
696
+ cannot tell that it is wrong.
697
+
698
+ Marker text is still truncated. It degrades honestly — a cut `**bold` is
699
+ visibly a cut, and 548 published messages are written in it.
700
+ */
701
+ const structured = source.format === 'blocks' || source.format === 'unknown';
702
+ let value = structured ? raw : truncate(raw, spec.truncate);
604
703
  let colour;
605
704
  if (spec.map) {
606
705
  const entry = manifest.vocabularies?.[spec.map]?.find((v) => v.value === raw);
@@ -616,6 +715,11 @@ function resolveSlot(spec, root, folded, manifest) {
616
715
  colour,
617
716
  isPubkey: spec.as === 'pubkey',
618
717
  field: spec.fold ?? (Array.isArray(spec.tag) ? spec.tag[0] : spec.tag),
718
+ // Present only on a slot that can carry a body. Absent is the honest shape
719
+ // for a title read from a tag — and it keeps the key out of every existing
720
+ // consumer's deep comparisons, which is not the reason but is a real cost
721
+ // avoided: `format: undefined` is an own property to `deepStrictEqual`.
722
+ ...(source.format ? { format: source.format } : {}),
619
723
  };
620
724
  }
621
725
  /**
@@ -631,13 +735,15 @@ function resolveSlots(projection, root, folded, manifest) {
631
735
  for (const [name, spec] of Object.entries(projection.slots)) {
632
736
  if (Array.isArray(spec)) {
633
737
  for (const one of spec) {
738
+ // An array spec collects into `meta`, so the name it was declared under
739
+ // is not the slot's meaning — nothing in an array is a body.
634
740
  const value = resolveSlot(one, root, folded, manifest);
635
741
  if (value)
636
742
  meta.push(value);
637
743
  }
638
744
  }
639
745
  else {
640
- const value = resolveSlot(spec, root, folded, manifest);
746
+ const value = resolveSlot(spec, root, folded, manifest, name);
641
747
  if (value)
642
748
  slots[name] = value;
643
749
  }
@@ -670,7 +776,7 @@ function buildObject(args) {
670
776
  // *is* keyed on is the first, which is the one the app writes today. The
671
777
  // rest are only there to keep older records rendering.
672
778
  const field = spec.fold ?? (Array.isArray(spec.tag) ? spec.tag[0] : spec.tag);
673
- const raw = field && rawSlotValue(spec, root, folded);
779
+ const raw = field ? rawSlotValue(spec, root, folded, false)?.value : undefined;
674
780
  if (field && raw !== undefined)
675
781
  held[field] = raw;
676
782
  }
@@ -1531,7 +1637,7 @@ cache) {
1531
1637
  const ticketChanges = changesFor(pointerToAddress(ticketPointer));
1532
1638
  const folded = foldChanges(ticketChanges, records);
1533
1639
  const status = statusSpec ? resolveSlot(statusSpec, event, folded, manifest) : null;
1534
- const raw = statusSpec ? rawSlotValue(statusSpec, event, folded) : undefined;
1640
+ const raw = statusSpec ? rawSlotValue(statusSpec, event, folded, false)?.value : undefined;
1535
1641
  // The owning app's declaration first, the label guess only if it has none.
1536
1642
  const stage = declaredStage(manifest, statusSpec, raw);
1537
1643
  const done = isDone(stage, raw, status?.value);
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@estiva-app/interop",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Render and act on another app's objects from its published NIP-89 manifest. The owner defines the projection; the consumer decides how it looks.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -42,8 +42,8 @@
42
42
  "scripts": {
43
43
  "prebuild": "npm run build --workspace @estiva-app/protocol",
44
44
  "build": "tsc -p tsconfig.json",
45
- "test": "npm run build && node --test test/*.test.mjs",
46
- "typecheck": "npm run build && tsc -p tsconfig.json --noEmit false --emitDeclarationOnly",
45
+ "test": "npm run build && node --test test/*.test.mjs test/*.test.ts",
46
+ "typecheck": "npm run build && tsc -p tsconfig.test.json",
47
47
  "prepublishOnly": "npm run build"
48
48
  },
49
49
  "peerDependencies": {
package/src/index.ts CHANGED
@@ -34,6 +34,11 @@ export {
34
34
  pickWidget,
35
35
  widgetChainProblem,
36
36
  CLOSED_WIDGETS,
37
+ contentFormatOf,
38
+ BODY_SLOT,
39
+ CONTENT_FORMAT_TAG,
40
+ BLOCK_DOCUMENT_FORMAT,
41
+ type ContentFormat,
37
42
  peopleViaRelay,
38
43
  createProjectionCache,
39
44
  createPeopleCache,
package/src/projection.ts CHANGED
@@ -803,7 +803,18 @@ function byOrder(a: SignedEvent, b: SignedEvent): number {
803
803
  * several paragraphs establishing is the worst available outcome, because a
804
804
  * blank card reads as "that app is broken". It was never caught because Ship
805
805
  * is the only app that had ever published a manifest, and Ship folds. Nothing
806
- * in RFC 0.4 §13.1 makes `records` mandatory.
806
+ * in RFC 0.4 §13.1 makes `records` mandatory — but SPEC §7 did, and that is the
807
+ * document a stranger implements from. It said an app **MUST** publish a
808
+ * manifest whose content carries `records` and `projections`, so the code was
809
+ * right and the specification was wrong, in a way that would have made anyone
810
+ * following the text declare change events they do not have. SPEC §7.1 now says
811
+ * `records` is OPTIONAL and states the consumer's obligation as a MUST: render
812
+ * the projection, treat every `fold` slot as absent, fall through to its
813
+ * `default`, and do not refuse (PRO-12).
814
+ *
815
+ * The citation is corrected in place rather than deleted because the two
816
+ * documents disagreeing is the thing worth remembering: reasoning from the RFC
817
+ * alone reached the right behaviour and the wrong justification.
807
818
  *
808
819
  * The substitute rule below is only ever used to *fold*, never to query, and
809
820
  * that distinction is load-bearing. The first attempt used `changeKind: -1` as
@@ -828,13 +839,71 @@ function foldRuleOf(manifest: Manifest): RecordsRule {
828
839
  )
829
840
  }
830
841
 
842
+ /**
843
+ * What content model a body is written in — SPEC §13.4.
844
+ *
845
+ * Three values, not two, and not the raw tag string. A consumer has to make a
846
+ * three-way decision and **must not guess the third**:
847
+ *
848
+ * - `marker` — the §13.2 dialect. The default, permanently. 731 published
849
+ * bodies carry no tag and none of them can be given one, so this is not a
850
+ * migration window that closes.
851
+ * - `blocks` — a §13.3 JSON block document.
852
+ * - `unknown` — a format declared after this runtime was written. Render the
853
+ * body as plain text; §13.5 says declining to format is conformant, and
854
+ * parsing it as either known model is what §13 forbids outright.
855
+ *
856
+ * It is resolved here rather than left to each consumer for the same reason
857
+ * `CLOSED_WIDGETS` is: two copies of `tag === undefined ? marker : tag ===
858
+ * 'estiva-blocks-1' ? blocks : text` disagree the first time a third format
859
+ * exists, and the disagreement shows up as one app rendering JSON at a person.
860
+ */
861
+ export type ContentFormat = 'marker' | 'blocks' | 'unknown'
862
+
863
+ /**
864
+ * The one slot in SPEC §7.2's closed set that means "structured content".
865
+ *
866
+ * Named rather than inlined because the runtime keys behaviour on it twice —
867
+ * whether a value carries a content format, and whether it may be truncated —
868
+ * and a consumer reads `slots.body` to find it.
869
+ */
870
+ export const BODY_SLOT = 'body'
871
+
872
+ /** The tag SPEC §13.4 defines. Absence is a declaration, not an omission. */
873
+ export const CONTENT_FORMAT_TAG = 'content-format'
874
+
875
+ /** The one format §13.3 names today. */
876
+ export const BLOCK_DOCUMENT_FORMAT = 'estiva-blocks-1'
877
+
878
+ /**
879
+ * The content model an event's body is in.
880
+ *
881
+ * **Decided by the tag alone.** §13.4 is explicit that a reader MUST NOT decide
882
+ * by inspecting the body: a legacy description that happens to begin with `{`
883
+ * is marker text, because it carries no tag.
884
+ */
885
+ export function contentFormatOf(event: SignedEvent): ContentFormat {
886
+ const declared = tagValue(event, CONTENT_FORMAT_TAG)
887
+ if (declared === undefined || declared === '') return 'marker'
888
+ return declared === BLOCK_DOCUMENT_FORMAT ? 'blocks' : 'unknown'
889
+ }
890
+
831
891
  function foldChanges(changes: SignedEvent[], rule: RecordsRule) {
832
- const fields: Record<string, { value: string; by: string; at: number }> = {}
892
+ const fields: Record<string, { value: string; by: string; at: number; format: ContentFormat }> = {}
833
893
  for (const change of [...changes].sort(byOrder)) {
834
894
  const field = tagValue(change, rule.fieldTag)
835
895
  const value = tagValue(change, rule.valueTag)
836
896
  if (!field || value === undefined) continue // a partial change sets nothing
837
- fields[field] = { value, by: change.pubkey, at: change.created_at }
897
+ // The format travels with the *winning* change, not with the object. SPEC
898
+ // §13.4: "an app MUST read the tag from the event it took the value from,
899
+ // never from the object's root" — a description created as marker text and
900
+ // later edited into blocks is a root with no tag and a change with one.
901
+ fields[field] = {
902
+ value,
903
+ by: change.pubkey,
904
+ at: change.created_at,
905
+ format: contentFormatOf(change),
906
+ }
838
907
  }
839
908
  return fields
840
909
  }
@@ -928,6 +997,19 @@ export interface ResolvedSlot {
928
997
  colour?: string
929
998
  /** True when the value is a pubkey and should be shown as a person. */
930
999
  isPubkey?: boolean
1000
+ /**
1001
+ * The content model this value is written in — SPEC §13.4.
1002
+ *
1003
+ * Set only for a slot whose source can carry a body (`{field: "content"}`, or
1004
+ * a `fold` a change event has actually set). **Undefined means the value is
1005
+ * not a body at all** — a tag, a seed, a default — not that it is marker
1006
+ * text. `'marker'` is what "a body with no declared format" resolves to, and
1007
+ * that is permanent rather than a migration state.
1008
+ *
1009
+ * A consumer rendering `slots.body` must branch on this. Parsing a block
1010
+ * document as marker text, or the reverse, is forbidden outright by §13.
1011
+ */
1012
+ format?: ContentFormat
931
1013
  /**
932
1014
  * The underlying field this slot reads, when it has a name.
933
1015
  *
@@ -962,21 +1044,94 @@ function firstTag(root: SignedEvent, tag: string | string[] | undefined): string
962
1044
  return undefined
963
1045
  }
964
1046
 
1047
+ /**
1048
+ * A slot's value, and the content model it is written in when it has one.
1049
+ *
1050
+ * **A `body` slot always has a format; nothing else ever does.**
1051
+ *
1052
+ * The slot name is what decides, because nothing in the data can. A folded
1053
+ * `status` arrives through the same `value` tag a folded description does, and
1054
+ * — this is the part I got wrong first — a project's description arrives
1055
+ * through a *root tag*, exactly like its title. Ship writes
1056
+ * `["description", …]` and leaves `content` empty on purpose, so a reader
1057
+ * holding only tags has it without fetching content (`events.ts`). Eleven of
1058
+ * fifteen production projects are that shape.
1059
+ *
1060
+ * So "a tag is a scalar and never a body" was false, and it was false in the
1061
+ * common case. The rule is the slot, not the source:
1062
+ *
1063
+ * - a change event → the format that change declared, else `marker`
1064
+ * - a root tag, or the root's `content` → `contentFormatOf(root)`, because both
1065
+ * are the same event and §13.4's tag describes that event's body wherever the
1066
+ * event keeps it
1067
+ * - a `default` → `marker`; it is a literal in the manifest, so it is plain
1068
+ * text by construction
1069
+ *
1070
+ * The one exception is `{field: "content"}`, which reports a format whatever
1071
+ * slot it was declared into. That is what keeps the PRO-8 guard below
1072
+ * reachable: `{"subtitle": {"field": "content", "truncate": 120}}` is a
1073
+ * mis-declaration, and it must not also escape the truncation rule.
1074
+ *
1075
+ * Everything else reports nothing, and `undefined` means *not a body* rather
1076
+ * than *marker*. A consumer reading `slots.body` never needs a fallback.
1077
+ */
1078
+ interface RawSlotValue {
1079
+ value: string
1080
+ format?: ContentFormat
1081
+ }
1082
+
965
1083
  function rawSlotValue(
966
1084
  spec: SlotSpec,
967
1085
  root: SignedEvent,
968
- folded: Record<string, { value: string }>,
969
- ): string | undefined {
1086
+ folded: Record<string, { value: string; format?: ContentFormat }>,
1087
+ isBody: boolean,
1088
+ ): RawSlotValue | undefined {
970
1089
  // `fold` first, and a spec may carry both: a field that starts as a tag on
971
1090
  // the root event and is then overridden by changes (a project's lead is the
972
1091
  // case in hand). Reading the tag first would render the value the object was
973
1092
  // created with forever — which is exactly what someone sees right after
974
1093
  // reassigning it from here.
975
1094
  if (spec.fold) {
976
- return folded[spec.fold]?.value ?? firstTag(root, spec.tag) ?? spec.default
1095
+ const change = folded[spec.fold]
1096
+ if (change) return { value: change.value, format: isBody ? (change.format ?? 'marker') : undefined }
1097
+ /*
1098
+ Nobody has changed this field, so the object's own creation value stands.
1099
+ §7.2 rule 2 covers seeding from a tag; `field: "content"` seeds from the
1100
+ event body, and the two compose — tag first, then content.
1101
+
1102
+ **Needed because a description is where an app puts its body and `content`
1103
+ is where the body goes.** Ship's issue description is
1104
+ `fields.description?.value ?? event.content` and its project description
1105
+ puts a `description` tag between the two (`fold.ts`), and neither could be
1106
+ declared before this. The nearest expressible declarations were both
1107
+ wrong in the way §7.2 rule 1 already warns about: `{field: "content"}`
1108
+ alone renders the value the object was created with for ever, and
1109
+ `{fold: "description"}` alone renders blank for every object nobody has
1110
+ edited — which is most of them, and blank reads as "that app is broken"
1111
+ (PEE-10).
1112
+
1113
+ The seed tag reports no format: a tag is a scalar. Content does, because
1114
+ it is the event's body whatever slot it was declared into — the same rule
1115
+ the direct `field: "content"` branch below follows, and what keeps the
1116
+ truncation guard reachable.
1117
+ */
1118
+ const seedTag = firstTag(root, spec.tag)
1119
+ if (seedTag !== undefined) return { value: seedTag, format: isBody ? contentFormatOf(root) : undefined }
1120
+ if (spec.field === 'content' && root.content !== '') {
1121
+ return { value: root.content, format: contentFormatOf(root) }
1122
+ }
1123
+ if (spec.default === undefined) return undefined
1124
+ // A default is a literal in the manifest, not a value any event carries, so
1125
+ // it is plain text by construction. Reported as `marker` rather than as
1126
+ // nothing so that a `body` always has a format — see below.
1127
+ return { value: spec.default, format: isBody ? 'marker' : undefined }
1128
+ }
1129
+ if (spec.tag) {
1130
+ const value = firstTag(root, spec.tag)
1131
+ if (value === undefined) return undefined
1132
+ return { value, format: isBody ? contentFormatOf(root) : undefined }
977
1133
  }
978
- if (spec.tag) return firstTag(root, spec.tag)
979
- if (spec.field === 'content') return root.content
1134
+ if (spec.field === 'content') return { value: root.content, format: contentFormatOf(root) }
980
1135
  /*
981
1136
  `pubkey` — the event's author — added by PRO-6.
982
1137
 
@@ -991,21 +1146,37 @@ function rawSlotValue(
991
1146
  in a new source. Paired with `as: "pubkey"` it renders as a person, which is
992
1147
  what a message wants as its title everywhere it appears.
993
1148
  */
994
- if (spec.field === 'pubkey') return root.pubkey
1149
+ if (spec.field === 'pubkey') return { value: root.pubkey }
995
1150
  return undefined
996
1151
  }
997
1152
 
998
1153
  function resolveSlot(
999
1154
  spec: SlotSpec,
1000
1155
  root: SignedEvent,
1001
- folded: Record<string, { value: string }>,
1156
+ folded: Record<string, { value: string; format?: ContentFormat }>,
1002
1157
  manifest: Manifest,
1158
+ name?: string,
1003
1159
  ): ResolvedSlot | null {
1004
- const raw = rawSlotValue(spec, root, folded)
1160
+ const source = rawSlotValue(spec, root, folded, name === BODY_SLOT)
1005
1161
 
1006
- if (raw === undefined || raw === '') return null
1162
+ if (source === undefined || source.value === '') return null
1163
+ const raw = source.value
1007
1164
 
1008
- let value = truncate(raw, spec.truncate)
1165
+ /*
1166
+ PRO-8's rule, now enforceable rather than only written down.
1167
+
1168
+ `truncate` is a plain-text operation. Ship's manifest carried a comment
1169
+ saying so and a type that forbade the pairing, but nothing stopped another
1170
+ app publishing `{"field": "content", "truncate": 120}` — and the consumer
1171
+ would happily slice 120 characters out of a JSON block document and render
1172
+ the fragment. That is the PRO-8 defect exactly: output that is wrong and
1173
+ cannot tell that it is wrong.
1174
+
1175
+ Marker text is still truncated. It degrades honestly — a cut `**bold` is
1176
+ visibly a cut, and 548 published messages are written in it.
1177
+ */
1178
+ const structured = source.format === 'blocks' || source.format === 'unknown'
1179
+ let value = structured ? raw : truncate(raw, spec.truncate)
1009
1180
  let colour: string | undefined
1010
1181
  if (spec.map) {
1011
1182
  const entry = manifest.vocabularies?.[spec.map]?.find((v) => v.value === raw)
@@ -1021,6 +1192,11 @@ function resolveSlot(
1021
1192
  colour,
1022
1193
  isPubkey: spec.as === 'pubkey',
1023
1194
  field: spec.fold ?? (Array.isArray(spec.tag) ? spec.tag[0] : spec.tag),
1195
+ // Present only on a slot that can carry a body. Absent is the honest shape
1196
+ // for a title read from a tag — and it keeps the key out of every existing
1197
+ // consumer's deep comparisons, which is not the reason but is a real cost
1198
+ // avoided: `format: undefined` is an own property to `deepStrictEqual`.
1199
+ ...(source.format ? { format: source.format } : {}),
1024
1200
  }
1025
1201
  }
1026
1202
 
@@ -1034,7 +1210,7 @@ function resolveSlot(
1034
1210
  function resolveSlots(
1035
1211
  projection: { slots: Record<string, SlotSpec | SlotSpec[]> },
1036
1212
  root: SignedEvent,
1037
- folded: Record<string, { value: string }>,
1213
+ folded: Record<string, { value: string; format?: ContentFormat }>,
1038
1214
  manifest: Manifest,
1039
1215
  ): { slots: Record<string, ResolvedSlot>; meta: ResolvedSlot[] } {
1040
1216
  const slots: Record<string, ResolvedSlot> = {}
@@ -1042,11 +1218,13 @@ function resolveSlots(
1042
1218
  for (const [name, spec] of Object.entries(projection.slots)) {
1043
1219
  if (Array.isArray(spec)) {
1044
1220
  for (const one of spec) {
1221
+ // An array spec collects into `meta`, so the name it was declared under
1222
+ // is not the slot's meaning — nothing in an array is a body.
1045
1223
  const value = resolveSlot(one, root, folded, manifest)
1046
1224
  if (value) meta.push(value)
1047
1225
  }
1048
1226
  } else {
1049
- const value = resolveSlot(spec, root, folded, manifest)
1227
+ const value = resolveSlot(spec, root, folded, manifest, name)
1050
1228
  if (value) slots[name] = value
1051
1229
  }
1052
1230
  }
@@ -1182,7 +1360,7 @@ function buildObject(args: {
1182
1360
  pointer: AddressPointer
1183
1361
  manifest: Manifest
1184
1362
  projection: { widget: string | string[]; slots: Record<string, SlotSpec | SlotSpec[]> }
1185
- folded: Record<string, { value: string }>
1363
+ folded: Record<string, { value: string; format?: ContentFormat }>
1186
1364
  viaRecommendation: boolean
1187
1365
  webTemplate?: string
1188
1366
  comments?: ForeignObject['comments']
@@ -1207,7 +1385,7 @@ function buildObject(args: {
1207
1385
  // *is* keyed on is the first, which is the one the app writes today. The
1208
1386
  // rest are only there to keep older records rendering.
1209
1387
  const field = spec.fold ?? (Array.isArray(spec.tag) ? spec.tag[0] : spec.tag)
1210
- const raw = field && rawSlotValue(spec, root, folded)
1388
+ const raw = field ? rawSlotValue(spec, root, folded, false)?.value : undefined
1211
1389
  if (field && raw !== undefined) held[field] = raw
1212
1390
  }
1213
1391
  const objectAddress = pointerToAddress(pointer)
@@ -2195,7 +2373,7 @@ export async function resolveFolderProject(
2195
2373
  const ticketChanges = changesFor(pointerToAddress(ticketPointer))
2196
2374
  const folded = foldChanges(ticketChanges, records)
2197
2375
  const status = statusSpec ? resolveSlot(statusSpec, event, folded, manifest) : null
2198
- const raw = statusSpec ? rawSlotValue(statusSpec, event, folded) : undefined
2376
+ const raw = statusSpec ? rawSlotValue(statusSpec, event, folded, false)?.value : undefined
2199
2377
 
2200
2378
  // The owning app's declaration first, the label guess only if it has none.
2201
2379
  const stage = declaredStage(manifest, statusSpec, raw)