@bleedingdev/modern-js-renderer-octane 0.0.0-bootstrap → 3.9.3-ultramodern.1

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 (137) hide show
  1. package/LICENSE +21 -0
  2. package/bin/octane-tsc.mjs +4 -0
  3. package/dist/cjs/bootstrap.js +68 -0
  4. package/dist/cjs/client.js +371 -0
  5. package/dist/cjs/entry-application.js +83 -0
  6. package/dist/cjs/entry-client.js +92 -0
  7. package/dist/cjs/entry-server.js +127 -0
  8. package/dist/cjs/federation-context.js +72 -0
  9. package/dist/cjs/federation.js +103 -0
  10. package/dist/cjs/i18n/I18nProvider.js +67 -0
  11. package/dist/cjs/i18n/LocalizedLink.js +89 -0
  12. package/dist/cjs/i18n/context.js +41 -0
  13. package/dist/cjs/i18n/index.js +86 -0
  14. package/dist/cjs/i18n/languageSync.js +99 -0
  15. package/dist/cjs/i18n/types.js +18 -0
  16. package/dist/cjs/i18n/useI18n.js +110 -0
  17. package/dist/cjs/index.js +46 -0
  18. package/dist/cjs/manifest.js +167 -0
  19. package/dist/cjs/plugin/compiler.js +125 -0
  20. package/dist/cjs/plugin/create.js +265 -0
  21. package/dist/cjs/plugin/index.js +151 -0
  22. package/dist/cjs/plugin/profile.js +89 -0
  23. package/dist/cjs/plugin/source.js +56 -0
  24. package/dist/cjs/router-client.js +139 -0
  25. package/dist/cjs/router-handler.js +168 -0
  26. package/dist/cjs/router-injection.js +139 -0
  27. package/dist/cjs/router-server-cleanup.js +46 -0
  28. package/dist/cjs/router-server-snapshot.js +405 -0
  29. package/dist/cjs/router-server.js +108 -0
  30. package/dist/cjs/router-snapshot.js +270 -0
  31. package/dist/cjs/router.js +218 -0
  32. package/dist/cjs/routes.js +187 -0
  33. package/dist/cjs/server.js +224 -0
  34. package/dist/cjs/typecheck.js +615 -0
  35. package/dist/esm/bootstrap.mjs +24 -0
  36. package/dist/esm/client.mjs +327 -0
  37. package/dist/esm/entry-application.mjs +39 -0
  38. package/dist/esm/entry-client.mjs +54 -0
  39. package/dist/esm/entry-server.mjs +86 -0
  40. package/dist/esm/federation-context.mjs +25 -0
  41. package/dist/esm/federation.mjs +65 -0
  42. package/dist/esm/i18n/I18nProvider.mjs +29 -0
  43. package/dist/esm/i18n/LocalizedLink.mjs +48 -0
  44. package/dist/esm/i18n/context.mjs +3 -0
  45. package/dist/esm/i18n/index.mjs +8 -0
  46. package/dist/esm/i18n/languageSync.mjs +61 -0
  47. package/dist/esm/i18n/types.mjs +0 -0
  48. package/dist/esm/i18n/useI18n.mjs +72 -0
  49. package/dist/esm/index.mjs +8 -0
  50. package/dist/esm/manifest.mjs +117 -0
  51. package/dist/esm/router-client.mjs +98 -0
  52. package/dist/esm/router-handler.mjs +130 -0
  53. package/dist/esm/router-injection.mjs +101 -0
  54. package/dist/esm/router-server-cleanup.mjs +8 -0
  55. package/dist/esm/router-server-snapshot.mjs +367 -0
  56. package/dist/esm/router-server.mjs +12 -0
  57. package/dist/esm/router-snapshot.mjs +199 -0
  58. package/dist/esm/router.mjs +94 -0
  59. package/dist/esm/routes.mjs +134 -0
  60. package/dist/esm/server.mjs +183 -0
  61. package/dist/esm-node/bootstrap.mjs +24 -0
  62. package/dist/esm-node/manifest.mjs +117 -0
  63. package/dist/esm-node/plugin/compiler.mjs +70 -0
  64. package/dist/esm-node/plugin/create.mjs +227 -0
  65. package/dist/esm-node/plugin/index.mjs +103 -0
  66. package/dist/esm-node/plugin/profile.mjs +51 -0
  67. package/dist/esm-node/plugin/source.mjs +7 -0
  68. package/dist/esm-node/typecheck.mjs +560 -0
  69. package/dist/types/bootstrap.d.ts +10 -0
  70. package/dist/types/client.d.ts +36 -0
  71. package/dist/types/entry-application.d.ts +19 -0
  72. package/dist/types/entry-client.d.ts +8 -0
  73. package/dist/types/entry-server.d.ts +11 -0
  74. package/dist/types/federation-context.d.ts +28 -0
  75. package/dist/types/federation.d.ts +18 -0
  76. package/dist/types/i18n/I18nProvider.d.ts +8 -0
  77. package/dist/types/i18n/LocalizedLink.d.ts +41 -0
  78. package/dist/types/i18n/context.d.ts +9 -0
  79. package/dist/types/i18n/index.d.ts +9 -0
  80. package/dist/types/i18n/languageSync.d.ts +26 -0
  81. package/dist/types/i18n/types.d.ts +34 -0
  82. package/dist/types/i18n/useI18n.d.ts +21 -0
  83. package/dist/types/index.d.ts +9 -0
  84. package/dist/types/manifest.d.ts +34 -0
  85. package/dist/types/plugin/compiler-manifest.d.cts +10 -0
  86. package/dist/types/plugin/compiler.d.ts +5 -0
  87. package/dist/types/plugin/create.d.ts +23 -0
  88. package/dist/types/plugin/index.d.ts +3 -0
  89. package/dist/types/plugin/profile.d.ts +2 -0
  90. package/dist/types/plugin/source.d.ts +1 -0
  91. package/dist/types/plugin/svg-component-template.d.cts +6 -0
  92. package/dist/types/router-client.d.ts +12 -0
  93. package/dist/types/router-handler.d.ts +13 -0
  94. package/dist/types/router-injection.d.ts +8 -0
  95. package/dist/types/router-server-cleanup.d.ts +3 -0
  96. package/dist/types/router-server-snapshot.d.ts +15 -0
  97. package/dist/types/router-server.d.ts +13 -0
  98. package/dist/types/router-snapshot.d.ts +14 -0
  99. package/dist/types/router.d.ts +30 -0
  100. package/dist/types/routes.d.ts +18 -0
  101. package/dist/types/server.d.ts +41 -0
  102. package/dist/types/typecheck.d.ts +31 -0
  103. package/package.json +211 -4
  104. package/src/bootstrap.ts +60 -0
  105. package/src/client.ts +485 -0
  106. package/src/entry-application.ts +72 -0
  107. package/src/entry-client.ts +80 -0
  108. package/src/entry-server.ts +142 -0
  109. package/src/federation-context.ts +53 -0
  110. package/src/federation.ts +158 -0
  111. package/src/i18n/I18nProvider.ts +56 -0
  112. package/src/i18n/LocalizedLink.ts +112 -0
  113. package/src/i18n/context.ts +12 -0
  114. package/src/i18n/index.ts +35 -0
  115. package/src/i18n/languageSync.ts +132 -0
  116. package/src/i18n/types.ts +36 -0
  117. package/src/i18n/useI18n.ts +119 -0
  118. package/src/index.ts +10 -0
  119. package/src/manifest.ts +253 -0
  120. package/src/plugin/compiler-manifest.cjs +178 -0
  121. package/src/plugin/compiler.ts +112 -0
  122. package/src/plugin/create.ts +272 -0
  123. package/src/plugin/index.ts +105 -0
  124. package/src/plugin/profile.ts +46 -0
  125. package/src/plugin/source.ts +16 -0
  126. package/src/plugin/svg-component-template.cjs +17 -0
  127. package/src/router-client.ts +144 -0
  128. package/src/router-handler.ts +182 -0
  129. package/src/router-injection.ts +145 -0
  130. package/src/router-server-cleanup.ts +11 -0
  131. package/src/router-server-snapshot.ts +564 -0
  132. package/src/router-server.ts +23 -0
  133. package/src/router-snapshot.ts +251 -0
  134. package/src/router.ts +192 -0
  135. package/src/routes.ts +263 -0
  136. package/src/server.ts +300 -0
  137. package/src/typecheck.ts +723 -0
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ ADAPTER_KEY: ()=>ADAPTER_KEY,
32
+ MATCH_FIELDS: ()=>MATCH_FIELDS,
33
+ NATIVE_ERROR_KIND: ()=>NATIVE_ERROR_KIND,
34
+ NATIVE_ROOT_FIELDS: ()=>NATIVE_ROOT_FIELDS,
35
+ ROUTE_ERROR_KIND: ()=>ROUTE_ERROR_KIND,
36
+ clearStack: ()=>clearStack,
37
+ descriptors: ()=>descriptors,
38
+ invalid: ()=>invalid,
39
+ nativePromise: ()=>nativePromise,
40
+ octaneRouterSnapshotAdapter: ()=>octaneRouterSnapshotAdapter,
41
+ record: ()=>record,
42
+ stringField: ()=>stringField
43
+ });
44
+ const data_namespaceObject = require("@modern-js/renderer-core/data");
45
+ const tanstack_router_namespaceObject = require("@octanejs/tanstack-router");
46
+ const external_routes_js_namespaceObject = require("./routes.js");
47
+ const ADAPTER_KEY = 'ultramodern.octane-public-snapshot.v1';
48
+ const ROUTE_ERROR_KIND = 'ultramodern-route-error';
49
+ const NATIVE_ERROR_KIND = 'ultramodern-native-error';
50
+ const nativeErrorTypes = Object.freeze({
51
+ Error,
52
+ TypeError,
53
+ RangeError,
54
+ SyntaxError,
55
+ ReferenceError,
56
+ URIError,
57
+ EvalError
58
+ });
59
+ const NATIVE_ROOT_FIELDS = new Set([
60
+ 'manifest',
61
+ 'matches',
62
+ 'lastMatchId',
63
+ 'dehydratedData'
64
+ ]);
65
+ const MATCH_FIELDS = new Set([
66
+ 'i',
67
+ 'u',
68
+ 's',
69
+ 'b',
70
+ 'l',
71
+ 'e',
72
+ 'ssr',
73
+ 'g'
74
+ ]);
75
+ function invalid(message) {
76
+ const error = new data_namespaceObject.DataProtocolError(`Octane router snapshot: ${message}`);
77
+ delete error.stack;
78
+ return error;
79
+ }
80
+ function descriptors(value, allowed, allowLazyStack = false) {
81
+ const result = Object.create(null);
82
+ for (const key of Reflect.ownKeys(value)){
83
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
84
+ if ('string' != typeof key || allowed && !allowed.has(key)) throw invalid('an unsupported own field cannot be transferred');
85
+ if (descriptor.get || descriptor.set) {
86
+ if ('stack' === key && allowLazyStack) continue;
87
+ throw invalid('accessors cannot be transferred');
88
+ }
89
+ result[key] = descriptor;
90
+ }
91
+ return result;
92
+ }
93
+ function record(value) {
94
+ return null !== value && 'object' == typeof value && (Object.getPrototypeOf(value) === Object.prototype || null === Object.getPrototypeOf(value));
95
+ }
96
+ function stringField(fields, key) {
97
+ const value = fields[key]?.value;
98
+ if ('string' != typeof value) throw invalid(`${key} must be a string`);
99
+ return value;
100
+ }
101
+ function nativePromise(value) {
102
+ return null !== value && 'object' == typeof value && Object.getPrototypeOf(value) === Promise.prototype;
103
+ }
104
+ function clearStack(error, stack) {
105
+ delete error.stack;
106
+ if ('string' == typeof stack) Object.defineProperty(error, 'stack', {
107
+ value: stack,
108
+ writable: true,
109
+ configurable: true
110
+ });
111
+ }
112
+ function decodeRouteError(error) {
113
+ if (!record(error)) return error;
114
+ const errorFields = descriptors(error);
115
+ const kind = errorFields['kind']?.value;
116
+ if (kind !== ROUTE_ERROR_KIND && kind !== NATIVE_ERROR_KIND) return error;
117
+ if (kind === NATIVE_ERROR_KIND) {
118
+ descriptors(error, new Set([
119
+ 'kind',
120
+ 'type',
121
+ 'name',
122
+ 'message',
123
+ 'stack',
124
+ 'cause'
125
+ ]));
126
+ (0, data_namespaceObject.assertPublicData)(error);
127
+ const type = stringField(errorFields, 'type');
128
+ const Constructor = Object.getOwnPropertyDescriptor(nativeErrorTypes, type)?.value;
129
+ if (!Constructor) throw invalid('the native Error type is unsupported');
130
+ const restored = new Constructor(stringField(errorFields, 'message'));
131
+ clearStack(restored, errorFields['stack']?.value);
132
+ Object.defineProperty(restored, 'name', {
133
+ value: stringField(errorFields, 'name'),
134
+ writable: true,
135
+ configurable: true
136
+ });
137
+ if (errorFields['cause']) Object.defineProperty(restored, 'cause', {
138
+ value: errorFields['cause'].value,
139
+ writable: true,
140
+ configurable: true
141
+ });
142
+ return restored;
143
+ }
144
+ const expected = new Set([
145
+ 'kind',
146
+ 'routeId',
147
+ 'status',
148
+ 'data',
149
+ 'name',
150
+ 'message',
151
+ 'stack',
152
+ 'cause'
153
+ ]);
154
+ descriptors(error, expected);
155
+ const routeId = stringField(errorFields, 'routeId');
156
+ const name = stringField(errorFields, 'name');
157
+ const message = stringField(errorFields, 'message');
158
+ const status = errorFields['status']?.value;
159
+ if (!routeId || !Number.isInteger(status) || status < 400 || status > 599) throw invalid('a route error has invalid identity or status');
160
+ (0, data_namespaceObject.assertPublicData)(error);
161
+ const restored = new external_routes_js_namespaceObject.RouteDataError(routeId, {
162
+ kind: 'error',
163
+ status: status,
164
+ error: {
165
+ name,
166
+ message
167
+ },
168
+ data: errorFields['data']?.value,
169
+ thrown: true
170
+ });
171
+ clearStack(restored, errorFields['stack']?.value);
172
+ if (errorFields['cause']) Object.defineProperty(restored, 'cause', {
173
+ value: errorFields['cause'].value,
174
+ writable: true,
175
+ configurable: true
176
+ });
177
+ return restored;
178
+ }
179
+ function decodeNativeSnapshot(value) {
180
+ if (!record(value)) throw invalid('the native root must be a record');
181
+ const fields = descriptors(value, NATIVE_ROOT_FIELDS);
182
+ const matches = fields['matches']?.value;
183
+ if (!Array.isArray(matches)) throw invalid('native matches must be an array');
184
+ const matchFields = descriptors(matches);
185
+ const promises = new WeakMap();
186
+ const loaders = new WeakMap();
187
+ const errors = new WeakMap();
188
+ const decodeError = (error)=>{
189
+ if (null === error || 'object' != typeof error) return error;
190
+ if (errors.has(error)) return errors.get(error);
191
+ const restored = decodeRouteError(error);
192
+ errors.set(error, restored);
193
+ return restored;
194
+ };
195
+ const decodePromise = (promise)=>{
196
+ const previous = promises.get(promise);
197
+ if (previous) return previous;
198
+ const restored = Promise.prototype.then.call(promise, void 0, (error)=>{
199
+ throw decodeError(error);
200
+ });
201
+ promises.set(promise, restored);
202
+ Promise.prototype.then.call(restored, void 0, ()=>{});
203
+ return restored;
204
+ };
205
+ const decodeLoader = (loader)=>{
206
+ if (nativePromise(loader)) return decodePromise(loader);
207
+ if (!record(loader)) return loader;
208
+ const properties = descriptors(loader);
209
+ if (!Object.values(properties).some((field)=>nativePromise(field.value))) return loader;
210
+ const previous = loaders.get(loader);
211
+ if (previous) return previous;
212
+ const restored = Object.create(Object.getPrototypeOf(loader));
213
+ loaders.set(loader, restored);
214
+ for (const [key, field] of Object.entries(properties))Object.defineProperty(restored, key, {
215
+ ...field,
216
+ value: nativePromise(field.value) ? decodePromise(field.value) : field.value
217
+ });
218
+ if (!Object.isExtensible(loader)) Object.preventExtensions(restored);
219
+ return restored;
220
+ };
221
+ const restoredMatches = [];
222
+ for(let index = 0; index < matches.length; index++){
223
+ const match = matchFields[String(index)]?.value;
224
+ if (!record(match)) throw invalid('a native match must be a record');
225
+ const properties = descriptors(match, MATCH_FIELDS);
226
+ const restored = {};
227
+ for (const [key, field] of Object.entries(properties))restored[key] = 'e' === key ? decodeError(field.value) : 'l' === key ? decodeLoader(field.value) : field.value;
228
+ restoredMatches.push(restored);
229
+ }
230
+ const restored = {};
231
+ for (const [key, field] of Object.entries(fields))restored[key] = 'matches' === key ? restoredMatches : field.value;
232
+ return restored;
233
+ }
234
+ const octaneRouterSnapshotAdapter = (0, tanstack_router_namespaceObject.createSerializationAdapter)({
235
+ key: ADAPTER_KEY,
236
+ test: (_value)=>false,
237
+ toSerializable () {
238
+ throw invalid('the client decoder cannot serialize a server snapshot');
239
+ },
240
+ fromSerializable: decodeNativeSnapshot
241
+ });
242
+ exports.ADAPTER_KEY = __webpack_exports__.ADAPTER_KEY;
243
+ exports.MATCH_FIELDS = __webpack_exports__.MATCH_FIELDS;
244
+ exports.NATIVE_ERROR_KIND = __webpack_exports__.NATIVE_ERROR_KIND;
245
+ exports.NATIVE_ROOT_FIELDS = __webpack_exports__.NATIVE_ROOT_FIELDS;
246
+ exports.ROUTE_ERROR_KIND = __webpack_exports__.ROUTE_ERROR_KIND;
247
+ exports.clearStack = __webpack_exports__.clearStack;
248
+ exports.descriptors = __webpack_exports__.descriptors;
249
+ exports.invalid = __webpack_exports__.invalid;
250
+ exports.nativePromise = __webpack_exports__.nativePromise;
251
+ exports.octaneRouterSnapshotAdapter = __webpack_exports__.octaneRouterSnapshotAdapter;
252
+ exports.record = __webpack_exports__.record;
253
+ exports.stringField = __webpack_exports__.stringField;
254
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
255
+ "ADAPTER_KEY",
256
+ "MATCH_FIELDS",
257
+ "NATIVE_ERROR_KIND",
258
+ "NATIVE_ROOT_FIELDS",
259
+ "ROUTE_ERROR_KIND",
260
+ "clearStack",
261
+ "descriptors",
262
+ "invalid",
263
+ "nativePromise",
264
+ "octaneRouterSnapshotAdapter",
265
+ "record",
266
+ "stringField"
267
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
268
+ Object.defineProperty(exports, '__esModule', {
269
+ value: true
270
+ });
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./bootstrap" (module) {
4
+ module.exports = require("./bootstrap.js");
5
+ },
6
+ "./routes" (module) {
7
+ module.exports = require("./routes.js");
8
+ },
9
+ "@modern-js/renderer-core/data" (module) {
10
+ module.exports = require("@modern-js/renderer-core/data");
11
+ },
12
+ "@octanejs/tanstack-router" (module) {
13
+ module.exports = require("@octanejs/tanstack-router");
14
+ },
15
+ octane (module) {
16
+ module.exports = require("octane");
17
+ }
18
+ };
19
+ var __webpack_module_cache__ = {};
20
+ function __webpack_require__(moduleId) {
21
+ var cachedModule = __webpack_module_cache__[moduleId];
22
+ if (void 0 !== cachedModule) return cachedModule.exports;
23
+ var module = __webpack_module_cache__[moduleId] = {
24
+ exports: {}
25
+ };
26
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
27
+ return module.exports;
28
+ }
29
+ (()=>{
30
+ __webpack_require__.n = (module)=>{
31
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
32
+ __webpack_require__.d(getter, {
33
+ a: getter
34
+ });
35
+ return getter;
36
+ };
37
+ })();
38
+ (()=>{
39
+ __webpack_require__.d = (exports1, getters, values)=>{
40
+ var define = (defs, kind)=>{
41
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
42
+ enumerable: true,
43
+ [kind]: defs[key]
44
+ });
45
+ };
46
+ define(getters, "get");
47
+ define(values, "value");
48
+ };
49
+ })();
50
+ (()=>{
51
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
52
+ })();
53
+ (()=>{
54
+ __webpack_require__.r = (exports1)=>{
55
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
56
+ value: 'Module'
57
+ });
58
+ Object.defineProperty(exports1, '__esModule', {
59
+ value: true
60
+ });
61
+ };
62
+ })();
63
+ var __webpack_exports__ = {};
64
+ (()=>{
65
+ __webpack_require__.r(__webpack_exports__);
66
+ var _modern_js_renderer_core_data__rspack_import_0 = __webpack_require__("@modern-js/renderer-core/data");
67
+ var _octanejs_tanstack_router__rspack_import_1 = __webpack_require__("@octanejs/tanstack-router");
68
+ var octane__rspack_import_2 = __webpack_require__("octane");
69
+ var _bootstrap__rspack_import_3 = __webpack_require__("./bootstrap");
70
+ var _routes__rspack_import_4 = __webpack_require__("./routes");
71
+ var __rspack_reexport = {};
72
+ for(const __rspack_import_key in _octanejs_tanstack_router__rspack_import_1)if ([
73
+ "createFileSystemRouteTree",
74
+ "createApplicationRouter",
75
+ "useApplicationIdentity",
76
+ "createOctaneRouteAction",
77
+ "useApplicationRouteId",
78
+ "default",
79
+ "useOctaneRouteAction",
80
+ "matchApplicationRouteIds",
81
+ "ApplicationRouter",
82
+ "matchApplicationRoutes",
83
+ "resolveRouteData",
84
+ "selectApplicationDataRoute",
85
+ "RouteDataError"
86
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_octanejs_tanstack_router__rspack_import_1[__rspack_import_key];
87
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
88
+ function useApplicationIdentity() {
89
+ const identity = (0, _octanejs_tanstack_router__rspack_import_1.useRouter)().options.context?.ultramodern?.rendererIdentity;
90
+ if (!identity || 'object' != typeof identity || Array.isArray(identity)) throw new Error('The Octane application router is missing its renderer identity');
91
+ (0, _bootstrap__rspack_import_3.assertOctaneIdentity)(identity);
92
+ return Object.freeze({
93
+ ...identity
94
+ });
95
+ }
96
+ function useApplicationRouteId() {
97
+ const router = (0, _octanejs_tanstack_router__rspack_import_1.useRouter)();
98
+ const routeId = (0, _octanejs_tanstack_router__rspack_import_1.useMatch)({
99
+ strict: false,
100
+ select: (match)=>match.routeId
101
+ });
102
+ if ('string' != typeof routeId) throw new Error('The Octane application requires an active native route match');
103
+ const id = router.routesById[routeId]?.options.staticData?.ultramodernRouteId;
104
+ if ('string' != typeof id || 0 === id.length) throw new Error('The Octane application route is missing its filesystem identity');
105
+ return id;
106
+ }
107
+ function assertNavigableActionRedirect(status, method) {
108
+ if (307 === status || 308 === status || (301 === status || 302 === status) && 'POST' !== method) throw new Error(`A native action redirect must not preserve the method (HTTP ${status} after ${method}); redirect with 303 to navigate after the mutation`);
109
+ }
110
+ function createOctaneRouteAction(input) {
111
+ const data = (0, _modern_js_renderer_core_data__rspack_import_0.createDataClient)(input.routeId, input.identity, {
112
+ fetch: input.fetch
113
+ });
114
+ return async (_previous, formData)=>{
115
+ input.signal?.throwIfAborted();
116
+ const target = 'function' == typeof input.url ? input.url() : input.url ?? input.router.latestLocation.publicHref;
117
+ const origin = input.router.options.origin ?? globalThis.location?.origin;
118
+ const request = new Request(new URL(target, origin), {
119
+ method: input.method ?? 'POST',
120
+ body: formData,
121
+ signal: input.signal
122
+ });
123
+ const outcome = await data.action({
124
+ request
125
+ });
126
+ await outcome.completion;
127
+ input.signal?.throwIfAborted();
128
+ if ('redirect' === outcome.kind) {
129
+ assertNavigableActionRedirect(outcome.status, request.method);
130
+ const resolved = input.router.resolveRedirect((0, _octanejs_tanstack_router__rspack_import_1.redirect)({
131
+ href: new URL(outcome.location, request.url).href,
132
+ statusCode: outcome.status
133
+ }));
134
+ await input.router.navigate({
135
+ href: resolved.options.href
136
+ });
137
+ } else if (('error' === outcome.kind || 'not-found' === outcome.kind) && outcome.thrown) (0, _routes__rspack_import_4.resolveRouteData)(input.routeId, outcome);
138
+ else if ('success' === outcome.kind) await input.router.invalidate();
139
+ return outcome;
140
+ };
141
+ }
142
+ const actionSlot = (0, octane__rspack_import_2.createSubSlot)({
143
+ slotlessPrefix: 'ultramodern-action:'
144
+ });
145
+ function useOctaneRouteAction(...args) {
146
+ const tail = args.at(-1);
147
+ const slot = 'symbol' == typeof tail ? tail : void 0;
148
+ const binding = 'object' == typeof args[0] && null !== args[0] ? args[0] : {};
149
+ const router = (0, _octanejs_tanstack_router__rspack_import_1.useRouter)();
150
+ const identity = useApplicationIdentity();
151
+ const routeId = useApplicationRouteId();
152
+ const owner = (0, octane__rspack_import_2.useRef)(null, actionSlot(slot, 'owner'));
153
+ (0, octane__rspack_import_2.useEffect)(()=>{
154
+ const controller = new AbortController();
155
+ owner.current = controller;
156
+ return ()=>controller.abort(new DOMException('The route action owner unmounted', 'AbortError'));
157
+ }, [], actionSlot(slot, 'lifetime'));
158
+ const { url, method, fetch } = binding;
159
+ return (0, octane__rspack_import_2.useCallback)((previous, formData)=>createOctaneRouteAction({
160
+ router,
161
+ routeId,
162
+ identity,
163
+ url,
164
+ method,
165
+ fetch,
166
+ signal: owner.current?.signal
167
+ })(previous, formData), [
168
+ router,
169
+ routeId,
170
+ url,
171
+ method,
172
+ fetch
173
+ ], actionSlot(slot, 'action'));
174
+ }
175
+ __webpack_require__.d(__webpack_exports__, {
176
+ ApplicationRouter: ()=>_octanejs_tanstack_router__rspack_import_1.RouterProvider,
177
+ RouteDataError: ()=>_routes__rspack_import_4.RouteDataError,
178
+ createApplicationRouter: ()=>_octanejs_tanstack_router__rspack_import_1.createRouter,
179
+ createFileSystemRouteTree: ()=>_routes__rspack_import_4.createFileSystemRouteTree,
180
+ createOctaneRouteAction: ()=>createOctaneRouteAction,
181
+ matchApplicationRouteIds: ()=>_routes__rspack_import_4.matchApplicationRouteIds,
182
+ matchApplicationRoutes: ()=>_routes__rspack_import_4.matchApplicationRoutes,
183
+ resolveRouteData: ()=>_routes__rspack_import_4.resolveRouteData,
184
+ selectApplicationDataRoute: ()=>_routes__rspack_import_4.selectApplicationDataRoute,
185
+ useApplicationIdentity: ()=>useApplicationIdentity,
186
+ useApplicationRouteId: ()=>useApplicationRouteId,
187
+ useOctaneRouteAction: ()=>useOctaneRouteAction
188
+ });
189
+ })();
190
+ exports.ApplicationRouter = __webpack_exports__.ApplicationRouter;
191
+ exports.RouteDataError = __webpack_exports__.RouteDataError;
192
+ exports.createApplicationRouter = __webpack_exports__.createApplicationRouter;
193
+ exports.createFileSystemRouteTree = __webpack_exports__.createFileSystemRouteTree;
194
+ exports.createOctaneRouteAction = __webpack_exports__.createOctaneRouteAction;
195
+ exports.matchApplicationRouteIds = __webpack_exports__.matchApplicationRouteIds;
196
+ exports.matchApplicationRoutes = __webpack_exports__.matchApplicationRoutes;
197
+ exports.resolveRouteData = __webpack_exports__.resolveRouteData;
198
+ exports.selectApplicationDataRoute = __webpack_exports__.selectApplicationDataRoute;
199
+ exports.useApplicationIdentity = __webpack_exports__.useApplicationIdentity;
200
+ exports.useApplicationRouteId = __webpack_exports__.useApplicationRouteId;
201
+ exports.useOctaneRouteAction = __webpack_exports__.useOctaneRouteAction;
202
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
203
+ "ApplicationRouter",
204
+ "RouteDataError",
205
+ "createApplicationRouter",
206
+ "createFileSystemRouteTree",
207
+ "createOctaneRouteAction",
208
+ "matchApplicationRouteIds",
209
+ "matchApplicationRoutes",
210
+ "resolveRouteData",
211
+ "selectApplicationDataRoute",
212
+ "useApplicationIdentity",
213
+ "useApplicationRouteId",
214
+ "useOctaneRouteAction"
215
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
216
+ Object.defineProperty(exports, '__esModule', {
217
+ value: true
218
+ });
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ RouteDataError: ()=>router_namespaceObject.RouteDataError,
32
+ createFileSystemRouteTree: ()=>createFileSystemRouteTree,
33
+ matchApplicationRouteIds: ()=>router_namespaceObject.matchApplicationRouteIds,
34
+ matchApplicationRoutes: ()=>router_namespaceObject.matchApplicationRoutes,
35
+ resolveRouteData: ()=>resolveRouteData,
36
+ selectApplicationDataRoute: ()=>router_namespaceObject.selectApplicationDataRoute
37
+ });
38
+ const router_namespaceObject = require("@modern-js/renderer-core/router");
39
+ const tanstack_router_namespaceObject = require("@octanejs/tanstack-router");
40
+ const external_octane_namespaceObject = require("octane");
41
+ function resolveRouteData(routeId, outcome) {
42
+ return (0, router_namespaceObject.resolveRouteData)({
43
+ redirect: tanstack_router_namespaceObject.redirect,
44
+ notFound: tanstack_router_namespaceObject.notFound
45
+ }, routeId, outcome);
46
+ }
47
+ function isReactiveNativeMatch(value) {
48
+ return 'object' == typeof value && null !== value && 'function' == typeof Reflect.get(value, 'get') && 'function' == typeof Reflect.get(value, 'subscribe');
49
+ }
50
+ function observeRouteCompletion(router, controller, signal, completion) {
51
+ completion.catch((error)=>{
52
+ if (signal.aborted) return;
53
+ const match = [
54
+ ...router.stores.pendingMatches.get(),
55
+ ...router.stores.matches.get(),
56
+ ...router.stores.cachedMatches.get()
57
+ ].find((candidate)=>candidate.abortController === controller);
58
+ if (!match) return;
59
+ const store = [
60
+ router.stores.pendingMatchStores.get(match.id),
61
+ router.stores.matchStores.get(match.id),
62
+ router.stores.cachedMatchStores.get(match.id)
63
+ ].find((candidate)=>candidate?.get().abortController === controller);
64
+ if (!store) return;
65
+ let subscription;
66
+ let settled = false;
67
+ const cleanup = ()=>{
68
+ subscription?.unsubscribe();
69
+ signal.removeEventListener('abort', onAbort);
70
+ };
71
+ const onAbort = ()=>{
72
+ settled = true;
73
+ cleanup();
74
+ };
75
+ const publish = ()=>{
76
+ if (settled) return;
77
+ const current = store.get();
78
+ if (current.abortController !== controller || signal.aborted || 'pending' !== current.status && 'success' !== current.status) return void onAbort();
79
+ if ('success' !== current.status || current.isFetching) return;
80
+ settled = true;
81
+ cleanup();
82
+ const route = router.routesById[current.routeId];
83
+ let failure = error;
84
+ try {
85
+ route?.options.onError?.(failure);
86
+ } catch (onErrorFailure) {
87
+ failure = onErrorFailure;
88
+ }
89
+ if (signal.aborted) return;
90
+ router.updateMatch(match.id, (previous)=>previous.abortController !== controller || 'success' !== previous.status || previous.isFetching ? previous : {
91
+ ...previous,
92
+ error: failure,
93
+ status: 'error',
94
+ isFetching: false
95
+ });
96
+ };
97
+ signal.addEventListener('abort', onAbort, {
98
+ once: true
99
+ });
100
+ if (isReactiveNativeMatch(store)) subscription = store.subscribe(publish);
101
+ if (settled) subscription?.unsubscribe();
102
+ else publish();
103
+ });
104
+ }
105
+ function createFileSystemRouteTree(routes, modules, options = {}) {
106
+ const { root: rootDescriptor, children } = (0, router_namespaceObject.splitFileSystemRoutes)(routes);
107
+ function bindings(route, errorComponent) {
108
+ const needsData = Boolean(route.modules?.data || route.modules?.clientData);
109
+ if (needsData && !options.loadRoute) throw new Error(`An Octane data route requires its loader: ${route.id}`);
110
+ const loadRoute = options.loadRoute;
111
+ const { head, ...module } = modules[route.id] ?? {};
112
+ return {
113
+ ...module,
114
+ ...void 0 !== head ? {
115
+ head
116
+ } : {},
117
+ ...errorComponent ? {
118
+ errorComponent
119
+ } : {},
120
+ component: module.component ?? tanstack_router_namespaceObject.Outlet,
121
+ staticData: {
122
+ ultramodernRouteId: route.id
123
+ },
124
+ ...needsData && loadRoute ? {
125
+ loader: async (match)=>{
126
+ const { outcome, signal } = await (0, router_namespaceObject.loadFileSystemRoute)(route, loadRoute, options, match);
127
+ if ('completion' in outcome && outcome.completion) {
128
+ const router = options.getRouter?.();
129
+ if (!router) throw new Error('An Octane streamed data route requires its native router');
130
+ let failed = false;
131
+ let failure;
132
+ outcome.completion.catch((error)=>{
133
+ failed = true;
134
+ failure = error;
135
+ });
136
+ await Promise.resolve();
137
+ signal.throwIfAborted();
138
+ if (failed) throw failure;
139
+ observeRouteCompletion(router, match.abortController, signal, outcome.completion);
140
+ }
141
+ options.onOutcome?.(route.id, outcome);
142
+ return resolveRouteData(route.id, outcome);
143
+ }
144
+ } : {}
145
+ };
146
+ }
147
+ const rootBindings = rootDescriptor ? bindings(rootDescriptor) : {
148
+ component: tanstack_router_namespaceObject.Outlet
149
+ };
150
+ const authoredRoot = rootBindings.component;
151
+ function OctaneDocumentRoot(props) {
152
+ return (0, external_octane_namespaceObject.createElement)(external_octane_namespaceObject.Fragment, null, (0, external_octane_namespaceObject.createElement)(tanstack_router_namespaceObject.HeadContent), (0, external_octane_namespaceObject.createElement)(authoredRoot, props), (0, external_octane_namespaceObject.createElement)(tanstack_router_namespaceObject.Scripts));
153
+ }
154
+ if (void 0 !== authoredRoot.preload) OctaneDocumentRoot.preload = authoredRoot.preload;
155
+ const rootErrorComponent = rootDescriptor && modules[rootDescriptor.id]?.errorComponent || tanstack_router_namespaceObject.ErrorComponent;
156
+ const root = (0, tanstack_router_namespaceObject.createRootRoute)({
157
+ ...rootBindings,
158
+ component: OctaneDocumentRoot
159
+ });
160
+ function bind(route, parent, inheritedErrorComponent) {
161
+ const errorComponent = modules[route.id]?.errorComponent ?? inheritedErrorComponent;
162
+ const native = (0, tanstack_router_namespaceObject.createRoute)({
163
+ getParentRoute: ()=>parent,
164
+ ...(0, router_namespaceObject.nativeRoutePath)(route),
165
+ ...bindings(route, errorComponent)
166
+ });
167
+ return native.addChildren(route.children.map((child)=>bind(child, native, errorComponent)));
168
+ }
169
+ return root.addChildren(children.map((route)=>bind(route, root, rootErrorComponent)));
170
+ }
171
+ exports.RouteDataError = __webpack_exports__.RouteDataError;
172
+ exports.createFileSystemRouteTree = __webpack_exports__.createFileSystemRouteTree;
173
+ exports.matchApplicationRouteIds = __webpack_exports__.matchApplicationRouteIds;
174
+ exports.matchApplicationRoutes = __webpack_exports__.matchApplicationRoutes;
175
+ exports.resolveRouteData = __webpack_exports__.resolveRouteData;
176
+ exports.selectApplicationDataRoute = __webpack_exports__.selectApplicationDataRoute;
177
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
178
+ "RouteDataError",
179
+ "createFileSystemRouteTree",
180
+ "matchApplicationRouteIds",
181
+ "matchApplicationRoutes",
182
+ "resolveRouteData",
183
+ "selectApplicationDataRoute"
184
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
185
+ Object.defineProperty(exports, '__esModule', {
186
+ value: true
187
+ });