@spotpatch/next 0.1.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/dist/client.js ADDED
@@ -0,0 +1,234 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __esm = (fn, res) => function __init() {
4
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
5
+ };
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+
11
+ // src/client/bootstrap.ts
12
+ var bootstrap_exports = {};
13
+ __export(bootstrap_exports, {
14
+ bootstrapNextClient: () => bootstrapNextClient
15
+ });
16
+ import { bootstrapSpotPatch } from "@spotpatch/runtime";
17
+ import {
18
+ SPOTPATCH_ENDPOINTS,
19
+ runtimeConfigSchema
20
+ } from "@spotpatch/shared";
21
+ function deepFreeze(value) {
22
+ if (typeof value !== "object" || value === null || Object.isFrozen(value)) {
23
+ return value;
24
+ }
25
+ for (const child of Object.values(value)) {
26
+ deepFreeze(child);
27
+ }
28
+ return Object.freeze(value);
29
+ }
30
+ async function readBoundedJson(response) {
31
+ const declaredLength = Number(response.headers.get("content-length"));
32
+ if (Number.isFinite(declaredLength) && declaredLength > MAX_BOOTSTRAP_RESPONSE_BYTES) {
33
+ await response.body?.cancel();
34
+ throw new BootstrapError("RESPONSE_TOO_LARGE");
35
+ }
36
+ const text = await response.text();
37
+ if (new TextEncoder().encode(text).byteLength > MAX_BOOTSTRAP_RESPONSE_BYTES) {
38
+ throw new BootstrapError("RESPONSE_TOO_LARGE");
39
+ }
40
+ try {
41
+ return JSON.parse(text);
42
+ } catch {
43
+ throw new BootstrapError("RESPONSE_INVALID");
44
+ }
45
+ }
46
+ function parseEnvelope(value) {
47
+ if (typeof value !== "object" || value === null || Array.isArray(value) || Object.keys(value).length !== 2 || !("ok" in value) || value.ok !== true || !("data" in value)) {
48
+ throw new BootstrapError("RESPONSE_INVALID");
49
+ }
50
+ const parsed = runtimeConfigSchema.safeParse(value.data);
51
+ if (!parsed.success || parsed.data.framework !== "next") {
52
+ throw new BootstrapError("RESPONSE_INVALID");
53
+ }
54
+ return deepFreeze(parsed.data);
55
+ }
56
+ async function executeBootstrap() {
57
+ let response;
58
+ try {
59
+ response = await fetch(SPOTPATCH_ENDPOINTS.bootstrap, {
60
+ method: "POST",
61
+ headers: { "Content-Type": "application/json" },
62
+ body: "{}",
63
+ cache: "no-store",
64
+ credentials: "same-origin"
65
+ });
66
+ } catch {
67
+ throw new BootstrapError("REQUEST_FAILED");
68
+ }
69
+ if (!response.ok) {
70
+ await response.body?.cancel();
71
+ throw new BootstrapError("RESPONSE_REJECTED");
72
+ }
73
+ if (!response.headers.get("cache-control")?.toLowerCase().includes("no-store")) {
74
+ await response.body?.cancel();
75
+ throw new BootstrapError("CACHE_POLICY_INVALID");
76
+ }
77
+ const config = parseEnvelope(await readBoundedJson(response));
78
+ try {
79
+ bootstrapSpotPatch(config);
80
+ } catch {
81
+ throw new BootstrapError("MOUNT_FAILED");
82
+ }
83
+ }
84
+ async function bootstrapNextClient() {
85
+ try {
86
+ await executeBootstrap();
87
+ return Object.freeze({ ok: true });
88
+ } catch (error) {
89
+ return Object.freeze({
90
+ code: error instanceof BootstrapError ? error.code : "RESPONSE_INVALID",
91
+ ok: false
92
+ });
93
+ }
94
+ }
95
+ var MAX_BOOTSTRAP_RESPONSE_BYTES, BootstrapError;
96
+ var init_bootstrap = __esm({
97
+ "src/client/bootstrap.ts"() {
98
+ "use strict";
99
+ MAX_BOOTSTRAP_RESPONSE_BYTES = 16384;
100
+ BootstrapError = class extends Error {
101
+ constructor(code) {
102
+ super(code);
103
+ this.code = code;
104
+ this.name = "SpotPatchNextBootstrapError";
105
+ }
106
+ code;
107
+ };
108
+ }
109
+ });
110
+
111
+ // ../../node_modules/.pnpm/bippy@0.6.1_react@19.2.8/node_modules/bippy/dist/rdt-hook.js
112
+ var t = `0.6.1`;
113
+ var n = `bippy-${t}`;
114
+ var r = Object.defineProperty;
115
+ var i = Object.prototype.hasOwnProperty;
116
+ var a = () => {
117
+ };
118
+ var o = (e) => {
119
+ try {
120
+ Function.prototype.toString.call(e).indexOf(`^_^`) > -1 && setTimeout(() => {
121
+ throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build`);
122
+ });
123
+ } catch {
124
+ }
125
+ };
126
+ var s = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => !!(e && `getFiberRoots` in e);
127
+ var c = false;
128
+ var l;
129
+ var u = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => c ? true : (e && typeof e.inject == `function` && (l = e.inject.toString()), !!l?.includes(`(injected)`));
130
+ var d = /* @__PURE__ */ new Set();
131
+ var f = /* @__PURE__ */ new Set();
132
+ var v = (e) => {
133
+ e && d.add(e);
134
+ let t2 = /* @__PURE__ */ new Map(), i2 = 0, s2 = { _instrumentationIsActive: false, _instrumentationSource: n, checkDCE: o, hasUnsupportedRendererAttached: false, inject(e2) {
135
+ let n2 = ++i2;
136
+ return t2.set(n2, e2), f.add(e2), s2._instrumentationIsActive || (s2._instrumentationIsActive = true, d.forEach((e3) => e3())), n2;
137
+ }, on: a, onCommitFiberRoot: a, onCommitFiberUnmount: a, onPostCommitFiberRoot: a, renderers: t2, supportsFiber: true, supportsFlight: true };
138
+ try {
139
+ r(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`, { configurable: true, enumerable: true, get() {
140
+ return s2;
141
+ }, set(t4) {
142
+ if (t4 && typeof t4 == `object`) {
143
+ let n3 = s2.renderers;
144
+ s2 = t4, n3.size > 0 && (n3.forEach((e2, n4) => {
145
+ f.add(e2), t4.renderers.set(n4, e2);
146
+ }), y(e));
147
+ }
148
+ } });
149
+ let t3 = window.hasOwnProperty, n2 = false;
150
+ r(window, `hasOwnProperty`, { configurable: true, value: function(...e2) {
151
+ try {
152
+ if (!n2 && e2[0] === `__REACT_DEVTOOLS_GLOBAL_HOOK__`) return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = void 0, n2 = true, -0;
153
+ } catch {
154
+ }
155
+ return t3.apply(this, e2);
156
+ }, writable: true });
157
+ } catch {
158
+ y(e);
159
+ }
160
+ return s2;
161
+ };
162
+ var y = (e) => {
163
+ e && d.add(e);
164
+ try {
165
+ let t2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
166
+ if (!t2) return;
167
+ if (!t2._instrumentationSource) {
168
+ t2.checkDCE = o, t2.supportsFiber = true, t2.supportsFlight = true, t2.hasUnsupportedRendererAttached = false, t2._instrumentationSource = n, t2._instrumentationIsActive = false;
169
+ let e2 = s(t2);
170
+ if (e2 || (t2.on = a), t2.renderers.size) {
171
+ t2._instrumentationIsActive = true, d.forEach((e3) => e3());
172
+ return;
173
+ }
174
+ let r2 = t2.inject, i2 = u(t2);
175
+ i2 && !e2 && (c = true, t2.inject({ scheduleRefresh() {
176
+ } }) && (t2._instrumentationIsActive = true)), t2.inject = (e3) => {
177
+ let n2 = r2(e3);
178
+ return f.add(e3), i2 && t2.renderers.set(n2, e3), t2._instrumentationIsActive = true, d.forEach((e4) => e4()), n2;
179
+ };
180
+ }
181
+ (t2.renderers.size || t2._instrumentationIsActive || u()) && e?.();
182
+ } catch {
183
+ }
184
+ };
185
+ var b = () => i.call(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`);
186
+ var x = (e) => b() ? (y(e), globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) : v(e);
187
+ var S = () => !!(typeof window < `u` && (window.document?.createElement || window.navigator?.product === `ReactNative`));
188
+ var C = () => {
189
+ try {
190
+ S() && x();
191
+ } catch {
192
+ }
193
+ };
194
+
195
+ // ../../node_modules/.pnpm/bippy@0.6.1_react@19.2.8/node_modules/bippy/dist/install-hook-only.js
196
+ C();
197
+
198
+ // src/client.ts
199
+ if (globalThis.__spotpatchNextClient__ === void 0) {
200
+ const startedAt = performance.now();
201
+ const state = {
202
+ hookInstalled: typeof Reflect.get(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__") === "object",
203
+ initializationDurationMs: performance.now() - startedAt,
204
+ status: "bootstrapping"
205
+ };
206
+ globalThis.__spotpatchNextClient__ = state;
207
+ void Promise.resolve().then(() => (init_bootstrap(), bootstrap_exports)).then(({ bootstrapNextClient: bootstrapNextClient2 }) => bootstrapNextClient2()).then((result) => {
208
+ if (result.ok) {
209
+ state.status = "ready";
210
+ return;
211
+ }
212
+ state.code = result.code;
213
+ state.status = "failed";
214
+ console.warn(`[spotpatch:next:client] Bootstrap disabled (${result.code}).`);
215
+ }).catch(() => {
216
+ state.code = "MODULE_LOAD_FAILED";
217
+ state.status = "failed";
218
+ console.warn("[spotpatch:next:client] Bootstrap disabled (MODULE_LOAD_FAILED).");
219
+ });
220
+ }
221
+ /*! Bundled license information:
222
+
223
+ bippy/dist/rdt-hook.js:
224
+ bippy/dist/install-hook-only.js:
225
+ (**
226
+ * @license bippy
227
+ *
228
+ * Copyright (c) Aiden Bai
229
+ *
230
+ * This source code is licensed under the MIT license found in the
231
+ * LICENSE file in the root directory of this source tree.
232
+ *)
233
+ */
234
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client/bootstrap.ts","../../../node_modules/.pnpm/bippy@0.6.1_react@19.2.8/node_modules/bippy/dist/rdt-hook.js","../../../node_modules/.pnpm/bippy@0.6.1_react@19.2.8/node_modules/bippy/dist/install-hook-only.js","../src/client.ts"],"sourcesContent":["import { bootstrapSpotPatch } from \"@spotpatch/runtime\";\nimport {\n SPOTPATCH_ENDPOINTS,\n runtimeConfigSchema,\n type SpotPatchRuntimeConfig,\n} from \"@spotpatch/shared\";\n\nconst MAX_BOOTSTRAP_RESPONSE_BYTES = 16_384;\n\nexport type NextClientBootstrapFailureCode =\n | \"CACHE_POLICY_INVALID\"\n | \"MOUNT_FAILED\"\n | \"REQUEST_FAILED\"\n | \"RESPONSE_INVALID\"\n | \"RESPONSE_REJECTED\"\n | \"RESPONSE_TOO_LARGE\";\n\nexport type NextClientBootstrapResult =\n | Readonly<{ ok: true }>\n | Readonly<{\n code: NextClientBootstrapFailureCode;\n ok: false;\n }>;\n\nclass BootstrapError extends Error {\n constructor(readonly code: NextClientBootstrapFailureCode) {\n super(code);\n this.name = \"SpotPatchNextBootstrapError\";\n }\n}\n\nfunction deepFreeze<T>(value: T): Readonly<T> {\n if (typeof value !== \"object\" || value === null || Object.isFrozen(value)) {\n return value;\n }\n\n for (const child of Object.values(value as Readonly<Record<string, unknown>>)) {\n deepFreeze(child);\n }\n\n return Object.freeze(value);\n}\n\nasync function readBoundedJson(response: Response): Promise<unknown> {\n const declaredLength = Number(response.headers.get(\"content-length\"));\n\n if (\n Number.isFinite(declaredLength) &&\n declaredLength > MAX_BOOTSTRAP_RESPONSE_BYTES\n ) {\n await response.body?.cancel();\n throw new BootstrapError(\"RESPONSE_TOO_LARGE\");\n }\n\n const text = await response.text();\n\n if (new TextEncoder().encode(text).byteLength > MAX_BOOTSTRAP_RESPONSE_BYTES) {\n throw new BootstrapError(\"RESPONSE_TOO_LARGE\");\n }\n\n try {\n return JSON.parse(text) as unknown;\n } catch {\n throw new BootstrapError(\"RESPONSE_INVALID\");\n }\n}\n\nfunction parseEnvelope(value: unknown): SpotPatchRuntimeConfig {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Array.isArray(value) ||\n Object.keys(value).length !== 2 ||\n !(\"ok\" in value) ||\n value.ok !== true ||\n !(\"data\" in value)\n ) {\n throw new BootstrapError(\"RESPONSE_INVALID\");\n }\n\n const parsed = runtimeConfigSchema.safeParse(value.data);\n\n if (!parsed.success || parsed.data.framework !== \"next\") {\n throw new BootstrapError(\"RESPONSE_INVALID\");\n }\n\n return deepFreeze(parsed.data);\n}\n\nasync function executeBootstrap(): Promise<void> {\n let response: Response;\n\n try {\n response = await fetch(SPOTPATCH_ENDPOINTS.bootstrap, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: \"{}\",\n cache: \"no-store\",\n credentials: \"same-origin\",\n });\n } catch {\n throw new BootstrapError(\"REQUEST_FAILED\");\n }\n\n if (!response.ok) {\n await response.body?.cancel();\n throw new BootstrapError(\"RESPONSE_REJECTED\");\n }\n\n if (!response.headers.get(\"cache-control\")?.toLowerCase().includes(\"no-store\")) {\n await response.body?.cancel();\n throw new BootstrapError(\"CACHE_POLICY_INVALID\");\n }\n\n const config = parseEnvelope(await readBoundedJson(response));\n\n try {\n bootstrapSpotPatch(config);\n } catch {\n throw new BootstrapError(\"MOUNT_FAILED\");\n }\n}\n\nexport async function bootstrapNextClient(): Promise<NextClientBootstrapResult> {\n try {\n await executeBootstrap();\n return Object.freeze({ ok: true });\n } catch (error: unknown) {\n return Object.freeze({\n code: error instanceof BootstrapError ? error.code : \"RESPONSE_INVALID\",\n ok: false,\n });\n }\n}\n","/**\n * @license bippy\n *\n * Copyright (c) Aiden Bai\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nconst e=e=>Object.assign(e,{[Symbol.dispose]:e}),t=`0.6.1`,n=`bippy-${t}`,r=Object.defineProperty,i=Object.prototype.hasOwnProperty,a=()=>{},o=e=>{try{Function.prototype.toString.call(e).indexOf(`^_^`)>-1&&setTimeout(()=>{throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build`)})}catch{}},s=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>!!(e&&`getFiberRoots`in e);let c=!1,l;const u=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>c?!0:(e&&typeof e.inject==`function`&&(l=e.inject.toString()),!!l?.includes(`(injected)`)),d=new Set,f=new Set,p=new Set,m=new WeakSet;let h=null;const g=e=>{if(e.inject===h)return;let t=e.inject,n=n=>{let r=t.call(e,n);if(!m.has(n)){m.add(n);for(let e of p)e(n)}return r};e.inject=n,h=n},_=t=>(g(x()),p.add(t),e(()=>{p.delete(t)})),v=e=>{e&&d.add(e);let t=new Map,i=0,s={_instrumentationIsActive:!1,_instrumentationSource:n,checkDCE:o,hasUnsupportedRendererAttached:!1,inject(e){let n=++i;return t.set(n,e),f.add(e),s._instrumentationIsActive||(s._instrumentationIsActive=!0,d.forEach(e=>e())),n},on:a,onCommitFiberRoot:a,onCommitFiberUnmount:a,onPostCommitFiberRoot:a,renderers:t,supportsFiber:!0,supportsFlight:!0};try{r(globalThis,`__REACT_DEVTOOLS_GLOBAL_HOOK__`,{configurable:!0,enumerable:!0,get(){return s},set(t){if(t&&typeof t==`object`){let n=s.renderers;s=t,n.size>0&&(n.forEach((e,n)=>{f.add(e),t.renderers.set(n,e)}),y(e))}}});let t=window.hasOwnProperty,n=!1;r(window,`hasOwnProperty`,{configurable:!0,value:function(...e){try{if(!n&&e[0]===`__REACT_DEVTOOLS_GLOBAL_HOOK__`)return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=void 0,n=!0,-0}catch{}return t.apply(this,e)},writable:!0})}catch{y(e)}return s},y=e=>{e&&d.add(e);try{let t=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t)return;if(!t._instrumentationSource){t.checkDCE=o,t.supportsFiber=!0,t.supportsFlight=!0,t.hasUnsupportedRendererAttached=!1,t._instrumentationSource=n,t._instrumentationIsActive=!1;let e=s(t);if(e||(t.on=a),t.renderers.size){t._instrumentationIsActive=!0,d.forEach(e=>e());return}let r=t.inject,i=u(t);i&&!e&&(c=!0,t.inject({scheduleRefresh(){}})&&(t._instrumentationIsActive=!0)),t.inject=e=>{let n=r(e);return f.add(e),i&&t.renderers.set(n,e),t._instrumentationIsActive=!0,d.forEach(e=>e()),n}}(t.renderers.size||t._instrumentationIsActive||u())&&e?.()}catch{}},b=()=>i.call(globalThis,`__REACT_DEVTOOLS_GLOBAL_HOOK__`),x=e=>b()?(y(e),globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__):v(e),S=()=>!!(typeof window<`u`&&(window.document?.createElement||window.navigator?.product===`ReactNative`)),C=()=>{try{S()&&x()}catch{}};export{b as a,u as c,y as d,C as f,x as i,s as l,e as m,d as n,v as o,t as p,f as r,S as s,n as t,_ as u};","/**\n * @license bippy\n *\n * Copyright (c) Aiden Bai\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport{f as e}from\"./rdt-hook.js\";e();","import \"bippy/install-hook-only\";\n\nimport type { NextClientBootstrapFailureCode } from \"./client/bootstrap.js\";\n\ninterface NextClientState {\n code?: NextClientBootstrapFailureCode | \"MODULE_LOAD_FAILED\";\n readonly hookInstalled: boolean;\n readonly initializationDurationMs: number;\n status: \"bootstrapping\" | \"failed\" | \"ready\";\n}\n\ndeclare global {\n var __spotpatchNextClient__: NextClientState | undefined;\n}\n\nif (globalThis.__spotpatchNextClient__ === undefined) {\n const startedAt = performance.now();\n const state: NextClientState = {\n hookInstalled:\n typeof Reflect.get(globalThis, \"__REACT_DEVTOOLS_GLOBAL_HOOK__\") === \"object\",\n initializationDurationMs: performance.now() - startedAt,\n status: \"bootstrapping\",\n };\n globalThis.__spotpatchNextClient__ = state;\n\n void import(\"./client/bootstrap.js\")\n .then(({ bootstrapNextClient }) => bootstrapNextClient())\n .then((result) => {\n if (result.ok) {\n state.status = \"ready\";\n return;\n }\n\n state.code = result.code;\n state.status = \"failed\";\n console.warn(`[spotpatch:next:client] Bootstrap disabled (${result.code}).`);\n })\n .catch(() => {\n state.code = \"MODULE_LOAD_FAILED\";\n state.status = \"failed\";\n console.warn(\"[spotpatch:next:client] Bootstrap disabled (MODULE_LOAD_FAILED).\");\n });\n}\n"],"mappings":"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","names":["t","i","s","e","n","r","bootstrapNextClient"]}