@pilotiq/pilotiq 0.17.0 → 0.19.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.
@@ -1,8 +1,8 @@
1
1
 
2
- > @pilotiq/pilotiq@0.17.0 build /home/runner/work/pilotiq/pilotiq/packages/pilotiq
2
+ > @pilotiq/pilotiq@0.19.0 build /home/runner/work/pilotiq/pilotiq/packages/pilotiq
3
3
  > tsc -p tsconfig.build.json && pnpm run copy-assets
4
4
 
5
5
 
6
- > @pilotiq/pilotiq@0.17.0 copy-assets /home/runner/work/pilotiq/pilotiq/packages/pilotiq
6
+ > @pilotiq/pilotiq@0.19.0 copy-assets /home/runner/work/pilotiq/pilotiq/packages/pilotiq
7
7
  > mkdir -p dist/styles && cp -R src/styles/*.css dist/styles/
8
8
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,79 @@
1
1
  # @pilotiq/pilotiq
2
2
 
3
+ ## 0.19.0
4
+
5
+ ### Minor Changes
6
+
7
+ - adc0ce0: feat(pilotiq, tiptap): auto-upgrade `TextField` / `TextareaField` to the Tiptap-backed editor when AI agents are attached (no collab required)
8
+
9
+ Previously, the Tiptap-backed renderer (`CollabTextRenderer` in `@pilotiq/tiptap`) only mounted when a `<RecordCollabRoom>` was active — so AI suggestions on plain (non-collab) `TextField` / `TextareaField` fell back to the legacy DOM-write overlay, with no inline-diff chip widget.
10
+
11
+ The rule is now: a text-like field gets the Tiptap surface if **any one of**:
12
+
13
+ 1. A collab room is active (existing behavior — cursor preservation under concurrent edits).
14
+ 2. AI agents are attached via `field.ai([…])` (new — the inline-diff chip needs a ProseMirror surface to render).
15
+ 3. The field is a `MarkdownField` (existing — always Tiptap).
16
+
17
+ `TextLikeInput` widens its routing gate from `room && collabRenderer …` to `(room || hasAi) && collabRenderer …`. `FieldShell` mirrors the widening so its legacy overlay + DOM-write applier stay out of the way when the Tiptap bridge owns the surface. `CollabTextRenderer` already handles `useCollabRoom() === null` — it just mounts the editor without the Yjs Collaboration extension, so this widening doesn't force a collab room.
18
+
19
+ No new public API. Users get the auto-upgrade for free by attaching agents — exactly what they already do to opt into AI features on a field.
20
+
21
+ **`@pilotiq/tiptap` follow-on:**
22
+
23
+ - `CollabTextRenderer` now sets `immediatelyRender: false` on the editor config. Pre-rule-#2 the host's `TextLikeInput` gated on a live collab room (client-only state), so SSR fell through to the native input and the editor never constructed server-side. With AI-attached fields now SSR-rendering Tiptap, `useEditor` would throw `"Tiptap Error: SSR has been detected, please set immediatelyRender explicitly to false"` on the first direct-navigation request. The flag defers construction to the first React effect — empty shell on SSR, live editor on hydration.
24
+ - Build script no longer ships `dist/markdownExtension.js.map`. The bundled file is 371 KB of inlined `tiptap-markdown` + `markdown-it` chain; the sourcemap from `tsc` only described the original ~20-line wrapper, leaving Vite to log a `Sourcemap … points to missing source files` warning on every consumer dev boot.
25
+
26
+ **Inline-diff chip visualization extended to MarkdownEditor + TiptapEditor.** Both now opt into `synthesizeWholeFieldRange` so chat-driven whole-field suggestions (`update_form_state`'s `set_value`) render the chip widget over the whole doc. The bridge tracks synthesized ids in a separate set: on Approve, _producer-supplied_ range hits the editor's `approveAiSuggestion` (text-node replace, surgical), while _synthesized_ whole-doc range delegates to the renderer's `onApplyWholeField` (`setContent(...)`) and clears the chip with a no-op reject. Without this split, approving a synthesized chip on richtext / markdown would do a plain-text replace and clobber all formatting; without the synthesis, the user saw no visualization at all on richtext / markdown.
27
+
28
+ - 644939b: fix(pilotiq, tiptap): route AI suggestions through the Tiptap bridge for collab-on / markdown / richtext fields — fixes chat-driven `update_form_state` no-op
29
+
30
+ Two cooperating bugs left chat-sidebar Approve doing nothing on Tiptap-backed fields:
31
+
32
+ 1. **`FieldShell` overlay shadowed the bridge.** The gate `isRichText = fieldType === 'richtext'` ran the legacy overlay UI on `markdown` / `text` / `textarea`, _and_ registered a generic DOM-write applier that overwrote the Tiptap bridge's applier in the registry (parent effect runs after children). Approve set the hidden `<input>`'s `.value`, which the Tiptap editor never observes, so the visible content never changed.
33
+
34
+ 2. **Bridge skipped whole-field suggestions.** `useAiSuggestionBridge` only pushed entries with `meta.editorRange = { from, to }` into the editor. Chat-agent producers like `@pilotiq-pro/ai`'s `update_form_state` tool target the whole field — no range — so suggestions sat in the queue with no chip widget and no applier path.
35
+
36
+ Fix:
37
+
38
+ - **`@pilotiq/pilotiq`** — `FieldShell` widens `isRichText` to `isTiptapMounted`: `richtext` always, `markdown` when a `MarkdownEditor` is registered, `text` / `textarea` when both a `CollabTextRenderer` is registered and `useCollabRoom()` resolves a room. Hides the legacy overlay and skips DOM-write applier registration so the bridge's editor-driven applier owns the surface.
39
+
40
+ - **`@pilotiq/tiptap`** — `useAiSuggestionBridge` accepts a new `onApplyWholeField(value)` option. When Approve fires for a non-bridge-pushed id, the bridge calls this callback instead of no-op'ing. Each renderer passes its own implementation:
41
+ - `CollabTextRenderer` → `editor.commands.setContent(plainTextToDoc(value, multiline))` — y-prosemirror syncs the resulting transaction to peers when collab is on.
42
+ - `MarkdownEditor` → `editor.commands.setContent(value)` — the Markdown extension parses the raw source.
43
+ - `TiptapEditor` (RichTextField) → `editor.commands.setContent(value)` — HTML / JSON.
44
+
45
+ After the fix every chat-driven `update_form_state` set-value lands on the visible editor surface across all three Tiptap mounts. Range-anchored suggestions (existing chip-widget path) keep their original behavior unchanged.
46
+
47
+ **Plus inline-diff visualization for whole-field suggestions.** Two follow-on improvements in `@pilotiq/tiptap`:
48
+
49
+ - `useAiSuggestionBridge` accepts `synthesizeWholeFieldRange(editor, suggestion) => { from, to } | undefined`. When opted in, whole-field suggestions get a synthesized range and the inline-diff chip widget renders BEFORE the user approves (red strikethrough on the current value + green chip with the suggested text + ✓/✕ buttons). `CollabTextRenderer` opts in with `{ from: 0, to: editor.state.doc.content.size }` — its plain-text schema accepts the extension's text-node replacement on Approve cleanly. `MarkdownEditor` and `TiptapEditor` abstain (they'd lose formatting on the chip-driven approve) and continue to use the silent `onApplyWholeField` fallback.
50
+
51
+ - `AiSuggestionExtension` injects minimal default styles into `<head>` on first mount (idempotent via a `data-pilotiq-ai-suggestion-styles` sentinel). Consumers no longer need to wire CSS for the chip — they see the visualization out of the box. User stylesheets still override since they cascade after the injected `<style>` block, and the class names (`pilotiq-ai-suggestion-original` / `-chip` / `-replacement` / `-accept` / `-reject`) stay the documented surface for customization.
52
+
53
+ ## 0.18.0
54
+
55
+ ### Minor Changes
56
+
57
+ - 1b8c1bc: feat(pilotiq): extract `onProviderSynced(provider, fn)` helper for the seed-on-synced collab lifecycle pattern
58
+
59
+ Adapter packages that bind to a collab room (Tiptap-backed editors, the CodeMirror collab adapter) all need the same choreography on mount: if the provider's already streamed in the initial room state, run the seed callback now; otherwise register `provider.once('synced', fn)` and clean up via `provider.off?.('synced', fn)`. That gate was implemented separately in 4 renderers (`CollabTextRenderer`, `MarkdownEditor`, `TiptapEditor` in `@pilotiq/tiptap`; `CollabCodeMirrorEditor` in `@pilotiq/codemirror`).
60
+
61
+ This change extracts the pattern into a single helper in `@pilotiq/pilotiq/react` so future bug fixes in the gate logic (StrictMode double-fire, missing-off-method providers, etc.) fix in one place and so adapters from outside this monorepo can adopt the same pattern with one import.
62
+
63
+ **New public surface on `@pilotiq/pilotiq/react`:**
64
+
65
+ - `onProviderSynced(provider, fn): () => void` — runs `fn` synchronously if `provider.synced`, otherwise registers `provider.once('synced', fn)`. Returns a cleanup that safely unregisters via `try { provider.off?.('synced', fn) } catch {}`. Null/undefined provider returns a no-op cleanup.
66
+ - `SyncedProviderLike` — structural type with `synced?: boolean`, `once?(event: 'synced', fn): void`, `off?(event: 'synced', fn): void`. No yjs / y-websocket peer dep — callers cast their concrete provider via `provider as SyncedProviderLike`.
67
+
68
+ **Adapter package changes (patch-grade):**
69
+
70
+ - `@pilotiq/tiptap`: `CollabTextRenderer`, `MarkdownEditor`, and `TiptapEditor` each replace their ~10-line gate block with `return onProviderSynced(provider, trySeed)` (still inside the existing `useEffect`).
71
+ - `@pilotiq/codemirror`: `CollabCodeMirrorEditor` stores the cleanup and invokes it alongside `view.destroy()` inside the mount effect's combined cleanup.
72
+
73
+ Behavior is unchanged — no double-fire risk, no missed-cleanup risk, no API changes for callers of any of the affected renderers.
74
+
75
+ Test coverage: 6 new unit tests in `packages/pilotiq/src/react/onProviderSynced.test.ts` cover synced-now, defer-until-synced, cleanup-before-synced, null provider, off-throws, and provider-missing-once/off.
76
+
3
77
  ## 0.17.0
4
78
 
5
79
  ### Minor Changes
@@ -34,4 +34,31 @@ export interface CollabRoom {
34
34
  export declare const CollabRoomContext: import("react").Context<CollabRoom | null>;
35
35
  /** Read the active collab room for the surrounding record, or `null`. */
