@bleedingdev/modern-js-renderer-octane 0.0.0-stage → 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 (138) 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 +216 -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
  138. package/README.md +0 -3
@@ -0,0 +1,127 @@
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
+ createNativeServerEntry: ()=>createNativeServerEntry,
32
+ withOctaneDocumentFields: ()=>withOctaneDocumentFields
33
+ });
34
+ const data_namespaceObject = require("@modern-js/renderer-core/data");
35
+ const entry_server_namespaceObject = require("@modern-js/renderer-core/entry-server");
36
+ const router_namespaceObject = require("@modern-js/renderer-core/router");
37
+ const external_entry_application_js_namespaceObject = require("./entry-application.js");
38
+ const external_manifest_js_namespaceObject = require("./manifest.js");
39
+ const external_router_server_js_namespaceObject = require("./router-server.js");
40
+ const external_server_js_namespaceObject = require("./server.js");
41
+ const OCTANE_DOCUMENT_FIELDS = new Set([
42
+ 'content-language',
43
+ 'content-location',
44
+ 'content-disposition'
45
+ ]);
46
+ function withOctaneDocumentFields(policy, responseHeaders) {
47
+ const fields = (0, data_namespaceObject.collectDataHeaders)(responseHeaders).filter(([name])=>OCTANE_DOCUMENT_FIELDS.has(name.toLowerCase()));
48
+ return fields.length ? {
49
+ ...policy,
50
+ headers: [
51
+ ...policy.headers,
52
+ ...fields
53
+ ]
54
+ } : policy;
55
+ }
56
+ const LocalizedRouterServer = (0, external_entry_application_js_namespaceObject.localizedRouterRoot)(external_router_server_js_namespaceObject.OctaneRouterServer);
57
+ function createNativeServerEntry(options) {
58
+ return (0, entry_server_namespaceObject.createNativeServerEntry)(options, {
59
+ document: (document, nativeManifest, identity)=>({
60
+ ...document,
61
+ nativeHydrationBuildId: (0, external_manifest_js_namespaceObject.validateOctaneModuleManifest)(nativeManifest, identity).nativeHydrationBuildId
62
+ }),
63
+ run: (_session, callback)=>callback(),
64
+ respond: (_session, response)=>response,
65
+ createRouter: (application, routerOptions)=>(0, router_namespaceObject.createNativeRouter)(application, routerOptions, external_entry_application_js_namespaceObject.octaneRouterFactory),
66
+ renderCSR: ({ session }, document)=>(0, external_server_js_namespaceObject.renderOctaneCSRDocument)({
67
+ session,
68
+ document
69
+ }),
70
+ renderComponent: ({ session }, component, document, i18n)=>(0, external_server_js_namespaceObject.renderOctaneApplication)({
71
+ session,
72
+ App: (0, external_entry_application_js_namespaceObject.componentView)(component, i18n),
73
+ document,
74
+ federation: options.federation
75
+ }),
76
+ async renderRoutes ({ request, context: { session }, router, outcomes, document, forbiddenValues, i18n }) {
77
+ const response = await (0, external_router_server_js_namespaceObject.createOctaneRequestHandler)({
78
+ request,
79
+ session,
80
+ createRouter: ()=>router,
81
+ serialization: {
82
+ forbiddenValues
83
+ }
84
+ })(async ({ router, responseHeaders })=>{
85
+ const metadata = (0, data_namespaceObject.mergeDataResponseMetadata)(outcomes, {
86
+ status: router.state.statusCode ?? 200
87
+ });
88
+ const policy = (0, data_namespaceObject.dataMetadataToDocumentPolicy)({
89
+ ...metadata,
90
+ headers: (0, data_namespaceObject.mergeHeaderFields)((0, data_namespaceObject.collectDataHeaders)(responseHeaders), metadata.headers)
91
+ });
92
+ session.resolveResponse(withOctaneDocumentFields(policy, responseHeaders));
93
+ const rendered = await (0, external_server_js_namespaceObject.renderOctaneApplication)({
94
+ session,
95
+ ...i18n ? {
96
+ App: LocalizedRouterServer,
97
+ props: {
98
+ router,
99
+ i18n
100
+ }
101
+ } : {
102
+ App: external_router_server_js_namespaceObject.OctaneRouterServer,
103
+ props: {
104
+ router
105
+ }
106
+ },
107
+ document,
108
+ federation: options.federation,
109
+ injection: (0, external_router_server_js_namespaceObject.createOctaneRouterInjection)(router, session)
110
+ });
111
+ return (0, external_router_server_js_namespaceObject.createSsrStreamResponse)(router, rendered);
112
+ });
113
+ return session.committedPolicy ? response : (0, data_namespaceObject.mergeDataResponseIntoResponse)(response, (0, data_namespaceObject.mergeDataResponseMetadata)(outcomes, {
114
+ status: response.status
115
+ }));
116
+ }
117
+ });
118
+ }
119
+ exports.createNativeServerEntry = __webpack_exports__.createNativeServerEntry;
120
+ exports.withOctaneDocumentFields = __webpack_exports__.withOctaneDocumentFields;
121
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
122
+ "createNativeServerEntry",
123
+ "withOctaneDocumentFields"
124
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
125
+ Object.defineProperty(exports, '__esModule', {
126
+ value: true
127
+ });
@@ -0,0 +1,72 @@
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
+ FederationApplication: ()=>FederationApplication,
32
+ FederationContext: ()=>FederationContext,
33
+ FederationRoot: ()=>FederationRoot,
34
+ createFederationScope: ()=>createFederationScope
35
+ });
36
+ const federation_namespaceObject = require("@modern-js/renderer-core/federation");
37
+ const external_octane_namespaceObject = require("octane");
38
+ const FederationContext = (0, external_octane_namespaceObject.createContext)(null);
39
+ function createFederationScope(binding, server, nonce) {
40
+ return {
41
+ instance: (0, federation_namespaceObject.getFederationHost)(binding),
42
+ server,
43
+ ...void 0 === nonce ? {} : {
44
+ nonce
45
+ }
46
+ };
47
+ }
48
+ function FederationRoot(props) {
49
+ return (0, external_octane_namespaceObject.createElement)(FederationContext, {
50
+ value: props.scope,
51
+ children: props.children
52
+ });
53
+ }
54
+ function FederationApplication(props) {
55
+ return (0, external_octane_namespaceObject.createElement)(FederationRoot, {
56
+ scope: props.scope,
57
+ children: (0, external_octane_namespaceObject.createElement)(props.application.default, props.application.props)
58
+ });
59
+ }
60
+ exports.FederationApplication = __webpack_exports__.FederationApplication;
61
+ exports.FederationContext = __webpack_exports__.FederationContext;
62
+ exports.FederationRoot = __webpack_exports__.FederationRoot;
63
+ exports.createFederationScope = __webpack_exports__.createFederationScope;
64
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
65
+ "FederationApplication",
66
+ "FederationContext",
67
+ "FederationRoot",
68
+ "createFederationScope"
69
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
70
+ Object.defineProperty(exports, '__esModule', {
71
+ value: true
72
+ });
@@ -0,0 +1,103 @@
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
+ federatedComponent: ()=>federatedComponent
32
+ });
33
+ const federation_namespaceObject = require("@modern-js/renderer-core/federation");
34
+ const external_octane_namespaceObject = require("octane");
35
+ const external_federation_context_js_namespaceObject = require("./federation-context.js");
36
+ function withTimeout(promise, timeout, label) {
37
+ if (void 0 === timeout) return promise;
38
+ return new Promise((resolve, reject)=>{
39
+ const timer = setTimeout(()=>reject(new Error(`Remote module ${label} did not load within ${timeout}ms`)), timeout);
40
+ timer.unref?.();
41
+ promise.then((value)=>{
42
+ clearTimeout(timer);
43
+ resolve(value);
44
+ }, (error)=>{
45
+ clearTimeout(timer);
46
+ reject(error);
47
+ });
48
+ });
49
+ }
50
+ function federatedComponent(remote, options = {}) {
51
+ if ('string' == typeof remote ? !/^[^/]+\/.+/u.test(remote) : 'function' != typeof remote) throw new TypeError("federatedComponent requires a remote id such as 'remote/Widget' or a loader");
52
+ if (void 0 !== options.timeout && (!Number.isFinite(options.timeout) || options.timeout <= 0)) throw new TypeError('federatedComponent timeout must be a positive number of milliseconds');
53
+ const id = 'string' == typeof remote ? remote : void 0;
54
+ const standalone = {
55
+ instance: void 0,
56
+ server: "u" < typeof document
57
+ };
58
+ const components = new WeakMap();
59
+ return (props)=>{
60
+ const context = (0, external_octane_namespaceObject.useContext)(external_federation_context_js_namespaceObject.FederationContext) ?? standalone;
61
+ let Remote = components.get(context);
62
+ if (!Remote) {
63
+ Remote = (0, external_octane_namespaceObject.lazy)(async ()=>{
64
+ try {
65
+ if (context.server && !id) throw new Error('A federatedComponent loader renders in the browser only; use a remote id to server-render it');
66
+ const module = await withTimeout(Promise.resolve().then(()=>id ? (0, federation_namespaceObject.loadFederatedModule)(context.instance, id) : remote()), options.timeout ?? (context.server ? 3000 : void 0), id ?? 'loader');
67
+ if ('function' != typeof module?.default) throw new TypeError('A federated Octane module must default-export a native component');
68
+ const assets = id && context.instance ? (0, federation_namespaceObject.remoteBrowserAssets)(context.instance, id) : void 0;
69
+ if (context.server && !assets) throw new Error(`Cannot server-render ${id}: the host has no browser assets for this remote`);
70
+ const component = module.default;
71
+ const Loaded = (props)=>{
72
+ for (const href of assets?.css ?? [])(0, external_octane_namespaceObject.preinit)(href, {
73
+ as: 'style',
74
+ precedence: 'federated',
75
+ ...void 0 === context.nonce ? {} : {
76
+ nonce: context.nonce
77
+ }
78
+ });
79
+ return (0, external_octane_namespaceObject.createElement)(component, props);
80
+ };
81
+ return {
82
+ default: Loaded
83
+ };
84
+ } catch (error) {
85
+ if (!context.server) components.delete(context);
86
+ throw error;
87
+ }
88
+ });
89
+ components.set(context, Remote);
90
+ }
91
+ return (0, external_octane_namespaceObject.createElement)(external_octane_namespaceObject.Suspense, {
92
+ fallback: options.fallback,
93
+ children: (0, external_octane_namespaceObject.createElement)(Remote, props)
94
+ });
95
+ };
96
+ }
97
+ exports.federatedComponent = __webpack_exports__.federatedComponent;
98
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
99
+ "federatedComponent"
100
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
101
+ Object.defineProperty(exports, '__esModule', {
102
+ value: true
103
+ });
@@ -0,0 +1,67 @@
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
+ I18nProvider: ()=>I18nProvider
32
+ });
33
+ const external_octane_namespaceObject = require("octane");
34
+ const external_context_js_namespaceObject = require("./context.js");
35
+ const languageStateSlot = Symbol((0, external_octane_namespaceObject.hookSlots)(1));
36
+ const languageSubscriptionSlot = Symbol((0, external_octane_namespaceObject.hookSlots)(1));
37
+ function I18nProvider(props) {
38
+ const [language, setLanguage] = (0, external_octane_namespaceObject.useState)(()=>props.instance.language, languageStateSlot);
39
+ (0, external_octane_namespaceObject.useEffect)(()=>{
40
+ const instance = props.instance;
41
+ setLanguage(instance.language);
42
+ const handleLanguageChanged = (lng)=>setLanguage(lng);
43
+ instance.on?.('languageChanged', handleLanguageChanged);
44
+ return ()=>{
45
+ instance.off?.('languageChanged', handleLanguageChanged);
46
+ };
47
+ }, [
48
+ props.instance
49
+ ], languageSubscriptionSlot);
50
+ const value = {
51
+ instance: props.instance,
52
+ languages: props.languages,
53
+ localisedUrls: props.localisedUrls,
54
+ language
55
+ };
56
+ return (0, external_octane_namespaceObject.createElement)(external_context_js_namespaceObject.I18nContext, {
57
+ value,
58
+ children: props.children
59
+ });
60
+ }
61
+ exports.I18nProvider = __webpack_exports__.I18nProvider;
62
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
63
+ "I18nProvider"
64
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
65
+ Object.defineProperty(exports, '__esModule', {
66
+ value: true
67
+ });
@@ -0,0 +1,89 @@
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
+ LocalizedLink: ()=>LocalizedLink,
32
+ useIsLocalizedActive: ()=>useIsLocalizedActive
33
+ });
34
+ const paths_namespaceObject = require("@modern-js/i18n-runtime-extensions/paths");
35
+ const external_octane_namespaceObject = require("octane");
36
+ const external_router_js_namespaceObject = require("../router.js");
37
+ const external_context_js_namespaceObject = require("./context.js");
38
+ const locationSlot = Symbol((0, external_octane_namespaceObject.hookSlots)(1));
39
+ function LocalizedLink(props) {
40
+ const context = (0, external_octane_namespaceObject.useContext)(external_context_js_namespaceObject.I18nContext);
41
+ if (!context) throw new Error('[renderer-octane] LocalizedLink was used outside of an I18nProvider.');
42
+ const router = (0, external_router_js_namespaceObject.useRouter)();
43
+ const language = void 0 === props.language ? context.language : (0, paths_namespaceObject.configuredLanguage)(props.language, context.languages);
44
+ const href = (0, paths_namespaceObject.localizePath)(props.to, language, {
45
+ languages: [
46
+ ...context.languages
47
+ ],
48
+ localisedUrls: context.localisedUrls
49
+ });
50
+ const crossLanguage = language !== context.language;
51
+ const rewrite = Boolean(router.options.rewrite);
52
+ return (0, external_octane_namespaceObject.createElement)(external_router_js_namespaceObject.Link, {
53
+ to: rewrite ? props.to : href,
54
+ ...rewrite && crossLanguage ? {
55
+ mask: {
56
+ to: href
57
+ }
58
+ } : {},
59
+ ...crossLanguage ? {
60
+ hreflang: language
61
+ } : {},
62
+ class: props.class,
63
+ activeProps: props.activeProps,
64
+ inactiveProps: props.inactiveProps,
65
+ activeOptions: props.activeOptions,
66
+ replace: props.replace,
67
+ preload: props.preload
68
+ }, props.children);
69
+ }
70
+ function useIsLocalizedActive(canonicalTarget) {
71
+ const context = (0, external_octane_namespaceObject.useContext)(external_context_js_namespaceObject.I18nContext);
72
+ if (!context) throw new Error('[renderer-octane] useIsLocalizedActive was used outside of an I18nProvider.');
73
+ const location = (0, external_router_js_namespaceObject.useLocation)(void 0, locationSlot);
74
+ return (0, paths_namespaceObject.canonicalPath)(location.pathname, {
75
+ languages: [
76
+ ...context.languages
77
+ ],
78
+ localisedUrls: context.localisedUrls
79
+ }) === canonicalTarget;
80
+ }
81
+ exports.LocalizedLink = __webpack_exports__.LocalizedLink;
82
+ exports.useIsLocalizedActive = __webpack_exports__.useIsLocalizedActive;
83
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
84
+ "LocalizedLink",
85
+ "useIsLocalizedActive"
86
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
87
+ Object.defineProperty(exports, '__esModule', {
88
+ value: true
89
+ });
@@ -0,0 +1,41 @@
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
+ I18nContext: ()=>I18nContext
32
+ });
33
+ const external_octane_namespaceObject = require("octane");
34
+ const I18nContext = (0, external_octane_namespaceObject.createContext)(null);
35
+ exports.I18nContext = __webpack_exports__.I18nContext;
36
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
37
+ "I18nContext"
38
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
39
+ Object.defineProperty(exports, '__esModule', {
40
+ value: true
41
+ });
@@ -0,0 +1,86 @@
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
+ I18N_SSR_HANDOFF_ELEMENT_ID: ()=>ssrLanguageHandoff_namespaceObject.I18N_SSR_HANDOFF_ELEMENT_ID,
32
+ I18nContext: ()=>external_context_js_namespaceObject.I18nContext,
33
+ I18nProvider: ()=>external_I18nProvider_js_namespaceObject.I18nProvider,
34
+ LocalizedLink: ()=>external_LocalizedLink_js_namespaceObject.LocalizedLink,
35
+ createI18nSsrHandoffInlineData: ()=>ssrLanguageHandoff_namespaceObject.createI18nSsrHandoffInlineData,
36
+ createI18nUrlRewrite: ()=>urlRewrite_namespaceObject.createI18nUrlRewrite,
37
+ createRequestLanguageRedirect: ()=>request_language_namespaceObject.createRequestLanguageRedirect,
38
+ detectRequestLanguage: ()=>request_language_namespaceObject.detectRequestLanguage,
39
+ languageFromPathname: ()=>request_language_namespaceObject.languageFromPathname,
40
+ readI18nSsrHandoff: ()=>ssrLanguageHandoff_namespaceObject.readI18nSsrHandoff,
41
+ resolveRequestLanguage: ()=>request_language_namespaceObject.resolveRequestLanguage,
42
+ useI18n: ()=>external_useI18n_js_namespaceObject.useI18n,
43
+ useIsLocalizedActive: ()=>external_LocalizedLink_js_namespaceObject.useIsLocalizedActive,
44
+ useLatestLanguageSync: ()=>external_languageSync_js_namespaceObject.useLatestLanguageSync
45
+ });
46
+ const request_language_namespaceObject = require("@modern-js/i18n-runtime-extensions/request-language");
47
+ const ssrLanguageHandoff_namespaceObject = require("@modern-js/i18n-runtime-extensions/ssrLanguageHandoff");
48
+ const urlRewrite_namespaceObject = require("@modern-js/i18n-runtime-extensions/urlRewrite");
49
+ const external_context_js_namespaceObject = require("./context.js");
50
+ const external_I18nProvider_js_namespaceObject = require("./I18nProvider.js");
51
+ const external_LocalizedLink_js_namespaceObject = require("./LocalizedLink.js");
52
+ const external_languageSync_js_namespaceObject = require("./languageSync.js");
53
+ const external_useI18n_js_namespaceObject = require("./useI18n.js");
54
+ exports.I18N_SSR_HANDOFF_ELEMENT_ID = __webpack_exports__.I18N_SSR_HANDOFF_ELEMENT_ID;
55
+ exports.I18nContext = __webpack_exports__.I18nContext;
56
+ exports.I18nProvider = __webpack_exports__.I18nProvider;
57
+ exports.LocalizedLink = __webpack_exports__.LocalizedLink;
58
+ exports.createI18nSsrHandoffInlineData = __webpack_exports__.createI18nSsrHandoffInlineData;
59
+ exports.createI18nUrlRewrite = __webpack_exports__.createI18nUrlRewrite;
60
+ exports.createRequestLanguageRedirect = __webpack_exports__.createRequestLanguageRedirect;
61
+ exports.detectRequestLanguage = __webpack_exports__.detectRequestLanguage;
62
+ exports.languageFromPathname = __webpack_exports__.languageFromPathname;
63
+ exports.readI18nSsrHandoff = __webpack_exports__.readI18nSsrHandoff;
64
+ exports.resolveRequestLanguage = __webpack_exports__.resolveRequestLanguage;
65
+ exports.useI18n = __webpack_exports__.useI18n;
66
+ exports.useIsLocalizedActive = __webpack_exports__.useIsLocalizedActive;
67
+ exports.useLatestLanguageSync = __webpack_exports__.useLatestLanguageSync;
68
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
69
+ "I18N_SSR_HANDOFF_ELEMENT_ID",
70
+ "I18nContext",
71
+ "I18nProvider",
72
+ "LocalizedLink",
73
+ "createI18nSsrHandoffInlineData",
74
+ "createI18nUrlRewrite",
75
+ "createRequestLanguageRedirect",
76
+ "detectRequestLanguage",
77
+ "languageFromPathname",
78
+ "readI18nSsrHandoff",
79
+ "resolveRequestLanguage",
80
+ "useI18n",
81
+ "useIsLocalizedActive",
82
+ "useLatestLanguageSync"
83
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
84
+ Object.defineProperty(exports, '__esModule', {
85
+ value: true
86
+ });