@bleedingdev/modern-js-plugin-tanstack 3.2.0-ultramodern.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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/cli/index.js +268 -0
  3. package/dist/cjs/cli/tanstackTypes.js +388 -0
  4. package/dist/cjs/cli.js +65 -0
  5. package/dist/cjs/runtime/DefaultNotFound.js +47 -0
  6. package/dist/cjs/runtime/basepathRewrite.js +62 -0
  7. package/dist/cjs/runtime/dataMutation.js +345 -0
  8. package/dist/cjs/runtime/hooks.js +57 -0
  9. package/dist/cjs/runtime/index.js +114 -0
  10. package/dist/cjs/runtime/lifecycle.js +125 -0
  11. package/dist/cjs/runtime/plugin.js +250 -0
  12. package/dist/cjs/runtime/plugin.node.js +304 -0
  13. package/dist/cjs/runtime/prefetchLink.js +55 -0
  14. package/dist/cjs/runtime/routeTree.js +492 -0
  15. package/dist/cjs/runtime/rsc/ClientSlot.js +53 -0
  16. package/dist/cjs/runtime/rsc/CompositeComponent.js +75 -0
  17. package/dist/cjs/runtime/rsc/ReplayableStream.js +141 -0
  18. package/dist/cjs/runtime/rsc/RscNodeRenderer.js +65 -0
  19. package/dist/cjs/runtime/rsc/SlotContext.js +54 -0
  20. package/dist/cjs/runtime/rsc/client.js +93 -0
  21. package/dist/cjs/runtime/rsc/createRscProxy.js +141 -0
  22. package/dist/cjs/runtime/rsc/index.js +42 -0
  23. package/dist/cjs/runtime/rsc/payloadRouter.js +211 -0
  24. package/dist/cjs/runtime/rsc/server.js +246 -0
  25. package/dist/cjs/runtime/rsc/slotUsageSanitizer.js +65 -0
  26. package/dist/cjs/runtime/rsc/symbols.js +72 -0
  27. package/dist/cjs/runtime/types.js +18 -0
  28. package/dist/cjs/runtime/utils.js +142 -0
  29. package/dist/cjs/runtime.js +58 -0
  30. package/dist/esm/cli/index.mjs +201 -0
  31. package/dist/esm/cli/tanstackTypes.mjs +341 -0
  32. package/dist/esm/cli.mjs +2 -0
  33. package/dist/esm/rslib-runtime.mjs +18 -0
  34. package/dist/esm/runtime/DefaultNotFound.mjs +13 -0
  35. package/dist/esm/runtime/basepathRewrite.mjs +28 -0
  36. package/dist/esm/runtime/dataMutation.mjs +305 -0
  37. package/dist/esm/runtime/hooks.mjs +8 -0
  38. package/dist/esm/runtime/index.mjs +6 -0
  39. package/dist/esm/runtime/lifecycle.mjs +82 -0
  40. package/dist/esm/runtime/plugin.mjs +214 -0
  41. package/dist/esm/runtime/plugin.node.mjs +268 -0
  42. package/dist/esm/runtime/prefetchLink.mjs +18 -0
  43. package/dist/esm/runtime/routeTree.mjs +452 -0
  44. package/dist/esm/runtime/rsc/ClientSlot.mjs +19 -0
  45. package/dist/esm/runtime/rsc/CompositeComponent.mjs +41 -0
  46. package/dist/esm/runtime/rsc/ReplayableStream.mjs +104 -0
  47. package/dist/esm/runtime/rsc/RscNodeRenderer.mjs +31 -0
  48. package/dist/esm/runtime/rsc/SlotContext.mjs +17 -0
  49. package/dist/esm/runtime/rsc/client.mjs +53 -0
  50. package/dist/esm/runtime/rsc/createRscProxy.mjs +107 -0
  51. package/dist/esm/runtime/rsc/index.mjs +1 -0
  52. package/dist/esm/runtime/rsc/payloadRouter.mjs +162 -0
  53. package/dist/esm/runtime/rsc/server.mjs +200 -0
  54. package/dist/esm/runtime/rsc/slotUsageSanitizer.mjs +31 -0
  55. package/dist/esm/runtime/rsc/symbols.mjs +17 -0
  56. package/dist/esm/runtime/types.mjs +0 -0
  57. package/dist/esm/runtime/utils.mjs +89 -0
  58. package/dist/esm/runtime.mjs +1 -0
  59. package/dist/esm-node/cli/index.mjs +205 -0
  60. package/dist/esm-node/cli/tanstackTypes.mjs +342 -0
  61. package/dist/esm-node/cli.mjs +3 -0
  62. package/dist/esm-node/rslib-runtime.mjs +19 -0
  63. package/dist/esm-node/runtime/DefaultNotFound.mjs +14 -0
  64. package/dist/esm-node/runtime/basepathRewrite.mjs +29 -0
  65. package/dist/esm-node/runtime/dataMutation.mjs +306 -0
  66. package/dist/esm-node/runtime/hooks.mjs +9 -0
  67. package/dist/esm-node/runtime/index.mjs +7 -0
  68. package/dist/esm-node/runtime/lifecycle.mjs +83 -0
  69. package/dist/esm-node/runtime/plugin.mjs +215 -0
  70. package/dist/esm-node/runtime/plugin.node.mjs +269 -0
  71. package/dist/esm-node/runtime/prefetchLink.mjs +19 -0
  72. package/dist/esm-node/runtime/routeTree.mjs +453 -0
  73. package/dist/esm-node/runtime/rsc/ClientSlot.mjs +20 -0
  74. package/dist/esm-node/runtime/rsc/CompositeComponent.mjs +42 -0
  75. package/dist/esm-node/runtime/rsc/ReplayableStream.mjs +105 -0
  76. package/dist/esm-node/runtime/rsc/RscNodeRenderer.mjs +32 -0
  77. package/dist/esm-node/runtime/rsc/SlotContext.mjs +18 -0
  78. package/dist/esm-node/runtime/rsc/client.mjs +54 -0
  79. package/dist/esm-node/runtime/rsc/createRscProxy.mjs +108 -0
  80. package/dist/esm-node/runtime/rsc/index.mjs +2 -0
  81. package/dist/esm-node/runtime/rsc/payloadRouter.mjs +163 -0
  82. package/dist/esm-node/runtime/rsc/server.mjs +201 -0
  83. package/dist/esm-node/runtime/rsc/slotUsageSanitizer.mjs +32 -0
  84. package/dist/esm-node/runtime/rsc/symbols.mjs +18 -0
  85. package/dist/esm-node/runtime/types.mjs +1 -0
  86. package/dist/esm-node/runtime/utils.mjs +90 -0
  87. package/dist/esm-node/runtime.mjs +2 -0
  88. package/dist/types/cli/index.d.ts +20 -0
  89. package/dist/types/cli/tanstackTypes.d.ts +11 -0
  90. package/dist/types/cli.d.ts +2 -0
  91. package/dist/types/runtime/DefaultNotFound.d.ts +2 -0
  92. package/dist/types/runtime/basepathRewrite.d.ts +8 -0
  93. package/dist/types/runtime/dataMutation.d.ts +29 -0
  94. package/dist/types/runtime/hooks.d.ts +18 -0
  95. package/dist/types/runtime/index.d.ts +9 -0
  96. package/dist/types/runtime/lifecycle.d.ts +22 -0
  97. package/dist/types/runtime/plugin.d.ts +17 -0
  98. package/dist/types/runtime/plugin.node.d.ts +17 -0
  99. package/dist/types/runtime/prefetchLink.d.ts +11 -0
  100. package/dist/types/runtime/routeTree.d.ts +11 -0
  101. package/dist/types/runtime/rsc/ClientSlot.d.ts +5 -0
  102. package/dist/types/runtime/rsc/CompositeComponent.d.ts +3 -0
  103. package/dist/types/runtime/rsc/ReplayableStream.d.ts +24 -0
  104. package/dist/types/runtime/rsc/RscNodeRenderer.d.ts +5 -0
  105. package/dist/types/runtime/rsc/SlotContext.d.ts +11 -0
  106. package/dist/types/runtime/rsc/client.d.ts +11 -0
  107. package/dist/types/runtime/rsc/createRscProxy.d.ts +7 -0
  108. package/dist/types/runtime/rsc/index.d.ts +2 -0
  109. package/dist/types/runtime/rsc/payloadRouter.d.ts +24 -0
  110. package/dist/types/runtime/rsc/server.d.ts +14 -0
  111. package/dist/types/runtime/rsc/slotUsageSanitizer.d.ts +2 -0
  112. package/dist/types/runtime/rsc/symbols.d.ts +46 -0
  113. package/dist/types/runtime/types.d.ts +68 -0
  114. package/dist/types/runtime/utils.d.ts +36 -0
  115. package/dist/types/runtime.d.ts +1 -0
  116. package/dist/types-direct/cli/index.d.ts +20 -0
  117. package/dist/types-direct/cli/tanstackTypes.d.ts +11 -0
  118. package/dist/types-direct/cli.d.ts +2 -0
  119. package/dist/types-direct/runtime/DefaultNotFound.d.ts +2 -0
  120. package/dist/types-direct/runtime/basepathRewrite.d.ts +8 -0
  121. package/dist/types-direct/runtime/dataMutation.d.ts +29 -0
  122. package/dist/types-direct/runtime/hooks.d.ts +18 -0
  123. package/dist/types-direct/runtime/index.d.ts +9 -0
  124. package/dist/types-direct/runtime/lifecycle.d.ts +22 -0
  125. package/dist/types-direct/runtime/plugin.d.ts +17 -0
  126. package/dist/types-direct/runtime/plugin.node.d.ts +17 -0
  127. package/dist/types-direct/runtime/prefetchLink.d.ts +11 -0
  128. package/dist/types-direct/runtime/routeTree.d.ts +11 -0
  129. package/dist/types-direct/runtime/rsc/ClientSlot.d.ts +5 -0
  130. package/dist/types-direct/runtime/rsc/CompositeComponent.d.ts +3 -0
  131. package/dist/types-direct/runtime/rsc/ReplayableStream.d.ts +24 -0
  132. package/dist/types-direct/runtime/rsc/RscNodeRenderer.d.ts +5 -0
  133. package/dist/types-direct/runtime/rsc/SlotContext.d.ts +11 -0
  134. package/dist/types-direct/runtime/rsc/client.d.ts +11 -0
  135. package/dist/types-direct/runtime/rsc/createRscProxy.d.ts +7 -0
  136. package/dist/types-direct/runtime/rsc/index.d.ts +2 -0
  137. package/dist/types-direct/runtime/rsc/payloadRouter.d.ts +24 -0
  138. package/dist/types-direct/runtime/rsc/server.d.ts +14 -0
  139. package/dist/types-direct/runtime/rsc/slotUsageSanitizer.d.ts +2 -0
  140. package/dist/types-direct/runtime/rsc/symbols.d.ts +46 -0
  141. package/dist/types-direct/runtime/types.d.ts +68 -0
  142. package/dist/types-direct/runtime/utils.d.ts +36 -0
  143. package/dist/types-direct/runtime.d.ts +1 -0
  144. package/package.json +126 -0
  145. package/rslib.config.mts +4 -0
  146. package/rstest.config.mts +43 -0
  147. package/src/cli/index.ts +388 -0
  148. package/src/cli/tanstackTypes.ts +503 -0
  149. package/src/cli.ts +2 -0
  150. package/src/runtime/DefaultNotFound.tsx +15 -0
  151. package/src/runtime/basepathRewrite.ts +59 -0
  152. package/src/runtime/dataMutation.tsx +517 -0
  153. package/src/runtime/hooks.ts +34 -0
  154. package/src/runtime/index.tsx +30 -0
  155. package/src/runtime/lifecycle.ts +150 -0
  156. package/src/runtime/plugin.node.tsx +534 -0
  157. package/src/runtime/plugin.tsx +395 -0
  158. package/src/runtime/prefetchLink.tsx +87 -0
  159. package/src/runtime/routeTree.ts +942 -0
  160. package/src/runtime/rsc/ClientSlot.tsx +25 -0
  161. package/src/runtime/rsc/CompositeComponent.tsx +65 -0
  162. package/src/runtime/rsc/ReplayableStream.ts +155 -0
  163. package/src/runtime/rsc/RscNodeRenderer.tsx +45 -0
  164. package/src/runtime/rsc/SlotContext.tsx +31 -0
  165. package/src/runtime/rsc/client.tsx +90 -0
  166. package/src/runtime/rsc/createRscProxy.tsx +189 -0
  167. package/src/runtime/rsc/index.ts +10 -0
  168. package/src/runtime/rsc/payloadRouter.ts +318 -0
  169. package/src/runtime/rsc/server.tsx +303 -0
  170. package/src/runtime/rsc/slotUsageSanitizer.ts +76 -0
  171. package/src/runtime/rsc/symbols.ts +106 -0
  172. package/src/runtime/ssr-shim.d.ts +12 -0
  173. package/src/runtime/types.ts +83 -0
  174. package/src/runtime/utils.tsx +161 -0
  175. package/src/runtime.ts +1 -0
  176. package/tests/router/cli.test.ts +386 -0
  177. package/tests/router/dataMutation.test.tsx +396 -0
  178. package/tests/router/prefetchLink.test.tsx +43 -0
  179. package/tests/router/routeTree.test.ts +502 -0
  180. package/tests/router/rsc.test.tsx +256 -0
  181. package/tests/router/tanstackTypes.test.ts +62 -0
  182. package/tsconfig.json +12 -0
  183. package/tsconfig.tsgo.json +6 -0
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./cli/index" (module) {
4
+ module.exports = require("./cli/index.js");
5
+ }
6
+ };
7
+ var __webpack_module_cache__ = {};
8
+ function __webpack_require__(moduleId) {
9
+ var cachedModule = __webpack_module_cache__[moduleId];
10
+ if (void 0 !== cachedModule) return cachedModule.exports;
11
+ var module = __webpack_module_cache__[moduleId] = {
12
+ exports: {}
13
+ };
14
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
15
+ return module.exports;
16
+ }
17
+ (()=>{
18
+ __webpack_require__.n = (module)=>{
19
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
20
+ __webpack_require__.d(getter, {
21
+ a: getter
22
+ });
23
+ return getter;
24
+ };
25
+ })();
26
+ (()=>{
27
+ __webpack_require__.d = (exports1, definition)=>{
28
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
29
+ enumerable: true,
30
+ get: definition[key]
31
+ });
32
+ };
33
+ })();
34
+ (()=>{
35
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
36
+ })();
37
+ (()=>{
38
+ __webpack_require__.r = (exports1)=>{
39
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
40
+ value: 'Module'
41
+ });
42
+ Object.defineProperty(exports1, '__esModule', {
43
+ value: true
44
+ });
45
+ };
46
+ })();
47
+ var __webpack_exports__ = {};
48
+ (()=>{
49
+ __webpack_require__.r(__webpack_exports__);
50
+ __webpack_require__.d(__webpack_exports__, {
51
+ default: ()=>_cli_index__rspack_import_0_default.a
52
+ });
53
+ var _cli_index__rspack_import_0 = __webpack_require__("./cli/index");
54
+ var _cli_index__rspack_import_0_default = /*#__PURE__*/ __webpack_require__.n(_cli_index__rspack_import_0);
55
+ var __rspack_reexport = {};
56
+ for(const __rspack_import_key in _cli_index__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_cli_index__rspack_import_0[__rspack_import_key];
57
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
58
+ })();
59
+ exports["default"] = __webpack_exports__["default"];
60
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
61
+ "default"
62
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
63
+ Object.defineProperty(exports, '__esModule', {
64
+ value: true
65
+ });
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ DefaultNotFound: ()=>DefaultNotFound
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ require("react");
31
+ const DefaultNotFound = ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
32
+ style: {
33
+ margin: '150px auto',
34
+ textAlign: 'center',
35
+ display: 'flex',
36
+ alignItems: 'center',
37
+ justifyContent: 'center'
38
+ },
39
+ children: "404"
40
+ });
41
+ exports.DefaultNotFound = __webpack_exports__.DefaultNotFound;
42
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
43
+ "DefaultNotFound"
44
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
45
+ Object.defineProperty(exports, '__esModule', {
46
+ value: true
47
+ });
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ createModernBasepathRewrite: ()=>createModernBasepathRewrite
28
+ });
29
+ function normalizeBasepath(basepath) {
30
+ if (!basepath) return '/';
31
+ let normalized = basepath.startsWith('/') ? basepath : `/${basepath}`;
32
+ if (normalized.length > 1 && normalized.endsWith('/')) normalized = normalized.slice(0, -1);
33
+ return normalized || '/';
34
+ }
35
+ function createModernBasepathRewrite(basepath, caseSensitive = false) {
36
+ const normalizedBasepath = normalizeBasepath(basepath);
37
+ if ('/' === normalizedBasepath) return;
38
+ const normalizedBasepathWithSlash = `${normalizedBasepath}/`;
39
+ const checkBasepath = caseSensitive ? normalizedBasepath : normalizedBasepath.toLowerCase();
40
+ const checkBasepathWithSlash = caseSensitive ? normalizedBasepathWithSlash : normalizedBasepathWithSlash.toLowerCase();
41
+ return {
42
+ input: ({ url })=>{
43
+ const pathname = caseSensitive ? url.pathname : url.pathname.toLowerCase();
44
+ if (pathname === checkBasepath) url.pathname = '/';
45
+ else if (pathname.startsWith(checkBasepathWithSlash)) url.pathname = url.pathname.slice(normalizedBasepath.length) || '/';
46
+ return url;
47
+ },
48
+ output: ({ url })=>{
49
+ const pathname = url.pathname || '/';
50
+ if ('/' === pathname) url.pathname = normalizedBasepath;
51
+ else url.pathname = `${normalizedBasepath}${pathname.startsWith('/') ? '' : '/'}${pathname}`;
52
+ return url;
53
+ }
54
+ };
55
+ }
56
+ exports.createModernBasepathRewrite = __webpack_exports__.createModernBasepathRewrite;
57
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
58
+ "createModernBasepathRewrite"
59
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
60
+ Object.defineProperty(exports, '__esModule', {
61
+ value: true
62
+ });
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ Form: ()=>Form,
28
+ RouteActionResponseError: ()=>RouteActionResponseError,
29
+ useFetcher: ()=>useFetcher
30
+ });
31
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
32
+ const react_router_namespaceObject = require("@tanstack/react-router");
33
+ const external_react_namespaceObject = require("react");
34
+ class RouteActionResponseError extends Error {
35
+ constructor(response, data){
36
+ super(`Route action failed with status ${response.status}`);
37
+ this.name = 'RouteActionResponseError';
38
+ this.response = response;
39
+ this.data = data;
40
+ }
41
+ }
42
+ function formDataToUrlSearchParams(formData) {
43
+ const searchParams = new URLSearchParams();
44
+ formData.forEach((value, key)=>{
45
+ if ('string' == typeof value) searchParams.append(key, value);
46
+ });
47
+ return searchParams;
48
+ }
49
+ function formDataToTextPlain(formData) {
50
+ return Array.from(formData.entries()).map(([key, value])=>`${key}=${String(value)}`).join('\n');
51
+ }
52
+ function toFormData(target) {
53
+ if (target instanceof HTMLFormElement) return new FormData(target);
54
+ if (target instanceof FormData) return target;
55
+ if (target instanceof URLSearchParams) {
56
+ const formData = new FormData();
57
+ target.forEach((value, key)=>{
58
+ formData.append(key, value);
59
+ });
60
+ return formData;
61
+ }
62
+ const formData = new FormData();
63
+ Object.entries(target).forEach(([key, value])=>{
64
+ if (null == value) return;
65
+ formData.append(key, String(value));
66
+ });
67
+ return formData;
68
+ }
69
+ function getSubmitter(event) {
70
+ const nativeEvent = event.nativeEvent;
71
+ const submitter = nativeEvent?.submitter;
72
+ if (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement) return submitter;
73
+ return null;
74
+ }
75
+ function createFormDataFromSubmit({ form, submitter }) {
76
+ if (submitter) try {
77
+ return new FormData(form, submitter);
78
+ } catch {}
79
+ return new FormData(form);
80
+ }
81
+ function resolveSubmitOptionsFromForm({ form, submitter, action, method, encType }) {
82
+ const resolvedAction = submitter?.getAttribute('formaction') || action || form.getAttribute('action') || '.';
83
+ const resolvedMethod = (submitter?.getAttribute('formmethod') || method || form.getAttribute('method') || 'get').toLowerCase();
84
+ const resolvedEncType = submitter?.getAttribute('formenctype') || encType || form.getAttribute('enctype') || 'application/x-www-form-urlencoded';
85
+ return {
86
+ action: resolvedAction,
87
+ method: resolvedMethod,
88
+ encType: resolvedEncType
89
+ };
90
+ }
91
+ function resolveRouteHandlers(router, actionTo) {
92
+ const builtLocation = router.buildLocation({
93
+ to: actionTo
94
+ });
95
+ const href = router.getParsedLocationHref(builtLocation);
96
+ const matchedRoutes = router.getMatchedRoutes(builtLocation.pathname);
97
+ const routeStaticData = matchedRoutes.foundRoute?.options?.staticData;
98
+ const action = routeStaticData?.modernRouteAction;
99
+ const loader = routeStaticData?.modernRouteLoader;
100
+ return {
101
+ action,
102
+ loader,
103
+ href,
104
+ params: matchedRoutes.routeParams || {}
105
+ };
106
+ }
107
+ function isRedirectResponse(value) {
108
+ if (!(value instanceof Response)) return false;
109
+ return [
110
+ 301,
111
+ 302,
112
+ 303,
113
+ 307,
114
+ 308
115
+ ].includes(value.status);
116
+ }
117
+ async function parseResponseData(response) {
118
+ if (204 === response.status) return null;
119
+ const contentType = response.headers.get('Content-Type') || '';
120
+ if (contentType.includes('application/json')) return response.json();
121
+ return response.text();
122
+ }
123
+ async function parseResponseResultOrThrow(response) {
124
+ const parsed = await parseResponseData(response);
125
+ if (!response.ok) throw new RouteActionResponseError(response, parsed);
126
+ return parsed;
127
+ }
128
+ async function submitRouteAction({ router, target, options = {}, isFetcher = false, onInvalidateStart }) {
129
+ const method = (options.method || 'post').toLowerCase();
130
+ const encType = options.encType || 'application/x-www-form-urlencoded';
131
+ const actionTo = options.action || '.';
132
+ const formData = toFormData(target);
133
+ const resolved = resolveRouteHandlers(router, actionTo);
134
+ if ('get' === method) {
135
+ const search = formDataToUrlSearchParams(formData).toString();
136
+ const requestUrl = new URL(resolved.href, window.location.origin);
137
+ requestUrl.search = search;
138
+ if (isFetcher && resolved.loader) {
139
+ const result = await resolved.loader({
140
+ request: new Request(requestUrl, {
141
+ method: 'GET'
142
+ }),
143
+ params: resolved.params
144
+ });
145
+ if (result instanceof Response) {
146
+ const redirectTo = result.headers.get('X-Modernjs-Redirect') || result.headers.get('Location');
147
+ if (redirectTo || isRedirectResponse(result)) {
148
+ await router.navigate({
149
+ to: redirectTo || '/'
150
+ });
151
+ return parseResponseData(result);
152
+ }
153
+ return parseResponseResultOrThrow(result);
154
+ }
155
+ return result;
156
+ }
157
+ await router.navigate({
158
+ href: search ? `${resolved.href}?${search}` : resolved.href
159
+ });
160
+ return;
161
+ }
162
+ if (!resolved.action) throw new Error(`No route action found for "${actionTo}"`);
163
+ const headers = new Headers();
164
+ let body = null;
165
+ if (encType.includes('application/json')) {
166
+ headers.set('Content-Type', 'application/json');
167
+ body = JSON.stringify(Object.fromEntries(formDataToUrlSearchParams(formData).entries()));
168
+ } else if (encType.includes('text/plain')) {
169
+ headers.set('Content-Type', 'text/plain;charset=UTF-8');
170
+ body = formDataToTextPlain(formData);
171
+ } else if (encType.includes('application/x-www-form-urlencoded')) {
172
+ headers.set('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
173
+ body = formDataToUrlSearchParams(formData);
174
+ } else body = formData;
175
+ const request = new Request(new URL(resolved.href, window.location.origin), {
176
+ method: method.toUpperCase(),
177
+ headers,
178
+ body
179
+ });
180
+ const result = await resolved.action({
181
+ request,
182
+ params: resolved.params
183
+ });
184
+ if (result instanceof Response) {
185
+ const redirectTo = result.headers.get('X-Modernjs-Redirect') || result.headers.get('Location');
186
+ if (redirectTo || isRedirectResponse(result)) {
187
+ await router.navigate({
188
+ to: redirectTo || '/'
189
+ });
190
+ return parseResponseData(result);
191
+ }
192
+ const parsed = isFetcher ? await parseResponseResultOrThrow(result) : await parseResponseData(result);
193
+ onInvalidateStart?.();
194
+ await router.invalidate();
195
+ return parsed;
196
+ }
197
+ onInvalidateStart?.();
198
+ await router.invalidate();
199
+ return result;
200
+ }
201
+ function Form({ action, method = 'get', encType, reloadDocument, onSubmit, ...rest }) {
202
+ const router = (0, react_router_namespaceObject.useRouter)();
203
+ const handleSubmit = (0, external_react_namespaceObject.useCallback)(async (event)=>{
204
+ onSubmit?.(event);
205
+ if (event.defaultPrevented || reloadDocument) return;
206
+ event.preventDefault();
207
+ const submitter = getSubmitter(event);
208
+ const formData = createFormDataFromSubmit({
209
+ form: event.currentTarget,
210
+ submitter
211
+ });
212
+ const normalizedOptions = resolveSubmitOptionsFromForm({
213
+ form: event.currentTarget,
214
+ submitter,
215
+ action,
216
+ method,
217
+ encType
218
+ });
219
+ await submitRouteAction({
220
+ router,
221
+ target: formData,
222
+ options: normalizedOptions
223
+ });
224
+ }, [
225
+ action,
226
+ encType,
227
+ method,
228
+ onSubmit,
229
+ reloadDocument,
230
+ router
231
+ ]);
232
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("form", {
233
+ ...rest,
234
+ action: action,
235
+ method: method,
236
+ encType: encType,
237
+ onSubmit: handleSubmit
238
+ });
239
+ }
240
+ function useFetcher() {
241
+ const router = (0, react_router_namespaceObject.useRouter)();
242
+ const [state, setState] = (0, external_react_namespaceObject.useState)('idle');
243
+ const [data, setData] = (0, external_react_namespaceObject.useState)(void 0);
244
+ const [error, setError] = (0, external_react_namespaceObject.useState)(void 0);
245
+ const requestStatesRef = (0, external_react_namespaceObject.useRef)(new Map());
246
+ const requestIdRef = (0, external_react_namespaceObject.useRef)(0);
247
+ const syncStateFromRequests = (0, external_react_namespaceObject.useCallback)(()=>{
248
+ let hasSubmitting = false;
249
+ let hasLoading = false;
250
+ requestStatesRef.current.forEach((requestState)=>{
251
+ if ('submitting' === requestState) hasSubmitting = true;
252
+ else if ('loading' === requestState) hasLoading = true;
253
+ });
254
+ if (hasSubmitting) return void setState('submitting');
255
+ if (hasLoading) return void setState('loading');
256
+ setState('idle');
257
+ }, []);
258
+ const setRequestState = (0, external_react_namespaceObject.useCallback)((requestId, requestState)=>{
259
+ requestStatesRef.current.set(requestId, requestState);
260
+ syncStateFromRequests();
261
+ }, [
262
+ syncStateFromRequests
263
+ ]);
264
+ const clearRequestState = (0, external_react_namespaceObject.useCallback)((requestId)=>{
265
+ requestStatesRef.current.delete(requestId);
266
+ syncStateFromRequests();
267
+ }, [
268
+ syncStateFromRequests
269
+ ]);
270
+ const submit = (0, external_react_namespaceObject.useCallback)(async (target, options)=>{
271
+ setError(void 0);
272
+ const requestId = ++requestIdRef.current;
273
+ const normalizedMethod = (options?.method || 'post').toLowerCase();
274
+ const isLoaderSubmit = 'get' === normalizedMethod;
275
+ setRequestState(requestId, isLoaderSubmit ? 'loading' : 'submitting');
276
+ try {
277
+ const result = await submitRouteAction({
278
+ router,
279
+ target,
280
+ options,
281
+ isFetcher: true,
282
+ onInvalidateStart: ()=>{
283
+ if (!isLoaderSubmit) setRequestState(requestId, 'loading');
284
+ }
285
+ });
286
+ setData(result);
287
+ } catch (err) {
288
+ setError(err);
289
+ throw err;
290
+ } finally{
291
+ clearRequestState(requestId);
292
+ }
293
+ }, [
294
+ clearRequestState,
295
+ router,
296
+ setRequestState
297
+ ]);
298
+ const FetcherForm = (0, external_react_namespaceObject.useCallback)(({ action, method = 'get', encType, reloadDocument, onSubmit, ...rest })=>{
299
+ const handleSubmit = async (event)=>{
300
+ onSubmit?.(event);
301
+ if (event.defaultPrevented || reloadDocument) return;
302
+ event.preventDefault();
303
+ const submitter = getSubmitter(event);
304
+ const formData = createFormDataFromSubmit({
305
+ form: event.currentTarget,
306
+ submitter
307
+ });
308
+ const normalizedOptions = resolveSubmitOptionsFromForm({
309
+ form: event.currentTarget,
310
+ submitter,
311
+ action,
312
+ method,
313
+ encType
314
+ });
315
+ await submit(formData, normalizedOptions);
316
+ };
317
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("form", {
318
+ ...rest,
319
+ action: action,
320
+ method: method,
321
+ encType: encType,
322
+ onSubmit: handleSubmit
323
+ });
324
+ }, [
325
+ submit
326
+ ]);
327
+ return {
328
+ state,
329
+ data,
330
+ error,
331
+ Form: FetcherForm,
332
+ submit
333
+ };
334
+ }
335
+ exports.Form = __webpack_exports__.Form;
336
+ exports.RouteActionResponseError = __webpack_exports__.RouteActionResponseError;
337
+ exports.useFetcher = __webpack_exports__.useFetcher;
338
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
339
+ "Form",
340
+ "RouteActionResponseError",
341
+ "useFetcher"
342
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
343
+ Object.defineProperty(exports, '__esModule', {
344
+ value: true
345
+ });
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ modifyRoutes: ()=>modifyRoutes,
28
+ onAfterCreateRouter: ()=>onAfterCreateRouter,
29
+ onAfterHydrateRouter: ()=>onAfterHydrateRouter,
30
+ onBeforeCreateRouter: ()=>onBeforeCreateRouter,
31
+ onBeforeCreateRoutes: ()=>onBeforeCreateRoutes,
32
+ onBeforeHydrateRouter: ()=>onBeforeHydrateRouter
33
+ });
34
+ const plugin_namespaceObject = require("@modern-js/plugin");
35
+ const modifyRoutes = (0, plugin_namespaceObject.createSyncHook)();
36
+ const onBeforeCreateRoutes = (0, plugin_namespaceObject.createSyncHook)();
37
+ const onBeforeCreateRouter = (0, plugin_namespaceObject.createSyncHook)();
38
+ const onAfterCreateRouter = (0, plugin_namespaceObject.createSyncHook)();
39
+ const onBeforeHydrateRouter = (0, plugin_namespaceObject.createSyncHook)();
40
+ const onAfterHydrateRouter = (0, plugin_namespaceObject.createSyncHook)();
41
+ exports.modifyRoutes = __webpack_exports__.modifyRoutes;
42
+ exports.onAfterCreateRouter = __webpack_exports__.onAfterCreateRouter;
43
+ exports.onAfterHydrateRouter = __webpack_exports__.onAfterHydrateRouter;
44
+ exports.onBeforeCreateRouter = __webpack_exports__.onBeforeCreateRouter;
45
+ exports.onBeforeCreateRoutes = __webpack_exports__.onBeforeCreateRoutes;
46
+ exports.onBeforeHydrateRouter = __webpack_exports__.onBeforeHydrateRouter;
47
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
48
+ "modifyRoutes",
49
+ "onAfterCreateRouter",
50
+ "onAfterHydrateRouter",
51
+ "onBeforeCreateRouter",
52
+ "onBeforeCreateRoutes",
53
+ "onBeforeHydrateRouter"
54
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
55
+ Object.defineProperty(exports, '__esModule', {
56
+ value: true
57
+ });
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./dataMutation" (module) {
4
+ module.exports = require("./dataMutation.js");
5
+ },
6
+ "./plugin" (module) {
7
+ module.exports = require("./plugin.js");
8
+ },
9
+ "./prefetchLink" (module) {
10
+ module.exports = require("./prefetchLink.js");
11
+ },
12
+ "./rsc/client" (module) {
13
+ module.exports = require("./rsc/client.js");
14
+ },
15
+ "@tanstack/react-router" (module) {
16
+ module.exports = require("@tanstack/react-router");
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, definition)=>{
40
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
41
+ enumerable: true,
42
+ get: definition[key]
43
+ });
44
+ };
45
+ })();
46
+ (()=>{
47
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
48
+ })();
49
+ (()=>{
50
+ __webpack_require__.r = (exports1)=>{
51
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
52
+ value: 'Module'
53
+ });
54
+ Object.defineProperty(exports1, '__esModule', {
55
+ value: true
56
+ });
57
+ };
58
+ })();
59
+ var __webpack_exports__ = {};
60
+ (()=>{
61
+ __webpack_require__.r(__webpack_exports__);
62
+ __webpack_require__.d(__webpack_exports__, {
63
+ CompositeComponent: ()=>_rsc_client__rspack_import_4.CompositeComponent,
64
+ Form: ()=>_dataMutation__rspack_import_1.Form,
65
+ Link: ()=>_prefetchLink__rspack_import_3.Link,
66
+ NavLink: ()=>_prefetchLink__rspack_import_3.NavLink,
67
+ RouteActionResponseError: ()=>_dataMutation__rspack_import_1.RouteActionResponseError,
68
+ default: ()=>_plugin__rspack_import_2.tanstackRouterPlugin,
69
+ tanstackRouterPlugin: ()=>_plugin__rspack_import_2.tanstackRouterPlugin,
70
+ useFetcher: ()=>_dataMutation__rspack_import_1.useFetcher,
71
+ useMatch: ()=>_tanstack_react_router__rspack_import_0.useMatch
72
+ });
73
+ var _tanstack_react_router__rspack_import_0 = __webpack_require__("@tanstack/react-router");
74
+ var __rspack_reexport = {};
75
+ for(const __rspack_import_key in _tanstack_react_router__rspack_import_0)if ([
76
+ "default",
77
+ "NavLink",
78
+ "useMatch",
79
+ "tanstackRouterPlugin",
80
+ "useFetcher",
81
+ "CompositeComponent",
82
+ "RouteActionResponseError",
83
+ "Form",
84
+ "Link"
85
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_tanstack_react_router__rspack_import_0[__rspack_import_key];
86
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
87
+ var _dataMutation__rspack_import_1 = __webpack_require__("./dataMutation");
88
+ var _plugin__rspack_import_2 = __webpack_require__("./plugin");
89
+ var _prefetchLink__rspack_import_3 = __webpack_require__("./prefetchLink");
90
+ var _rsc_client__rspack_import_4 = __webpack_require__("./rsc/client");
91
+ })();
92
+ exports.CompositeComponent = __webpack_exports__.CompositeComponent;
93
+ exports.Form = __webpack_exports__.Form;
94
+ exports.Link = __webpack_exports__.Link;
95
+ exports.NavLink = __webpack_exports__.NavLink;
96
+ exports.RouteActionResponseError = __webpack_exports__.RouteActionResponseError;
97
+ exports["default"] = __webpack_exports__["default"];
98
+ exports.tanstackRouterPlugin = __webpack_exports__.tanstackRouterPlugin;
99
+ exports.useFetcher = __webpack_exports__.useFetcher;
100
+ exports.useMatch = __webpack_exports__.useMatch;
101
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
102
+ "CompositeComponent",
103
+ "Form",
104
+ "Link",
105
+ "NavLink",
106
+ "RouteActionResponseError",
107
+ "default",
108
+ "tanstackRouterPlugin",
109
+ "useFetcher",
110
+ "useMatch"
111
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
112
+ Object.defineProperty(exports, '__esModule', {
113
+ value: true
114
+ });