36
36
  export declare function useCollabRoom(): CollabRoom | null;
37
+ /**
38
+ * Minimal structural shape every collab provider exposes for the
39
+ * "initial room state has streamed in" signal. Kept structural so callers
40
+ * (`@pilotiq/tiptap`, `@pilotiq/codemirror`, future adapters) can pass
41
+ * `provider as unknown as SyncedProviderLike` without taking a hard peer
42
+ * dep on yjs / y-websocket / y-webrtc.
43
+ */
44
+ export interface SyncedProviderLike {
45
+ synced?: boolean;
46
+ once?(event: 'synced', fn: () => void): void;
47
+ off?(event: 'synced', fn: () => void): void;
48
+ }
49
+ /**
50
+ * Run `fn` once the collab provider's initial room state has streamed in.
51
+ * If the provider is already synced, `fn` fires synchronously; otherwise
52
+ * it's registered via `provider.once('synced', fn)`. The returned cleanup
53
+ * unregisters the once handler safely (idempotent + try/catch) so callers
54
+ * can wire it directly into a React effect's cleanup return.
55
+ *
56
+ * Useful for the brand-new-record seed pattern: editors mounting against
57
+ * a freshly-created record want to push the SSR-rendered default into
58
+ * the empty `Y.Text` / `Y.XmlFragment` exactly once after sync, before
59
+ * the user types. Race caveat: two peers simultaneously mounting against
60
+ * a brand-new record can both see `length === 0` and both seed —
61
+ * accepted today across every adapter's seed path.
62
+ */
63
+ export declare function onProviderSynced(provider: SyncedProviderLike | null | undefined, fn: () => void): () => void;
37
64
  //# sourceMappingURL=CollabRoomContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollabRoomContext.d.ts","sourceRoot":"","sources":["../../src/react/CollabRoomContext.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,IAAI,EAAO,OAAO,CAAA;IAClB,4DAA4D;IAC5D,QAAQ,EAAG,OAAO,CAAA;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAG,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,4CAAyC,CAAA;AAEvE,yEAAyE;AACzE,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD"}
