@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.
- package/README.md +153 -4
- package/dist/client.d.ts +5 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +237 -41
- package/dist/client.js.map +1 -1
- package/dist/error-utils.d.ts +20 -0
- package/dist/error-utils.d.ts.map +1 -0
- package/dist/error-utils.js +67 -0
- package/dist/error-utils.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -22
- package/dist/index.js.map +1 -1
- package/dist/live-edit.d.ts.map +1 -1
- package/dist/live-edit.js +241 -102
- package/dist/live-edit.js.map +1 -1
- package/dist/logging.d.ts +6 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +58 -0
- package/dist/logging.js.map +1 -0
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/no-mess-preview.d.ts +2 -6
- package/dist/react/no-mess-preview.d.ts.map +1 -1
- package/dist/react/no-mess-preview.js.map +1 -1
- package/dist/react/use-no-mess-live-edit.d.ts.map +1 -1
- package/dist/react/use-no-mess-live-edit.js +32 -2
- package/dist/react/use-no-mess-live-edit.js.map +1 -1
- package/dist/react/use-no-mess-preview.d.ts.map +1 -1
- package/dist/react/use-no-mess-preview.js +29 -6
- package/dist/react/use-no-mess-preview.js.map +1 -1
- package/dist/schema/define-content-type.d.ts +13 -0
- package/dist/schema/define-content-type.d.ts.map +1 -0
- package/dist/schema/define-content-type.js +33 -0
- package/dist/schema/define-content-type.js.map +1 -0
- package/dist/schema/define-schema.d.ts +9 -0
- package/dist/schema/define-schema.d.ts.map +1 -0
- package/dist/schema/define-schema.js +9 -0
- package/dist/schema/define-schema.js.map +1 -0
- package/dist/schema/field-builders.d.ts +33 -0
- package/dist/schema/field-builders.d.ts.map +1 -0
- package/dist/schema/field-builders.js +25 -0
- package/dist/schema/field-builders.js.map +1 -0
- package/dist/schema/index.d.ts +12 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +7 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/parse-schema.d.ts +23 -0
- package/dist/schema/parse-schema.d.ts.map +1 -0
- package/dist/schema/parse-schema.js +419 -0
- package/dist/schema/parse-schema.js.map +1 -0
- package/dist/schema/schema-types.d.ts +28 -0
- package/dist/schema/schema-types.d.ts.map +1 -0
- package/dist/schema/schema-types.js +17 -0
- package/dist/schema/schema-types.js.map +1 -0
- package/dist/schema/serialize-schema.d.ts +11 -0
- package/dist/schema/serialize-schema.d.ts.map +1 -0
- package/dist/schema/serialize-schema.js +85 -0
- package/dist/schema/serialize-schema.js.map +1 -0
- package/dist/types.d.ts +49 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +22 -4
- package/dist/types.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { NoMessError, } from "./types.js";
|
|
2
|
+
export function safeParseJsonText(text) {
|
|
3
|
+
try {
|
|
4
|
+
return { ok: true, value: JSON.parse(text) };
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
return {
|
|
8
|
+
ok: false,
|
|
9
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function extractRequestId(response) {
|
|
14
|
+
try {
|
|
15
|
+
return (response.headers.get("x-request-id") ??
|
|
16
|
+
response.headers.get("cf-ray") ??
|
|
17
|
+
response.headers.get("traceparent") ??
|
|
18
|
+
undefined);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function normalizeNoMessError(input, metadata) {
|
|
25
|
+
if (input instanceof NoMessError) {
|
|
26
|
+
return input;
|
|
27
|
+
}
|
|
28
|
+
if (input instanceof Error) {
|
|
29
|
+
return new NoMessError(input.message, {
|
|
30
|
+
...metadata,
|
|
31
|
+
retryable: metadata.retryable ?? false,
|
|
32
|
+
details: { ...metadata.details, originalName: input.name },
|
|
33
|
+
cause: input,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return new NoMessError(typeof input === "string" ? input : "Unexpected error", {
|
|
37
|
+
...metadata,
|
|
38
|
+
retryable: metadata.retryable ?? false,
|
|
39
|
+
details: { ...metadata.details, originalValue: input },
|
|
40
|
+
cause: input,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export function createNoMessHttpError(message, metadata) {
|
|
44
|
+
return new NoMessError(message, {
|
|
45
|
+
...metadata,
|
|
46
|
+
retryable: metadata.retryable ?? (typeof metadata.status === "number" && metadata.status >= 500),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export function createNoMessResponseError(message, metadata) {
|
|
50
|
+
return new NoMessError(message, {
|
|
51
|
+
...metadata,
|
|
52
|
+
retryable: metadata.retryable ?? false,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function createNoMessProtocolError(message, metadata) {
|
|
56
|
+
return new NoMessError(message, {
|
|
57
|
+
...metadata,
|
|
58
|
+
retryable: metadata.retryable ?? false,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export function createNoMessCryptoError(message, metadata) {
|
|
62
|
+
return new NoMessError(message, {
|
|
63
|
+
...metadata,
|
|
64
|
+
retryable: metadata.retryable ?? false,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=error-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../src/error-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { NoMessClient } from "./client.js";
|
|
2
2
|
export { createLiveEditHandler } from "./live-edit.js";
|
|
3
|
-
export type { ContentTypeSchema, GetEntryOptions, LiveEditConfig, LiveEditHandle, NoMessClientConfig, NoMessEntry, PreviewExchangeResult, PreviewHandlerConfig, PreviewSessionAuth, SchemaGetResponse, SchemaListResponse, ShopifyCollection, ShopifyProduct, UseNoMessLiveEditConfig, UseNoMessLiveEditResult, UseNoMessPreviewConfig, UseNoMessPreviewResult, } from "./types.js";
|
|
3
|
+
export type { ContentTypeSchema, GetEntryOptions, LiveEditConfig, LiveEditHandle, NoMessClientConfig, NoMessEntry, NoMessErrorCode, NoMessErrorKind, NoMessErrorOptions, NoMessLogEvent, NoMessLogLevel, NoMessLogger, PreviewExchangeResult, PreviewHandlerConfig, PreviewSessionAuth, SchemaGetResponse, SchemaListResponse, ShopifyCollection, ShopifyProduct, UseNoMessLiveEditConfig, UseNoMessLiveEditResult, UseNoMessPreviewConfig, UseNoMessPreviewResult, UseNoMessPreviewStatus, } from "./types.js";
|
|
4
4
|
export { DEFAULT_ADMIN_ORIGIN, DEFAULT_API_URL, isPublishableKey, isSecretKey, NoMessError, } from "./types.js";
|
|
5
5
|
import { NoMessClient } from "./client.js";
|
|
6
6
|
import type { NoMessClientConfig, PreviewHandlerConfig } from "./types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,OAAO,KAAK,EACV,kBAAkB,EAGlB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAE3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG;IAClE,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAkPA"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,8 @@ export { NoMessClient } from "./client.js";
|
|
|
2
2
|
export { createLiveEditHandler } from "./live-edit.js";
|
|
3
3
|
export { DEFAULT_ADMIN_ORIGIN, DEFAULT_API_URL, isPublishableKey, isSecretKey, NoMessError, } from "./types.js";
|
|
4
4
|
import { NoMessClient } from "./client.js";
|
|
5
|
+
import { createNoMessProtocolError, normalizeNoMessError, } from "./error-utils.js";
|
|
6
|
+
import { createSdkLogger } from "./logging.js";
|
|
5
7
|
/**
|
|
6
8
|
* Create a no-mess client instance.
|
|
7
9
|
*/
|
|
@@ -25,48 +27,172 @@ export function createNoMessClient(config) {
|
|
|
25
27
|
* ```
|
|
26
28
|
*/
|
|
27
29
|
export function createPreviewHandler(config) {
|
|
30
|
+
const logger = createSdkLogger(config.logger);
|
|
28
31
|
let sessionAuth = null;
|
|
32
|
+
let disposed = false;
|
|
33
|
+
let inFlightRequestId = 0;
|
|
34
|
+
let latestCompletedRequestId = 0;
|
|
35
|
+
const logEvent = (level, code, message, context, error) => {
|
|
36
|
+
logger({
|
|
37
|
+
level,
|
|
38
|
+
code,
|
|
39
|
+
message,
|
|
40
|
+
scope: "preview",
|
|
41
|
+
operation: "createPreviewHandler",
|
|
42
|
+
error: error instanceof Error ? error : undefined,
|
|
43
|
+
timestamp: new Date().toISOString(),
|
|
44
|
+
context,
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
const invokeOnError = (error) => {
|
|
48
|
+
try {
|
|
49
|
+
config.onError?.(error);
|
|
50
|
+
}
|
|
51
|
+
catch (callbackError) {
|
|
52
|
+
logEvent("error", "preview_exchange_failed", "Preview onError callback threw unexpectedly", {}, normalizeNoMessError(callbackError, {
|
|
53
|
+
kind: "runtime",
|
|
54
|
+
code: "preview_exchange_failed",
|
|
55
|
+
operation: "preview.onError",
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const postToParent = (message, origin, context) => {
|
|
60
|
+
try {
|
|
61
|
+
window.parent.postMessage(message, origin);
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
const normalized = normalizeNoMessError(error, {
|
|
66
|
+
kind: "runtime",
|
|
67
|
+
code: "preview_postmessage_failed",
|
|
68
|
+
operation: "preview.postMessage",
|
|
69
|
+
details: context,
|
|
70
|
+
});
|
|
71
|
+
logEvent("error", normalized.code, "Failed to post preview message to parent window", {
|
|
72
|
+
...context,
|
|
73
|
+
targetOrigin: origin,
|
|
74
|
+
}, normalized);
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const emitPreviewError = (error, origin, context) => {
|
|
79
|
+
invokeOnError(error);
|
|
80
|
+
const normalized = normalizeNoMessError(error, {
|
|
81
|
+
kind: "runtime",
|
|
82
|
+
code: "preview_exchange_failed",
|
|
83
|
+
operation: "preview.emitError",
|
|
84
|
+
details: context,
|
|
85
|
+
});
|
|
86
|
+
logEvent("error", normalized.code, normalized.message, context, normalized);
|
|
87
|
+
postToParent({
|
|
88
|
+
type: "no-mess:preview-error",
|
|
89
|
+
error: normalized.message,
|
|
90
|
+
code: normalized.code,
|
|
91
|
+
status: normalized.status,
|
|
92
|
+
retryable: normalized.retryable,
|
|
93
|
+
}, origin, context);
|
|
94
|
+
};
|
|
95
|
+
const runExchange = async (reason, origin) => {
|
|
96
|
+
if (!sessionAuth) {
|
|
97
|
+
logEvent("debug", "preview_message_invalid", "Preview refresh ignored because no session is available", {
|
|
98
|
+
reason,
|
|
99
|
+
});
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const requestId = ++inFlightRequestId;
|
|
103
|
+
try {
|
|
104
|
+
const result = await config.client.exchangePreviewSession(sessionAuth);
|
|
105
|
+
if (disposed ||
|
|
106
|
+
requestId < inFlightRequestId ||
|
|
107
|
+
requestId <= latestCompletedRequestId) {
|
|
108
|
+
logEvent("debug", "preview_exchange_failed", "Discarded stale preview exchange result", {
|
|
109
|
+
reason,
|
|
110
|
+
requestId,
|
|
111
|
+
inFlightRequestId,
|
|
112
|
+
latestCompletedRequestId,
|
|
113
|
+
});
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
latestCompletedRequestId = requestId;
|
|
117
|
+
try {
|
|
118
|
+
config.onEntry(result.entry);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
emitPreviewError(normalizeNoMessError(error, {
|
|
122
|
+
kind: "runtime",
|
|
123
|
+
code: "preview_exchange_failed",
|
|
124
|
+
operation: "preview.onEntry",
|
|
125
|
+
details: { reason },
|
|
126
|
+
}), origin, { reason, requestId, phase: "onEntry" });
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
postToParent({ type: "no-mess:preview-loaded" }, origin, { reason, requestId, phase: "loaded" });
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (disposed ||
|
|
133
|
+
requestId < inFlightRequestId ||
|
|
134
|
+
requestId <= latestCompletedRequestId) {
|
|
135
|
+
logEvent("debug", "preview_exchange_failed", "Discarded stale preview exchange error", {
|
|
136
|
+
reason,
|
|
137
|
+
requestId,
|
|
138
|
+
inFlightRequestId,
|
|
139
|
+
latestCompletedRequestId,
|
|
140
|
+
});
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
latestCompletedRequestId = requestId;
|
|
144
|
+
emitPreviewError(normalizeNoMessError(error, {
|
|
145
|
+
kind: "runtime",
|
|
146
|
+
code: "preview_exchange_failed",
|
|
147
|
+
operation: "preview.exchange",
|
|
148
|
+
details: { reason },
|
|
149
|
+
}), origin, { reason, requestId, phase: "exchange" });
|
|
150
|
+
}
|
|
151
|
+
};
|
|
29
152
|
const handleMessage = async (event) => {
|
|
30
|
-
if (event.origin !== config.adminOrigin)
|
|
153
|
+
if (disposed || event.origin !== config.adminOrigin)
|
|
31
154
|
return;
|
|
32
155
|
const data = event.data;
|
|
33
156
|
if (!data || typeof data.type !== "string")
|
|
34
157
|
return;
|
|
35
158
|
if (data.type === "no-mess:session-auth") {
|
|
159
|
+
if (typeof data.sessionId !== "string" ||
|
|
160
|
+
typeof data.sessionSecret !== "string") {
|
|
161
|
+
emitPreviewError(createNoMessProtocolError("Received invalid preview session credentials", {
|
|
162
|
+
kind: "protocol",
|
|
163
|
+
code: "preview_message_invalid",
|
|
164
|
+
operation: "preview.session-auth",
|
|
165
|
+
details: {
|
|
166
|
+
receivedKeys: data && typeof data === "object" ? Object.keys(data) : [],
|
|
167
|
+
},
|
|
168
|
+
}), event.origin, { type: data.type });
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
36
171
|
sessionAuth = {
|
|
37
172
|
sessionId: data.sessionId,
|
|
38
173
|
sessionSecret: data.sessionSecret,
|
|
39
174
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
config.onEntry(result.entry);
|
|
43
|
-
window.parent.postMessage({ type: "no-mess:preview-loaded" }, event.origin);
|
|
44
|
-
}
|
|
45
|
-
catch (err) {
|
|
46
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
47
|
-
config.onError?.(error);
|
|
48
|
-
window.parent.postMessage({ type: "no-mess:preview-error", error: error.message }, event.origin);
|
|
49
|
-
}
|
|
175
|
+
await runExchange("session-auth", event.origin);
|
|
176
|
+
return;
|
|
50
177
|
}
|
|
51
|
-
if (data.type === "no-mess:refresh"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
catch (err) {
|
|
58
|
-
const error = err instanceof Error ? err : new Error(String(err));
|
|
59
|
-
config.onError?.(error);
|
|
60
|
-
window.parent.postMessage({ type: "no-mess:preview-error", error: error.message }, event.origin);
|
|
178
|
+
if (data.type === "no-mess:refresh") {
|
|
179
|
+
if (!sessionAuth) {
|
|
180
|
+
logEvent("debug", "preview_message_invalid", "Ignored preview refresh before session authentication", {
|
|
181
|
+
type: data.type,
|
|
182
|
+
});
|
|
183
|
+
return;
|
|
61
184
|
}
|
|
185
|
+
await runExchange("refresh", event.origin);
|
|
62
186
|
}
|
|
63
187
|
};
|
|
64
188
|
return {
|
|
65
189
|
start: () => {
|
|
190
|
+
disposed = false;
|
|
66
191
|
window.addEventListener("message", handleMessage);
|
|
67
|
-
|
|
192
|
+
postToParent({ type: "no-mess:preview-ready" }, "*", { phase: "ready" });
|
|
68
193
|
},
|
|
69
194
|
cleanup: () => {
|
|
195
|
+
disposed = true;
|
|
70
196
|
window.removeEventListener("message", handleMessage);
|
|
71
197
|
},
|
|
72
198
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/live-edit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-edit.d.ts","sourceRoot":"","sources":["../src/live-edit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"live-edit.d.ts","sourceRoot":"","sources":["../src/live-edit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyFjE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CA+Y5E"}
|