@no-mess/client 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +153 -4
  2. package/dist/client.d.ts +5 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +237 -41
  5. package/dist/client.js.map +1 -1
  6. package/dist/error-utils.d.ts +20 -0
  7. package/dist/error-utils.d.ts.map +1 -0
  8. package/dist/error-utils.js +67 -0
  9. package/dist/error-utils.js.map +1 -0
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +148 -22
  13. package/dist/index.js.map +1 -1
  14. package/dist/live-edit.d.ts.map +1 -1
  15. package/dist/live-edit.js +241 -102
  16. package/dist/live-edit.js.map +1 -1
  17. package/dist/logging.d.ts +6 -0
  18. package/dist/logging.d.ts.map +1 -0
  19. package/dist/logging.js +58 -0
  20. package/dist/logging.js.map +1 -0
  21. package/dist/react/index.d.ts +1 -1
  22. package/dist/react/index.d.ts.map +1 -1
  23. package/dist/react/index.js.map +1 -1
  24. package/dist/react/no-mess-preview.d.ts +2 -6
  25. package/dist/react/no-mess-preview.d.ts.map +1 -1
  26. package/dist/react/no-mess-preview.js.map +1 -1
  27. package/dist/react/use-no-mess-live-edit.d.ts.map +1 -1
  28. package/dist/react/use-no-mess-live-edit.js +32 -2
  29. package/dist/react/use-no-mess-live-edit.js.map +1 -1
  30. package/dist/react/use-no-mess-preview.d.ts.map +1 -1
  31. package/dist/react/use-no-mess-preview.js +29 -6
  32. package/dist/react/use-no-mess-preview.js.map +1 -1
  33. package/dist/schema/define-content-type.d.ts +13 -0
  34. package/dist/schema/define-content-type.d.ts.map +1 -0
  35. package/dist/schema/define-content-type.js +33 -0
  36. package/dist/schema/define-content-type.js.map +1 -0
  37. package/dist/schema/define-schema.d.ts +9 -0
  38. package/dist/schema/define-schema.d.ts.map +1 -0
  39. package/dist/schema/define-schema.js +9 -0
  40. package/dist/schema/define-schema.js.map +1 -0
  41. package/dist/schema/field-builders.d.ts +33 -0
  42. package/dist/schema/field-builders.d.ts.map +1 -0
  43. package/dist/schema/field-builders.js +25 -0
  44. package/dist/schema/field-builders.js.map +1 -0
  45. package/dist/schema/index.d.ts +12 -0
  46. package/dist/schema/index.d.ts.map +1 -0
  47. package/dist/schema/index.js +7 -0
  48. package/dist/schema/index.js.map +1 -0
  49. package/dist/schema/parse-schema.d.ts +23 -0
  50. package/dist/schema/parse-schema.d.ts.map +1 -0
  51. package/dist/schema/parse-schema.js +419 -0
  52. package/dist/schema/parse-schema.js.map +1 -0
  53. package/dist/schema/schema-types.d.ts +28 -0
  54. package/dist/schema/schema-types.d.ts.map +1 -0
  55. package/dist/schema/schema-types.js +17 -0
  56. package/dist/schema/schema-types.js.map +1 -0
  57. package/dist/schema/serialize-schema.d.ts +11 -0
  58. package/dist/schema/serialize-schema.d.ts.map +1 -0
  59. package/dist/schema/serialize-schema.js +85 -0
  60. package/dist/schema/serialize-schema.js.map +1 -0
  61. package/dist/types.d.ts +49 -2
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +22 -4
  64. package/dist/types.js.map +1 -1
  65. package/package.json +8 -3
package/dist/live-edit.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { normalizeNoMessError } from "./error-utils.js";
2
+ import { createSdkLogger } from "./logging.js";
1
3
  const OVERLAY_CONTAINER_ID = "no-mess-live-edit-overlays";
2
4
  const OVERLAY_ATTR = "data-no-mess-overlay-for";
3
5
  const FIELD_ATTR = "data-no-mess-field";
@@ -45,6 +47,22 @@ const OVERLAY_CSS = `
45
47
  background: oklch(0.546 0.245 262.9);
46
48
  }
47
49
  `;