1
+ {"version":3,"file":"CollabRoomContext.d.ts","sourceRoot":"","sources":["../../src/react/CollabRoomContext.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,IAAI,EAAO,OAAO,CAAA;IAClB,4DAA4D;IAC5D,QAAQ,EAAG,OAAO,CAAA;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAG,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,4CAAyC,CAAA;AAEvE,yEAAyE;AACzE,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC5C,GAAG,CAAC,CAAC,KAAK,EAAG,QAAQ,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;CAC7C;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,EAC/C,EAAE,EAAQ,MAAM,IAAI,GACnB,MAAM,IAAI,CAUZ"}
@@ -9,4 +9,34 @@ export const CollabRoomContext = createContext(null);
9
9
  export function useCollabRoom() {
10
10
  return useContext(CollabRoomContext);
11
11
  }
12
+ const NOOP_CLEANUP = () => { };
13
+ /**
14
+ * Run `fn` once the collab provider's initial room state has streamed in.
15
+ * If the provider is already synced, `fn` fires synchronously; otherwise
16
+ * it's registered via `provider.once('synced', fn)`. The returned cleanup
17
+ * unregisters the once handler safely (idempotent + try/catch) so callers
18
+ * can wire it directly into a React effect's cleanup return.
19
+ *
20
+ * Useful for the brand-new-record seed pattern: editors mounting against
21
+ * a freshly-created record want to push the SSR-rendered default into
22
+ * the empty `Y.Text` / `Y.XmlFragment` exactly once after sync, before
23
+ * the user types. Race caveat: two peers simultaneously mounting against
24
+ * a brand-new record can both see `length === 0` and both seed —
25
+ * accepted today across every adapter's seed path.
26
+ */
27
+ export function onProviderSynced(provider, fn) {
28
+ if (!provider)
29
+ return NOOP_CLEANUP;
30
+ if (provider.synced) {
31
+ fn();
32
+ return NOOP_CLEANUP;
33
+ }
34
+ provider.once?.('synced', fn);
35
+ return () => {
36
+ try {
37
+ provider.off?.('synced', fn);
38
+ }
39
+ catch { /* ignore */ }
40
+ };
41
+ }
12
42
  //# sourceMappingURL=CollabRoomContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollabRoomContext.js","sourceRoot":"","sources":["../../src/react/CollabRoomContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AA+BjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAA;AAEvE,yEAAyE;AACzE,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"CollabRoomContext.js","sourceRoot":"","sources":["../../src/react/CollabRoomContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AA+BjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAA;AAEvE,yEAAyE;AACzE,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAA;AACtC,CAAC;AAeD,MAAM,YAAY,GAAG,GAAS,EAAE,GAAE,CAAC,CAAA;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA+C,EAC/C,EAAoB;IAEpB,IAAI,CAAC,QAAQ;QAAE,OAAO,YAAY,CAAA;IAClC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,EAAE,EAAE,CAAA;QACJ,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC7B,OAAO,GAAG,EAAE;QACV,IAAI,CAAC;YAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldShell.d.ts","sourceRoot":"","sources":["../../../src/react/fields/FieldShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AA8B1D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAS,WAAW,CAAA;IACtB,IAAI,EAAO,MAAM,CAAA;IACjB,KAAK,EAAM,MAAM,CAAA;IACjB,QAAQ,EAAG,OAAO,CAAA;IAClB,QAAQ,EAAG,KAAK,CAAC,SAAS,CAAA;IAC1B;;;0DAGsD;IACtD,MAAM,CAAC,EAAI,KAAK,CAAC,SAAS,CAAA;IAC1B;0EACsE;IACtE,KAAK,CAAC,EAAK,KAAK,CAAC,SAAS,CAAA;IAC1B;gEAC4D;IAC5D,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAiLjI"}
1
+ {"version":3,"file":"FieldShell.d.ts","sourceRoot":"","sources":["../../../src/react/fields/FieldShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAiC1D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAS,WAAW,CAAA;IACtB,IAAI,EAAO,MAAM,CAAA;IACjB,KAAK,EAAM,MAAM,CAAA;IACjB,QAAQ,EAAG,OAAO,CAAA;IAClB,QAAQ,EAAG,KAAK,CAAC,SAAS,CAAA;IAC1B;;;0DAGsD;IACtD,MAAM,CAAC,EAAI,KAAK,CAAC,SAAS,CAAA;IAC1B;0EACsE;IACtE,KAAK,CAAC,EAAK,KAAK,CAAC,SAAS,CAAA;IAC1B;gEAC4D;IAC5D,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAuMjI"}
@@ -7,6 +7,9 @@ import { registerPendingSuggestionApplier } from '../PendingSuggestionApplierReg
7
7
  import { FormIdContext, useFieldState } from '../FormStateContext.js';
8
8
  import { getFieldPresenceComponent } from '../FieldPresenceRegistry.js';
9
9
  import { getFieldFocusReporter } from '../FieldFocusReporterRegistry.js';
10
+ import { useCollabRoom } from '../CollabRoomContext.js';
11
+ import { getCollabTextRenderer } from '../CollabTextRendererRegistry.js';
12
+ import { getMarkdownEditor } from '../MarkdownEditorRegistry.js';
10
13
  /**
11
14
  * Field types whose visible state is driven by React (not by a matching
12
15
  * `[name]` DOM input). Each registers its own applier inside the field
@@ -40,7 +43,28 @@ export function FieldShell({ el, name, label, required, children, before, after,
40
43
  // `@pilotiq-pro/ai`) has registered a renderer AND there's a matching
41
44
  // suggestion in the queue.
42
45
  const fieldType = el['fieldType'];
43
- const isRichText = fieldType === 'richtext';
46
+ // `isTiptapMounted` widens "richtext only" to every field whose visible
47
+ // surface is actually a Tiptap editor — covers MarkdownField (always
48
+ // Tiptap via `MarkdownEditor`), TextField / TextareaField when a collab
49
+ // room is active OR when AI agents are attached (uses `CollabTextRenderer`
50
+ // via @pilotiq/tiptap). For these the editor renders inline-diff
51
+ // Approve/Reject chips and owns its own applier through
52
+ // `useAiSuggestionBridge` — FieldShell hides the legacy overlay AND skips
53
+ // registering its DOM-write applier so the bridge's applier stays
54
+ // last-write-wins.
55
+ //
56
+ // Keep the AI-attached branch in sync with `TextLikeInput`'s gate — both
57
+ // need to flip together or the surface diverges (overlay would mount
58
+ // alongside the inline chip, etc.).
59
+ const collabRoom = useCollabRoom();
60
+ const hasCollabTextRenderer = getCollabTextRenderer() !== null;
61
+ const hasMarkdownEditor = getMarkdownEditor() !== null;
62
+ const aiActions = el['aiActions'];
63
+ const hasAi = Array.isArray(aiActions) && aiActions.length > 0;
64
+ const isTextLikeTiptap = (fieldType === 'text' || fieldType === 'textarea') &&
65
+ (collabRoom !== null || hasAi) && hasCollabTextRenderer;
66
+ const isMarkdownTiptap = fieldType === 'markdown' && hasMarkdownEditor;
67
+ const isRichText = fieldType === 'richtext' || isMarkdownTiptap || isTextLikeTiptap;
44
68
  // Field types that drive their visible state from React (not from a
45
69
  // matching `[name]` DOM input) register their own applier — see
46
70
  // `SelectFieldInput` for the canonical example. FieldShell's generic
@@ -1 +1 @@
1
- {"version":3,"file":"FieldShell.js","sourceRoot":"","sources":["../../../src/react/fields/FieldShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldShell.js","sourceRoot":"","sources":["../../../src/react/fields/FieldShell.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextLikeInput.d.ts","sourceRoot":"","sources":["../../../src/react/fields/TextLikeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAS1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GACzD,EAAE;IACD,EAAE,EAAU,WAAW,CAAA;IACvB,IAAI,EAAQ,MAAM,CAAA;IAClB,MAAM,EAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,IAAI,EAAQ,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,SAAS,EAAG,OAAO,CAAA;IACnB;;oDAEgD;IAChD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACtC,GAAG,KAAK,CAAC,YAAY,CAsGrB"}
1
+ {"version":3,"file":"TextLikeInput.d.ts","sourceRoot":"","sources":["../../../src/react/fields/TextLikeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAS1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GACzD,EAAE;IACD,EAAE,EAAU,WAAW,CAAA;IACvB,IAAI,EAAQ,MAAM,CAAA;IAClB,MAAM,EAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,IAAI,EAAQ,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,SAAS,EAAG,OAAO,CAAA;IACnB;;oDAEgD;IAChD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACtC,GAAG,KAAK,CAAC,YAAY,CAmHrB"}
@@ -57,6 +57,19 @@ export function TextLikeInput({ el, name, common, type, extraProps, multiline, a
57
57
  // names) skip the collab path and fall through to the controlled /
58
58
  // uncontrolled branches below.
59
59
  const fieldCollab = el['collab'];
60
+ // Auto-upgrade to the Tiptap-backed editor whenever the field has AI
61
+ // agents attached, even outside collab — the inline-diff chip widget
62
+ // (red strikethrough on the current value + green chip with the suggested
63
+ // text + ✓/✕) needs a real ProseMirror surface to render. The renderer
64
+ // handles `useCollabRoom() === null` cleanly (mounts the editor without
65
+ // the Yjs Collaboration extension), so this widening doesn't force a
66
+ // collab room.
67
+ //
68
+ // `field.ai([…])` from `@pilotiq-pro/ai` lands on `FieldMeta.aiActions`
69
+ // as a resolved `PilotiqAgentMeta[]`. Read the array; non-empty means
70
+ // "this field has AI surfaces wired".
71
+ const aiActions = el['aiActions'];
72
+ const hasAi = Array.isArray(aiActions) && aiActions.length > 0;
60
73
  const fragmentKey = (() => {
61
74
  if (!name.includes('.'))
62
75
  return name;
@@ -71,7 +84,7 @@ export function TextLikeInput({ el, name, common, type, extraProps, multiline, a
71
84
  return null;
72
85
  return `${rowCoords.arrayName}.${rowCoords.rowId}.${parsed.fieldName}`;
73
86
  })();
74
- if (room &&
87
+ if ((room || hasAi) &&
75
88
  collabRenderer &&
76
89
  fieldCollab !== false &&
77
90
  !hasMask &&
@@ -1 +1 @@
1
- {"version":3,"file":"TextLikeInput.js","sourceRoot":"","sources":["../../../src/react/fields/TextLikeInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextLikeInput.js","sourceRoot":"","sources":["../../../src/react/fields/TextLikeInput.tsx"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export { registerFieldLabelSlot, getFieldLabelSlot, type FieldLabelSlotProps } f
6
6
  export { registerPendingSuggestionOverlay, getPendingSuggestionOverlay, type PendingSuggestionOverlayProps, } from './PendingSuggestionOverlayRegistry.js';
7
7
  export { PendingSuggestionsContext, usePendingSuggestions, usePendingSuggestionsForField, type PendingSuggestion, type PendingSuggestionOrigin, type PendingSuggestionsApi, } from './PendingSuggestionsContext.js';
8
8
  export { registerPendingSuggestionApplier, getPendingSuggestionApplier, type PendingSuggestionApplier, } from './PendingSuggestionApplierRegistry.js';
9
- export { CollabRoomContext, useCollabRoom, type CollabRoom, } from './CollabRoomContext.js';
9
+ export { CollabRoomContext, useCollabRoom, onProviderSynced, type CollabRoom, type SyncedProviderLike, } from './CollabRoomContext.js';
10
10
  export { registerCollabExtensions, getCollabExtensions, type CollabExtensionFactory, type CollabExtensionFactoryArgs, } from './CollabExtensionFactoryRegistry.js';
11
11
  export { registerCollabTextRenderer, getCollabTextRenderer, type CollabTextRenderer, type CollabTextRendererProps, } from './CollabTextRendererRegistry.js';
12
12
  export { registerMarkdownEditor, getMarkdownEditor, type MarkdownEditor, type MarkdownEditorProps, } from './MarkdownEditorRegistry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export { registerFieldLabelSlot, getFieldLabelSlot } from './FieldLabelSlotRegis
6
6
  export { registerPendingSuggestionOverlay, getPendingSuggestionOverlay, } from './PendingSuggestionOverlayRegistry.js';
7
7
  export { PendingSuggestionsContext, usePendingSuggestions, usePendingSuggestionsForField, } from './PendingSuggestionsContext.js';
8
8
  export { registerPendingSuggestionApplier, getPendingSuggestionApplier, } from './PendingSuggestionApplierRegistry.js';
9
- export { CollabRoomContext, useCollabRoom, } from './CollabRoomContext.js';
9
+ export { CollabRoomContext, useCollabRoom, onProviderSynced, } from './CollabRoomContext.js';
10
10
  export { registerCollabExtensions, getCollabExtensions, } from './CollabExtensionFactoryRegistry.js';
11
11
  export { registerCollabTextRenderer, getCollabTextRenderer, } from './CollabTextRendererRegistry.js';
12
12
  export { registerMarkdownEditor, getMarkdownEditor, } from './MarkdownEditorRegistry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,GAEX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,cAAc,EAEd,UAAU,GAEX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAA2B,MAAM,eAAe,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAA4B,MAAM,6BAA6B,CAAA;AACjH,OAAO,EACL,gCAAgC,EAChC,2BAA2B,GAE5B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,GAI9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,gCAAgC,EAChC,2BAA2B,GAE5B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,iBAAiB,EACjB,aAAa,GAEd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GAGpB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAGlB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAMrB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAE1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GAEjB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,iBAAiB,GAElB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAErB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,qBAAqB,GAGtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAInB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAElB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GAId,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAA2B,MAAM,uBAAuB,CAAA;AACzG,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAA;AAEtF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAExD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,GAId,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,uBAAuB,GAGxB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,YAAY,GAEb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAY,oBAAoB,CAAA;AACxD,OAAO,EACL,iBAAiB,EACjB,eAAe,GAGhB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,mBAAmB,EACnB,cAAc,GAEf,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAW,gBAAgB,CAAA;AAE/C,OAAO,EACL,eAAe,GAKhB,MAAM,sBAAsB,CAAA;AAG7B,iHAAiH;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,mBAAmB;AACnB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAyC,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotiq/pilotiq",
3
- "version": "0.17.0",
3
+ "version": "0.19.0",
4
4
  "description": "View-based admin panel for RudderJS",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -40,3 +40,47 @@ export const CollabRoomContext = createContext<CollabRoom | null>(null)
40
40
  export function useCollabRoom(): CollabRoom | null {
41
41
  return useContext(CollabRoomContext)
42
42
  }
43
+
44
+ /**
45
+ * Minimal structural shape every collab provider exposes for the
46
+ * "initial room state has streamed in" signal. Kept structural so callers
47
+ * (`@pilotiq/tiptap`, `@pilotiq/codemirror`, future adapters) can pass
48
+ * `provider as unknown as SyncedProviderLike` without taking a hard peer
49
+ * dep on yjs / y-websocket / y-webrtc.
50
+ */
51
+ export interface SyncedProviderLike {
52
+ synced?: boolean
53
+ once?(event: 'synced', fn: () => void): void
54
+ off?(event: 'synced', fn: () => void): void
55
+ }
56
+
57
+ const NOOP_CLEANUP = (): void => {}
58
+
59
+ /**
60
+ * Run `fn` once the collab provider's initial room state has streamed in.
61
+ * If the provider is already synced, `fn` fires synchronously; otherwise
62
+ * it's registered via `provider.once('synced', fn)`. The returned cleanup
63
+ * unregisters the once handler safely (idempotent + try/catch) so callers
64
+ * can wire it directly into a React effect's cleanup return.
65
+ *
66
+ * Useful for the brand-new-record seed pattern: editors mounting against
67
+ * a freshly-created record want to push the SSR-rendered default into
68
+ * the empty `Y.Text` / `Y.XmlFragment` exactly once after sync, before
69
+ * the user types. Race caveat: two peers simultaneously mounting against
70
+ * a brand-new record can both see `length === 0` and both seed —
71
+ * accepted today across every adapter's seed path.
72
+ */
73
+ export function onProviderSynced(
74
+ provider: SyncedProviderLike | null | undefined,
75
+ fn: () => void,
76
+ ): () => void {
77
+ if (!provider) return NOOP_CLEANUP
78
+ if (provider.synced) {
79
+ fn()
80
+ return NOOP_CLEANUP
81
+ }
82
+ provider.once?.('synced', fn)
83
+ return () => {
84
+ try { provider.off?.('synced', fn) } catch { /* ignore */ }
85
+ }
86
+ }
@@ -7,6 +7,9 @@ import { registerPendingSuggestionApplier, type PendingSuggestionApplier } from
7
7
  import { FormIdContext, useFieldState } from '../FormStateContext.js'
8
8
  import { getFieldPresenceComponent } from '../FieldPresenceRegistry.js'
9
9
  import { getFieldFocusReporter } from '../FieldFocusReporterRegistry.js'
10
+ import { useCollabRoom } from '../CollabRoomContext.js'
11
+ import { getCollabTextRenderer } from '../CollabTextRendererRegistry.js'
12
+ import { getMarkdownEditor } from '../MarkdownEditorRegistry.js'
10
13
 
11
14
  /**
12
15
  * Field types whose visible state is driven by React (not by a matching
@@ -74,7 +77,29 @@ export function FieldShell({ el, name, label, required, children, before, after,
74
77
  // `@pilotiq-pro/ai`) has registered a renderer AND there's a matching
75
78
  // suggestion in the queue.
76
79
  const fieldType = el['fieldType'] as string | undefined
77
- const isRichText = fieldType === 'richtext'
80
+ // `isTiptapMounted` widens "richtext only" to every field whose visible
81
+ // surface is actually a Tiptap editor — covers MarkdownField (always
82
+ // Tiptap via `MarkdownEditor`), TextField / TextareaField when a collab
83
+ // room is active OR when AI agents are attached (uses `CollabTextRenderer`
84
+ // via @pilotiq/tiptap). For these the editor renders inline-diff
85
+ // Approve/Reject chips and owns its own applier through
86
+ // `useAiSuggestionBridge` — FieldShell hides the legacy overlay AND skips
87
+ // registering its DOM-write applier so the bridge's applier stays
88
+ // last-write-wins.
89
+ //
90
+ // Keep the AI-attached branch in sync with `TextLikeInput`'s gate — both
91
+ // need to flip together or the surface diverges (overlay would mount
92
+ // alongside the inline chip, etc.).
93
+ const collabRoom = useCollabRoom()
94
+ const hasCollabTextRenderer = getCollabTextRenderer() !== null
95
+ const hasMarkdownEditor = getMarkdownEditor() !== null
96
+ const aiActions = el['aiActions']
97
+ const hasAi = Array.isArray(aiActions) && aiActions.length > 0
98
+ const isTextLikeTiptap =
99
+ (fieldType === 'text' || fieldType === 'textarea') &&
100
+ (collabRoom !== null || hasAi) && hasCollabTextRenderer
101
+ const isMarkdownTiptap = fieldType === 'markdown' && hasMarkdownEditor
102
+ const isRichText = fieldType === 'richtext' || isMarkdownTiptap || isTextLikeTiptap
78
103
  // Field types that drive their visible state from React (not from a
79
104
  // matching `[name]` DOM input) register their own applier — see
80
105
  // `SelectFieldInput` for the canonical example. FieldShell's generic
@@ -73,6 +73,19 @@ export function TextLikeInput({
73
73
  // names) skip the collab path and fall through to the controlled /
74
74
  // uncontrolled branches below.
75
75
  const fieldCollab = el['collab'] as boolean | undefined
76
+ // Auto-upgrade to the Tiptap-backed editor whenever the field has AI
77
+ // agents attached, even outside collab — the inline-diff chip widget
78
+ // (red strikethrough on the current value + green chip with the suggested
79
+ // text + ✓/✕) needs a real ProseMirror surface to render. The renderer
80
+ // handles `useCollabRoom() === null` cleanly (mounts the editor without
81
+ // the Yjs Collaboration extension), so this widening doesn't force a
82
+ // collab room.
83
+ //
84
+ // `field.ai([…])` from `@pilotiq-pro/ai` lands on `FieldMeta.aiActions`
85
+ // as a resolved `PilotiqAgentMeta[]`. Read the array; non-empty means
86
+ // "this field has AI surfaces wired".
87
+ const aiActions = el['aiActions']
88
+ const hasAi = Array.isArray(aiActions) && aiActions.length > 0
76
89
  const fragmentKey: string | null = (() => {
77
90
  if (!name.includes('.')) return name
78
91
  if (!rowCoords) return null
@@ -83,7 +96,7 @@ export function TextLikeInput({
83
96
  return `${rowCoords.arrayName}.${rowCoords.rowId}.${parsed.fieldName}`
84
97
  })()
85
98
  if (
86
- room &&
99
+ (room || hasAi) &&
87
100
  collabRenderer &&
88
101
  fieldCollab !== false &&
89
102
  !hasMask &&
@@ -35,7 +35,9 @@ export {
35
35
  export {
36
36
  CollabRoomContext,
37
37
  useCollabRoom,
38
+ onProviderSynced,
38
39
  type CollabRoom,
40
+ type SyncedProviderLike,
39
41
  } from './CollabRoomContext.js'
40
42
  export {
41
43
  registerCollabExtensions,
@@ -0,0 +1,90 @@
1
+ import { describe, it } from 'node:test'
2
+ import assert from 'node:assert/strict'
3
+
4
+ import { onProviderSynced, type SyncedProviderLike } from './CollabRoomContext.js'
5
+
6
+ /** Bare provider double — captures `once` registrations and supports
7
+ * flipping `synced` so we can assert the deferred path. */
8
+ function mockProvider(initialSynced = false): SyncedProviderLike & {
9
+ fire(): void
10
+ registered: number
11
+ unregistered: number
12
+ offThrows: boolean
13
+ } {
14
+ let synced = initialSynced
15
+ let pending: (() => void) | null = null
16
+ const inst = {
17
+ get synced() { return synced },
18
+ set synced(v: boolean) { synced = v },
19
+ once(event: 'synced', fn: () => void) {
20
+ assert.equal(event, 'synced', 'only synced is registered')
21
+ pending = fn
22
+ inst.registered++
23
+ },
24
+ off(event: 'synced', fn: () => void) {
25
+ assert.equal(event, 'synced', 'only synced is unregistered')
26
+ if (inst.offThrows) throw new Error('boom')
27
+ if (pending === fn) pending = null
28
+ inst.unregistered++
29
+ },
30
+ fire() { if (pending) { const f = pending; pending = null; f() } },
31
+ registered: 0,
32
+ unregistered: 0,
33
+ offThrows: false,
34
+ }
35
+ return inst
36
+ }
37
+
38
+ describe('onProviderSynced', () => {
39
+ it('fires fn synchronously when provider is already synced', () => {
40
+ const provider = mockProvider(true)
41
+ let calls = 0
42
+ const cleanup = onProviderSynced(provider, () => { calls++ })
43
+ assert.equal(calls, 1, 'fn ran synchronously')
44
+ assert.equal(provider.registered, 0, 'once never registered')
45
+ cleanup()
46
+ assert.equal(provider.unregistered, 0, 'no-op cleanup did not call off')
47
+ })
48
+
49
+ it('defers fn until synced event when provider not yet synced', () => {
50
+ const provider = mockProvider(false)
51
+ let calls = 0
52
+ const cleanup = onProviderSynced(provider, () => { calls++ })
53
+ assert.equal(calls, 0, 'fn not yet called')
54
+ assert.equal(provider.registered, 1, 'once was registered')
55
+ provider.fire()
56
+ assert.equal(calls, 1, 'fn ran after synced fired')
57
+ cleanup()
58
+ assert.equal(provider.unregistered, 1, 'cleanup called off')
59
+ })
60
+
61
+ it('cleanup unregisters the once handler when called before synced fires', () => {
62
+ const provider = mockProvider(false)
63
+ let calls = 0
64
+ const cleanup = onProviderSynced(provider, () => { calls++ })
65
+ cleanup()
66
+ assert.equal(provider.unregistered, 1, 'off was called')
67
+ provider.fire()
68
+ assert.equal(calls, 0, 'fn never fired after cleanup')
69
+ })
70
+
71
+ it('returns a no-op cleanup when provider is null or undefined', () => {
72
+ const noopCleanup = onProviderSynced(null, () => { throw new Error('unreachable') })
73
+ assert.doesNotThrow(() => noopCleanup())
74
+ const noopCleanup2 = onProviderSynced(undefined, () => { throw new Error('unreachable') })
75
+ assert.doesNotThrow(() => noopCleanup2())
76
+ })
77
+
78
+ it('swallows errors thrown by provider.off so cleanup never breaks an effect', () => {
79
+ const provider = mockProvider(false)
80
+ provider.offThrows = true
81
+ const cleanup = onProviderSynced(provider, () => {})
82
+ assert.doesNotThrow(cleanup, 'cleanup did not propagate the throw')
83
+ })
84
+
85
+ it('gracefully handles a provider missing once/off methods', () => {
86
+ const sparse: SyncedProviderLike = { synced: false }
87
+ const cleanup = onProviderSynced(sparse, () => {})
88
+ assert.doesNotThrow(cleanup, 'cleanup is safe when off is undefined')
89
+ })
90
+ })