50
+ function serializeRect(rect) {
51
+ const rectWithJson = rect;
52
+ if (typeof rectWithJson.toJSON === "function") {
53
+ return rectWithJson.toJSON();
54
+ }
55
+ return {
56
+ x: rect.x,
57
+ y: rect.y,
58
+ width: rect.width,
59
+ height: rect.height,
60
+ top: rect.top,
61
+ right: rect.right,
62
+ bottom: rect.bottom,
63
+ left: rect.left,
64
+ };
65
+ }
48
66
  /**
49
67
  * Create a live edit handler that manages overlay highlights on annotated DOM
50
68
  * elements and communicates with the admin dashboard via postMessage.
@@ -58,6 +76,7 @@ const OVERLAY_CSS = `
58
76
  * ```
59
77
  */
60
78
  export function createLiveEditHandler(config) {
79
+ const logger = createSdkLogger(config.logger);
61
80
  let active = false;
62
81
  let container = null;
63
82
  let styleEl = null;
@@ -66,6 +85,55 @@ export function createLiveEditHandler(config) {
66
85
  let mutationObserver = null;
67
86
  let scrollListener = null;
68
87
  let rafId = null;
88
+ const emitLog = (level, message, context, error) => {
89
+ logger({
90
+ level,
91
+ code: "live_edit_runtime_failed",
92
+ message,
93
+ scope: "live-edit",
94
+ operation: "createLiveEditHandler",
95
+ error: error instanceof Error ? error : undefined,
96
+ timestamp: new Date().toISOString(),
97
+ context,
98
+ });
99
+ };
100
+ const reportRuntimeError = (error, context, message = "Live edit runtime failure") => {
101
+ const normalized = normalizeNoMessError(error, {
102
+ kind: "runtime",
103
+ code: "live_edit_runtime_failed",
104
+ operation: "live-edit",
105
+ details: context,
106
+ });
107
+ try {
108
+ config.onError?.(normalized);
109
+ }
110
+ catch (callbackError) {
111
+ emitLog("error", "Live edit onError callback threw unexpectedly", context, normalizeNoMessError(callbackError, {
112
+ kind: "runtime",
113
+ code: "live_edit_runtime_failed",
114
+ operation: "live-edit.onError",
115
+ }));
116
+ }
117
+ emitLog("error", message, context, normalized);
118
+ };
119
+ const safeInvoke = (callback, context, message) => {
120
+ if (!callback)
121
+ return;
122
+ try {
123
+ callback();
124
+ }
125
+ catch (error) {
126
+ reportRuntimeError(error, context, message);
127
+ }
128
+ };
129
+ const safePostMessage = (message, context) => {
130
+ try {
131
+ window.parent.postMessage(message, config.adminOrigin);
132
+ }
133
+ catch (error) {
134
+ reportRuntimeError(error, context, "Failed to post live edit message");
135
+ }
136
+ };
69
137
  function injectStyles() {
70
138
  if (document.getElementById("no-mess-live-edit-styles"))
71
139
  return;
@@ -113,105 +181,151 @@ export function createLiveEditHandler(config) {
113
181
  return;
114
182
  rafId = requestAnimationFrame(() => {
115
183
  rafId = null;
116
- updateAllPositions();
184
+ try {
185
+ updateAllPositions();
186
+ }
187
+ catch (error) {
188
+ reportRuntimeError(error, { phase: "updateAllPositions" });
189
+ }
117
190
  });
118
191
  }
119
192
  function buildOverlays() {
120
- // Clear existing overlays
121
- for (const entry of overlays) {
122
- entry.overlay.remove();
123
- }
124
- overlays = [];
125
- if (!container)
126
- return;
127
- const fieldElements = getFieldElements();
128
- const fieldRects = [];
129
- for (const [fieldName, elements] of fieldElements) {
130
- for (const element of elements) {
131
- const overlay = document.createElement("div");
132
- overlay.className = "no-mess-overlay";
133
- overlay.setAttribute(OVERLAY_ATTR, fieldName);
134
- const label = document.createElement("span");
135
- label.className = "no-mess-overlay-label";
136
- label.textContent = fieldName;
137
- overlay.appendChild(label);
138
- positionOverlay(overlay, element);
139
- overlay.addEventListener("click", () => {
140
- window.parent.postMessage({ type: "no-mess:field-clicked", fieldName }, config.adminOrigin);
141
- config.onFieldClicked?.(fieldName);
142
- });
143
- container.appendChild(overlay);
144
- overlays.push({ element, overlay, fieldName });
145
- const rect = element.getBoundingClientRect();
146
- fieldRects.push({ fieldName, rect: rect.toJSON() });
147
- // Observe element for size changes
148
- resizeObserver?.observe(element);
193
+ try {
194
+ for (const entry of overlays) {
195
+ entry.overlay.remove();
196
+ }
197
+ overlays = [];
198
+ if (!container)
199
+ return;
200
+ const fieldElements = getFieldElements();
201
+ const fieldRects = [];
202
+ for (const [fieldName, elements] of fieldElements) {
203
+ for (const element of elements) {
204
+ const overlay = document.createElement("div");
205
+ overlay.className = "no-mess-overlay";
206
+ overlay.setAttribute(OVERLAY_ATTR, fieldName);
207
+ const label = document.createElement("span");
208
+ label.className = "no-mess-overlay-label";
209
+ label.textContent = fieldName;
210
+ overlay.appendChild(label);
211
+ positionOverlay(overlay, element);
212
+ overlay.addEventListener("click", () => {
213
+ safePostMessage({ type: "no-mess:field-clicked", fieldName }, { phase: "field-clicked", fieldName });
214
+ try {
215
+ config.onFieldClicked?.(fieldName);
216
+ }
217
+ catch (error) {
218
+ reportRuntimeError(error, { phase: "field-clicked", fieldName });
219
+ }
220
+ });
221
+ container.appendChild(overlay);
222
+ overlays.push({ element, overlay, fieldName });
223
+ const rect = element.getBoundingClientRect();
224
+ fieldRects.push({ fieldName, rect: serializeRect(rect) });
225
+ resizeObserver?.observe(element);
226
+ }
149
227
  }
228
+ const uniqueFields = [...new Set(fieldRects.map((field) => field.fieldName))];
229
+ safePostMessage({
230
+ type: "no-mess:field-map",
231
+ fields: uniqueFields.map((fieldName) => {
232
+ const match = fieldRects.find((field) => field.fieldName === fieldName);
233
+ return { fieldName, rect: match?.rect };
234
+ }),
235
+ }, { phase: "field-map", count: uniqueFields.length });
236
+ }
237
+ catch (error) {
238
+ reportRuntimeError(error, { phase: "buildOverlays" }, "Failed to build live edit overlays");
150
239
  }
151
- // Send field map to admin
152
- const uniqueFields = [...new Set(fieldRects.map((f) => f.fieldName))];
153
- window.parent.postMessage({
154
- type: "no-mess:field-map",
155
- fields: uniqueFields.map((fieldName) => {
156
- const match = fieldRects.find((f) => f.fieldName === fieldName);
157
- return { fieldName, rect: match?.rect };
158
- }),
159
- }, config.adminOrigin);
160
240
  }
161
241
  function enterLiveEdit() {
162
242
  if (active)
163
243
  return;
164
244
  active = true;
165
- injectStyles();
166
- createContainer();
167
- resizeObserver = new ResizeObserver(() => {
168
- schedulePositionUpdate();
169
- });
170
- buildOverlays();
171
- // Track scroll for repositioning
172
- scrollListener = () => schedulePositionUpdate();
173
- window.addEventListener("scroll", scrollListener, { passive: true });
174
- window.addEventListener("resize", scrollListener, { passive: true });
175
- // Track DOM mutations for SPA navigation
176
- mutationObserver = new MutationObserver(() => {
177
- // Debounce rescan slightly for batch mutations
178
- setTimeout(() => {
179
- if (active)
180
- buildOverlays();
181
- }, 100);
182
- });
183
- mutationObserver.observe(document.body, {
184
- childList: true,
185
- subtree: true,
186
- });
187
- config.onEnter?.();
245
+ try {
246
+ injectStyles();
247
+ createContainer();
248
+ if (typeof ResizeObserver !== "undefined") {
249
+ resizeObserver = new ResizeObserver(() => {
250
+ try {
251
+ schedulePositionUpdate();
252
+ }
253
+ catch (error) {
254
+ reportRuntimeError(error, { phase: "resizeObserver" });
255
+ }
256
+ });
257
+ }
258
+ else {
259
+ emitLog("warn", "ResizeObserver is not available; live edit overlays will fall back to scroll/resize updates only", {
260
+ feature: "ResizeObserver",
261
+ });
262
+ }
263
+ buildOverlays();
264
+ scrollListener = () => {
265
+ try {
266
+ schedulePositionUpdate();
267
+ }
268
+ catch (error) {
269
+ reportRuntimeError(error, { phase: "scrollListener" });
270
+ }
271
+ };
272
+ window.addEventListener("scroll", scrollListener, { passive: true });
273
+ window.addEventListener("resize", scrollListener, { passive: true });
274
+ if (typeof MutationObserver !== "undefined") {
275
+ mutationObserver = new MutationObserver(() => {
276
+ setTimeout(() => {
277
+ if (!active)
278
+ return;
279
+ buildOverlays();
280
+ }, 100);
281
+ });
282
+ mutationObserver.observe(document.body, {
283
+ childList: true,
284
+ subtree: true,
285
+ });
286
+ }
287
+ else {
288
+ emitLog("warn", "MutationObserver is not available; live edit overlays will not auto-refresh for DOM changes", {
289
+ feature: "MutationObserver",
290
+ });
291
+ }
292
+ safeInvoke(config.onEnter, { phase: "enter" }, "Live edit onEnter callback threw unexpectedly");
293
+ }
294
+ catch (error) {
295
+ reportRuntimeError(error, { phase: "enterLiveEdit" });
296
+ }
188
297
  }
189
298
  function exitLiveEdit() {
190
299
  if (!active)
191
300
  return;
192
301
  active = false;
193
- if (rafId !== null) {
194
- cancelAnimationFrame(rafId);
195
- rafId = null;
302
+ try {
303
+ if (rafId !== null) {
304
+ cancelAnimationFrame(rafId);
305
+ rafId = null;
306
+ }
307
+ resizeObserver?.disconnect();
308
+ resizeObserver = null;
309
+ mutationObserver?.disconnect();
310
+ mutationObserver = null;
311
+ if (scrollListener) {
312
+ window.removeEventListener("scroll", scrollListener);
313
+ window.removeEventListener("resize", scrollListener);
314
+ scrollListener = null;
315
+ }
316
+ for (const entry of overlays) {
317
+ entry.overlay.remove();
318
+ }
319
+ overlays = [];
320
+ container?.remove();
321
+ container = null;
322
+ styleEl?.remove();
323
+ styleEl = null;
324
+ safeInvoke(config.onExit, { phase: "exit" }, "Live edit onExit callback threw unexpectedly");
196
325
  }
197
- resizeObserver?.disconnect();
198
- resizeObserver = null;
199
- mutationObserver?.disconnect();
200
- mutationObserver = null;
201
- if (scrollListener) {
202
- window.removeEventListener("scroll", scrollListener);
203
- window.removeEventListener("resize", scrollListener);
204
- scrollListener = null;
326
+ catch (error) {
327
+ reportRuntimeError(error, { phase: "exitLiveEdit" });
205
328
  }
206
- for (const entry of overlays) {
207
- entry.overlay.remove();
208
- }
209
- overlays = [];
210
- container?.remove();
211
- container = null;
212
- styleEl?.remove();
213
- styleEl = null;
214
- config.onExit?.();
215
329
  }
216
330
  function handleFieldUpdate(fieldName, value) {
217
331
  const elements = document.querySelectorAll(`[${FIELD_ATTR}="${fieldName}"]`);
@@ -252,31 +366,56 @@ export function createLiveEditHandler(config) {
252
366
  const data = event.data;
253
367
  if (!data || typeof data.type !== "string")
254
368
  return;
255
- switch (data.type) {
256
- case "no-mess:live-edit-enter":
257
- enterLiveEdit();
258
- break;
259
- case "no-mess:live-edit-exit":
260
- exitLiveEdit();
261
- break;
262
- case "no-mess:field-updated":
263
- if (data.fieldName && active) {
369
+ try {
370
+ switch (data.type) {
371
+ case "no-mess:live-edit-enter":
372
+ enterLiveEdit();
373
+ break;
374
+ case "no-mess:live-edit-exit":
375
+ exitLiveEdit();
376
+ break;
377
+ case "no-mess:field-updated":
378
+ if (!active)
379
+ break;
380
+ if (typeof data.fieldName !== "string") {
381
+ emitLog("debug", "Ignored malformed live edit field update message", {
382
+ type: data.type,
383
+ });
384
+ break;
385
+ }
264
386
  handleFieldUpdate(data.fieldName, data.value);
265
- }
266
- break;
267
- case "no-mess:field-focus":
268
- if (data.fieldName && active) {
387
+ break;
388
+ case "no-mess:field-focus":
389
+ if (!active)
390
+ break;
391
+ if (typeof data.fieldName !== "string") {
392
+ emitLog("debug", "Ignored malformed live edit focus message", {
393
+ type: data.type,
394
+ });
395
+ break;
396
+ }
269
397
  handleFieldFocus(data.fieldName);
270
- }
271
- break;
272
- case "no-mess:field-blur":
273
- if (data.fieldName && active) {
398
+ break;
399
+ case "no-mess:field-blur":
400
+ if (!active)
401
+ break;
402
+ if (typeof data.fieldName !== "string") {
403
+ emitLog("debug", "Ignored malformed live edit blur message", {
404
+ type: data.type,
405
+ });
406
+ break;
407
+ }
274
408
  handleFieldBlur(data.fieldName);
275
- }
276
- break;
409
+ break;
410
+ }
411
+ }
412
+ catch (error) {
413
+ reportRuntimeError(error, {
414
+ phase: "handleMessage",
415
+ type: data.type,
416
+ });
277
417
  }
278
418
  }
279
- // Start listening immediately
280
419
  window.addEventListener("message", handleMessage);
281
420
  return {
282
421
  cleanup: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"live-edit.js","sourceRoot":"","sources":["../src/live-edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-edit.js","sourceRoot":"","sources":["../src/live-edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { NoMessLogEvent, NoMessLogger } from "./types.js";
2
+ export declare function logEvent(logger: NoMessLogger | undefined, event: NoMessLogEvent): void;
3
+ export declare function shouldDefaultConsoleLog(event: NoMessLogEvent): boolean;
4
+ export declare function createSdkLogger(configLogger?: NoMessLogger): NoMessLogger;
5
+ export declare function warnOnce(logger: NoMessLogger, key: string, event: NoMessLogEvent): void;
6
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,EAAE,KAAK,EAAE,cAAc,QAU/E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAatE;AAsBD,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,CAKzE;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,cAAc,QAKtB"}
@@ -0,0 +1,58 @@
1
+ const warnedKeys = new Set();
2
+ let loggerFailureReported = false;
3
+ export function logEvent(logger, event) {
4
+ if (!logger)
5
+ return;
6
+ try {
7
+ logger(event);
8
+ }
9
+ catch (error) {
10
+ if (loggerFailureReported)
11
+ return;
12
+ loggerFailureReported = true;
13
+ console.error("[no-mess] Logger threw while handling an event.", error);
14
+ }
15
+ }
16
+ export function shouldDefaultConsoleLog(event) {
17
+ switch (event.code) {
18
+ case "secret_key_in_browser":
19
+ case "preview_message_invalid":
20
+ return event.level === "warn" || event.level === "error";
21
+ case "crypto_unavailable":
22
+ case "invalid_success_response":
23
+ case "preview_postmessage_failed":
24
+ case "live_edit_runtime_failed":
25
+ return event.level === "error" || event.level === "warn";
26
+ default:
27
+ return false;
28
+ }
29
+ }
30
+ function defaultConsoleLog(event) {
31
+ if (!shouldDefaultConsoleLog(event))
32
+ return;
33
+ const method = event.level === "warn"
34
+ ? console.warn
35
+ : event.level === "info"
36
+ ? console.info
37
+ : event.level === "debug"
38
+ ? console.debug
39
+ : console.error;
40
+ if (Object.keys(event.context).length > 0) {
41
+ method(`[no-mess] ${event.message}`, event.context);
42
+ return;
43
+ }
44
+ method(`[no-mess] ${event.message}`);
45
+ }
46
+ export function createSdkLogger(configLogger) {
47
+ return (event) => {
48
+ defaultConsoleLog(event);
49
+ logEvent(configLogger, event);
50
+ };
51
+ }
52
+ export function warnOnce(logger, key, event) {
53
+ if (warnedKeys.has(key))
54
+ return;
55
+ warnedKeys.add(key);
56
+ logger(event);
57
+ }
58
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;AACrC,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC,MAAM,UAAU,QAAQ,CAAC,MAAgC,EAAE,KAAqB;IAC9E,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,qBAAqB;YAAE,OAAO;QAClC,qBAAqB,GAAG,IAAI,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAqB;IAC3D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,uBAAuB,CAAC;QAC7B,KAAK,yBAAyB;YAC5B,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;QAC3D,KAAK,oBAAoB,CAAC;QAC1B,KAAK,0BAA0B,CAAC;QAChC,KAAK,4BAA4B,CAAC;QAClC,KAAK,0BAA0B;YAC7B,OAAO,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;QAC3D;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAqB;IAC9C,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;QAAE,OAAO;IAE5C,MAAM,MAAM,GACV,KAAK,CAAC,KAAK,KAAK,MAAM;QACpB,CAAC,CAAC,OAAO,CAAC,IAAI;QACd,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;YACtB,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO;gBACvB,CAAC,CAAC,OAAO,CAAC,KAAK;gBACf,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAExB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,aAAa,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,YAA2B;IACzD,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzB,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,MAAoB,EACpB,GAAW,EACX,KAAqB;IAErB,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,MAAM,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC"}
@@ -1,4 +1,4 @@
1
- export type { NoMessEntry, UseNoMessLiveEditConfig, UseNoMessLiveEditResult, UseNoMessPreviewConfig, UseNoMessPreviewResult, } from "../types.js";
1
+ export type { NoMessEntry, NoMessErrorCode, NoMessErrorKind, NoMessErrorOptions, NoMessLogEvent, NoMessLogLevel, NoMessLogger, UseNoMessLiveEditConfig, UseNoMessLiveEditResult, UseNoMessPreviewConfig, UseNoMessPreviewResult, UseNoMessPreviewStatus, } from "../types.js";
2
2
  export type { NoMessPreviewProps } from "./no-mess-preview.js";
3
3
  export { NoMessPreview } from "./no-mess-preview.js";
4
4
  export { useNoMessLiveEdit } from "./use-no-mess-live-edit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAUb,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAiBb,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,11 +1,7 @@
1
1
  import type { ReactNode } from "react";
2
- import type { NoMessEntry, UseNoMessPreviewConfig } from "../types.js";
2
+ import type { NoMessEntry, UseNoMessPreviewConfig, UseNoMessPreviewResult } from "../types.js";
3
3
  export interface NoMessPreviewProps<T extends NoMessEntry = NoMessEntry> extends UseNoMessPreviewConfig {
4
- children: (state: {
5
- entry: T | null;
6
- error: Error | null;
7
- isLoading: boolean;
8
- }) => ReactNode;
4
+ children: (state: UseNoMessPreviewResult<T>) => ReactNode;
9
5
  }
10
6
  export declare function NoMessPreview<T extends NoMessEntry = NoMessEntry>({ children, ...config }: NoMessPreviewProps<T>): import("react/jsx-runtime").JSX.Element;
11
7
  //# sourceMappingURL=no-mess-preview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-mess-preview.d.ts","sourceRoot":"","sources":["../../src/react/no-mess-preview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGvE,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CACrE,SAAQ,sBAAsB;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE;QAChB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;KACpB,KAAK,SAAS,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACjE,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,kBAAkB,CAAC,CAAC,CAAC,2CAGvB"}
1
+ {"version":3,"file":"no-mess-preview.d.ts","sourceRoot":"","sources":["../../src/react/no-mess-preview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CACrE,SAAQ,sBAAsB;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;CAC3D;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACjE,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,kBAAkB,CAAC,CAAC,CAAC,2CAGvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-mess-preview.js","sourceRoot":"","sources":["../../src/react/no-mess-preview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAW5D,MAAM,UAAU,aAAa,CAAsC,EACjE,QAAQ,EACR,GAAG,MAAM,EACa;IACtB,MAAM,KAAK,GAAG,gBAAgB,CAAI,MAAM,CAAC,CAAC;IAC1C,OAAO,4BAAG,QAAQ,CAAC,KAAK,CAAC,GAAI,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"no-mess-preview.js","sourceRoot":"","sources":["../../src/react/no-mess-preview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAQb,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAO5D,MAAM,UAAU,aAAa,CAAsC,EACjE,QAAQ,EACR,GAAG,MAAM,EACa;IACtB,MAAM,KAAK,GAAG,gBAAgB,CAAI,MAAM,CAAC,CAAC;IAC1C,OAAO,4BAAG,QAAQ,CAAC,KAAK,CAAC,GAAI,CAAC;AAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-no-mess-live-edit.d.ts","sourceRoot":"","sources":["../../src/react/use-no-mess-live-edit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,uBAAuB,CAiDzB"}
1
+ {"version":3,"file":"use-no-mess-live-edit.d.ts","sourceRoot":"","sources":["../../src/react/use-no-mess-live-edit.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,uBAAuB,CA8EzB"}
@@ -1,5 +1,7 @@
1
1
  "use client";
2
2
  import { useCallback, useEffect, useRef, useState } from "react";
3
+ import { normalizeNoMessError } from "../error-utils.js";
4
+ import { createSdkLogger } from "../logging.js";
3
5
  import { createLiveEditHandler } from "../live-edit.js";
4
6
  import { DEFAULT_ADMIN_ORIGIN } from "../types.js";
5
7
  /**
@@ -19,8 +21,12 @@ import { DEFAULT_ADMIN_ORIGIN } from "../types.js";
19
21
  export function useNoMessLiveEdit(config) {
20
22
  const [isLiveEditActive, setIsLiveEditActive] = useState(false);
21
23
  const [fieldOverrides, setFieldOverrides] = useState({});
24
+ const [error, setError] = useState(null);
25
+ const [errorDetails, setErrorDetails] = useState(null);
22
26
  const configRef = useRef(config);
23
27
  configRef.current = config;
28
+ const loggerRef = useRef(createSdkLogger(config.logger));
29
+ loggerRef.current = createSdkLogger(config.logger);
24
30
  const handleFieldUpdate = useCallback((event) => {
25
31
  const origin = configRef.current.adminOrigin ?? DEFAULT_ADMIN_ORIGIN;
26
32
  if (event.origin !== origin)
@@ -28,25 +34,49 @@ export function useNoMessLiveEdit(config) {
28
34
  const data = event.data;
29
35
  if (!data || typeof data.type !== "string")
30
36
  return;
31
- if (data.type === "no-mess:field-updated" && data.fieldName) {
37
+ if (data.type === "no-mess:field-updated" && typeof data.fieldName === "string") {
32
38
  setFieldOverrides((prev) => ({
33
39
  ...prev,
34
40
  [data.fieldName]: data.value,
35
41
  }));
42
+ return;
43
+ }
44
+ if (data.type === "no-mess:field-updated") {
45
+ loggerRef.current({
46
+ level: "debug",
47
+ code: "live_edit_runtime_failed",
48
+ message: "Ignored malformed live edit field update message in React state bridge",
49
+ scope: "live-edit-react",
50
+ operation: "useNoMessLiveEdit.handleFieldUpdate",
51
+ timestamp: new Date().toISOString(),
52
+ context: {},
53
+ });
36
54
  }
37
55
  }, []);
38
56
  useEffect(() => {
39
57
  const adminOrigin = configRef.current.adminOrigin ?? DEFAULT_ADMIN_ORIGIN;
40
58
  const handle = createLiveEditHandler({
41
59
  adminOrigin,
60
+ logger: configRef.current.logger,
42
61
  onEnter: () => {
43
62
  setIsLiveEditActive(true);
44
63
  setFieldOverrides({});
64
+ setError(null);
65
+ setErrorDetails(null);
45
66
  },
46
67
  onExit: () => {
47
68
  setIsLiveEditActive(false);
48
69
  setFieldOverrides({});
49
70
  },
71
+ onError: (err) => {
72
+ const normalized = normalizeNoMessError(err, {
73
+ kind: "runtime",
74
+ code: "live_edit_runtime_failed",
75
+ operation: "useNoMessLiveEdit.onError",
76
+ });
77
+ setError(normalized);
78
+ setErrorDetails(normalized);
79
+ },
50
80
  });
51
81
  // Also listen for field-updated to track overrides in React state
52
82
  window.addEventListener("message", handleFieldUpdate);
@@ -55,6 +85,6 @@ export function useNoMessLiveEdit(config) {
55
85
  window.removeEventListener("message", handleFieldUpdate);
56
86
  };
57
87
  }, [handleFieldUpdate]);
58
- return { isLiveEditActive, fieldOverrides };
88
+ return { isLiveEditActive, fieldOverrides, error, errorDetails };
59
89
  }
60
90
  //# sourceMappingURL=use-no-mess-live-edit.js.map