mage-obsidian 1.1.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -0
  3. package/dist/cli/buildThemes.d.ts +3 -0
  4. package/dist/cli/buildThemes.d.ts.map +1 -0
  5. package/dist/cli/buildThemes.js +219 -0
  6. package/dist/cli/buildThemes.js.map +1 -0
  7. package/dist/config/default.d.ts +16 -0
  8. package/dist/config/default.d.ts.map +1 -0
  9. package/dist/config/default.js +22 -0
  10. package/dist/config/default.js.map +1 -0
  11. package/dist/config/eslint.js +60 -0
  12. package/dist/core/configResolver.d.ts +38 -0
  13. package/dist/core/configResolver.d.ts.map +1 -0
  14. package/dist/core/configResolver.js +102 -0
  15. package/dist/core/configResolver.js.map +1 -0
  16. package/dist/core/contractValidator.d.ts +16 -0
  17. package/dist/core/contractValidator.d.ts.map +1 -0
  18. package/dist/core/contractValidator.js +49 -0
  19. package/dist/core/contractValidator.js.map +1 -0
  20. package/dist/core/cssResolver.d.ts +5 -0
  21. package/dist/core/cssResolver.d.ts.map +1 -0
  22. package/dist/core/cssResolver.js +126 -0
  23. package/dist/core/cssResolver.js.map +1 -0
  24. package/dist/core/generateInterceptors.d.ts +10 -0
  25. package/dist/core/generateInterceptors.d.ts.map +1 -0
  26. package/{src/service → dist/core}/generateInterceptors.js +72 -93
  27. package/dist/core/generateInterceptors.js.map +1 -0
  28. package/dist/core/generateJsconfig.d.ts +45 -0
  29. package/dist/core/generateJsconfig.d.ts.map +1 -0
  30. package/dist/core/generateJsconfig.js +145 -0
  31. package/dist/core/generateJsconfig.js.map +1 -0
  32. package/dist/core/moduleResolver.d.ts +22 -0
  33. package/dist/core/moduleResolver.d.ts.map +1 -0
  34. package/dist/core/moduleResolver.js +177 -0
  35. package/dist/core/moduleResolver.js.map +1 -0
  36. package/dist/core/preCompileFiles.d.ts +6 -0
  37. package/dist/core/preCompileFiles.d.ts.map +1 -0
  38. package/dist/core/preCompileFiles.js +79 -0
  39. package/dist/core/preCompileFiles.js.map +1 -0
  40. package/dist/core/preCompileMagentoFiles.d.ts +3 -0
  41. package/dist/core/preCompileMagentoFiles.d.ts.map +1 -0
  42. package/dist/core/preCompileMagentoFiles.js +28 -0
  43. package/dist/core/preCompileMagentoFiles.js.map +1 -0
  44. package/dist/core/themeResolverSync.d.ts +6 -0
  45. package/dist/core/themeResolverSync.d.ts.map +1 -0
  46. package/dist/core/themeResolverSync.js +65 -0
  47. package/dist/core/themeResolverSync.js.map +1 -0
  48. package/dist/runtime/i18nCore.d.ts +55 -0
  49. package/dist/runtime/i18nCore.d.ts.map +1 -0
  50. package/dist/runtime/i18nCore.js +77 -0
  51. package/dist/runtime/i18nCore.js.map +1 -0
  52. package/dist/runtime/interceptorManager.d.ts +45 -0
  53. package/dist/runtime/interceptorManager.d.ts.map +1 -0
  54. package/{src/service → dist/runtime}/interceptorManager.js +43 -52
  55. package/dist/runtime/interceptorManager.js.map +1 -0
  56. package/dist/runtime/islands.d.ts +45 -0
  57. package/dist/runtime/islands.d.ts.map +1 -0
  58. package/dist/runtime/islands.js +59 -0
  59. package/dist/runtime/islands.js.map +1 -0
  60. package/dist/runtime/sectionStoreCore.d.ts +108 -0
  61. package/dist/runtime/sectionStoreCore.d.ts.map +1 -0
  62. package/dist/runtime/sectionStoreCore.js +189 -0
  63. package/dist/runtime/sectionStoreCore.js.map +1 -0
  64. package/dist/utils/findComponents.d.ts +17 -0
  65. package/dist/utils/findComponents.d.ts.map +1 -0
  66. package/dist/utils/findComponents.js +66 -0
  67. package/dist/utils/findComponents.js.map +1 -0
  68. package/dist/utils/runWithConcurrency.d.ts +10 -0
  69. package/dist/utils/runWithConcurrency.d.ts.map +1 -0
  70. package/dist/utils/runWithConcurrency.js +29 -0
  71. package/dist/utils/runWithConcurrency.js.map +1 -0
  72. package/dist/vite/defaultNodeResolver.d.ts +9 -0
  73. package/dist/vite/defaultNodeResolver.d.ts.map +1 -0
  74. package/dist/vite/defaultNodeResolver.js +19 -0
  75. package/dist/vite/defaultNodeResolver.js.map +1 -0
  76. package/dist/vite/inheritAssetsModuleResolver.d.ts +8 -0
  77. package/dist/vite/inheritAssetsModuleResolver.d.ts.map +1 -0
  78. package/{src/service → dist/vite}/inheritAssetsModuleResolver.js +10 -20
  79. package/dist/vite/inheritAssetsModuleResolver.js.map +1 -0
  80. package/dist/vite/inheritModuleResolver.d.ts +8 -0
  81. package/dist/vite/inheritModuleResolver.d.ts.map +1 -0
  82. package/{src/service → dist/vite}/inheritModuleResolver.js +8 -17
  83. package/dist/vite/inheritModuleResolver.js.map +1 -0
  84. package/dist/vite/interceptorsPlugin.d.ts +10 -0
  85. package/dist/vite/interceptorsPlugin.d.ts.map +1 -0
  86. package/{src/service → dist/vite}/interceptorsPlugin.js +17 -28
  87. package/dist/vite/interceptorsPlugin.js.map +1 -0
  88. package/dist/vite/magentoHrmRewrite.d.ts +6 -0
  89. package/dist/vite/magentoHrmRewrite.d.ts.map +1 -0
  90. package/dist/vite/magentoHrmRewrite.js +45 -0
  91. package/dist/vite/magentoHrmRewrite.js.map +1 -0
  92. package/dist/vite/sharedPlugins.d.ts +35 -0
  93. package/dist/vite/sharedPlugins.d.ts.map +1 -0
  94. package/dist/vite/sharedPlugins.js +52 -0
  95. package/dist/vite/sharedPlugins.js.map +1 -0
  96. package/dist/vite/themeSourceWatcher.d.ts +16 -0
  97. package/dist/vite/themeSourceWatcher.d.ts.map +1 -0
  98. package/dist/vite/themeSourceWatcher.js +91 -0
  99. package/dist/vite/themeSourceWatcher.js.map +1 -0
  100. package/dist/vite/unresolvedModuleGuard.d.ts +17 -0
  101. package/dist/vite/unresolvedModuleGuard.d.ts.map +1 -0
  102. package/dist/vite/unresolvedModuleGuard.js +87 -0
  103. package/dist/vite/unresolvedModuleGuard.js.map +1 -0
  104. package/package.json +89 -13
  105. package/.github/workflows/publish.yml +0 -35
  106. package/jest.config.js +0 -5
  107. package/src/__tests__/__mocks__/configResolver.js +0 -35
  108. package/src/__tests__/fixtures/interceptors/emptyTarget.js +0 -2
  109. package/src/__tests__/fixtures/interceptors/pluginForNonFunction.js +0 -7
  110. package/src/__tests__/fixtures/interceptors/pluginModule.js +0 -13
  111. package/src/__tests__/fixtures/interceptors/targetModule.js +0 -12
  112. package/src/__tests__/fixtures/interceptors/targetNonFunction.js +0 -7
  113. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameA/view/frontend/web/components/ComponentA.vue +0 -0
  114. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameA/view/frontend/web/components/ComponentB.vue +0 -0
  115. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameA/view/frontend/web/css/module.extend.css +0 -0
  116. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameA/view/frontend/web/js/main.js +0 -0
  117. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameA/view/frontend/web/main.js +0 -0
  118. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameA/view/frontend/web/module.config.js +0 -9
  119. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameB/view/frontend/web/components/ComponentA.vue +0 -0
  120. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameB/view/frontend/web/components/ComponentB.vue +0 -0
  121. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameB/view/frontend/web/css/module.extend.css +0 -2
  122. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameB/view/frontend/web/js/main.js +0 -0
  123. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameB/view/frontend/web/module.config.js +0 -7
  124. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameC/view/frontend/web/components/ComponentA.vue +0 -0
  125. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameC/view/frontend/web/components/ComponentB.vue +0 -0
  126. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameC/view/frontend/web/css/module.extend.css +0 -2
  127. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameC/view/frontend/web/js/main.js +0 -0
  128. package/src/__tests__/magento_scenarios/app/code/Vendor/ModuleNameC/view/frontend/web/module.config.js +0 -7
  129. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameA/web/components/ComponentA.vue +0 -0
  130. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameA/web/components/ComponentB.vue +0 -0
  131. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameA/web/css/module.extend.css +0 -0
  132. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameA/web/js/main.js +0 -0
  133. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameA/web/module.config.js +0 -2
  134. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameB/web/components/ComponentA.vue +0 -0
  135. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameB/web/components/ComponentB.vue +0 -0
  136. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameB/web/css/module.extend.css +0 -0
  137. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameB/web/js/main.js +0 -0
  138. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameB/web/module.config.js +0 -2
  139. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameNoConfig/web/components/ComponentA.vue +0 -0
  140. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameNoConfig/web/components/ComponentB.vue +0 -0
  141. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameNoConfig/web/css/module.extend.css +0 -0
  142. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameNoConfig/web/js/main.js +0 -0
  143. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/Vendor_ModuleNameNoConfig/web/module.config.js +0 -2
  144. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/web/components/ComponentA.vue +0 -0
  145. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/web/components/ComponentB.vue +0 -0
  146. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/web/css/theme.source.css +0 -6
  147. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/web/js/main.js +0 -0
  148. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-a/web/theme.config.js +0 -5
  149. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-b/web/css/theme.source.css +0 -6
  150. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-b/web/theme.config.js +0 -5
  151. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-c/Vendor_ModuleNameB/web/components/ComponentA.vue +0 -0
  152. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-c/Vendor_ModuleNameB/web/components/ComponentB.vue +0 -0
  153. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-c/Vendor_ModuleNameB/web/css/module.extend.css +0 -0
  154. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-c/Vendor_ModuleNameB/web/js/main.js +0 -0
  155. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-c/Vendor_ModuleNameB/web/module.config.js +0 -2
  156. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-c/web/css/theme.source.css +0 -6
  157. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-c/web/theme.config.js +0 -2
  158. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-d/web/css/theme.source.css +0 -6
  159. package/src/__tests__/magento_scenarios/app/design/frontend/Vendor/theme-d/web/theme.config.js +0 -3
  160. package/src/__tests__/magento_scenarios/app/etc/mage_obsidian_frontend_modules_a.json +0 -53
  161. package/src/__tests__/magento_scenarios/app/etc/mage_obsidian_frontend_modules_b.json +0 -50
  162. package/src/__tests__/service/generateInterceptors.test.js +0 -196
  163. package/src/__tests__/service/inheritModuleResolver.test.js +0 -61
  164. package/src/__tests__/service/interceptorManager_magento_behavior.test.js +0 -137
  165. package/src/__tests__/service/moduleResolver.test.js +0 -194
  166. package/src/__tests__/service/themeResolverSync.test.js +0 -97
  167. package/src/__tests__/vite-plugins/interceptorsPlugin.test.js +0 -121
  168. package/src/config/default.js +0 -27
  169. package/src/scripts/buildThemes.js +0 -132
  170. package/src/service/configResolver.js +0 -63
  171. package/src/service/cssResolver.js +0 -73
  172. package/src/service/defaultNodeResolver.js +0 -16
  173. package/src/service/magentoHrmRewrite.js +0 -43
  174. package/src/service/moduleResolver.js +0 -178
  175. package/src/service/preCompileFiles.js +0 -37
  176. package/src/service/preCompileMagentoFiles.js +0 -16
  177. package/src/service/setupGlobals.js +0 -19
  178. package/src/service/themeResolverSync.js +0 -67
  179. package/src/utils/findComponents.js +0 -70
  180. /package/{src → dist}/templates/base_main_js_file.js +0 -0
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Section store core — pure helpers for mirroring a set of server-pushed,
3
+ * versioned "sections" into a reactive store backed by localStorage.
4
+ *
5
+ * This is the GENERIC mechanism, deliberately domain-agnostic: it knows how to
6
+ * parse/merge/select sections, decide staleness, read a version cookie and
7
+ * decide when to hydrate — but nothing about WHICH endpoint, cookie or storage
8
+ * key a given integration uses. A binding (e.g. the Magento customer-data
9
+ * adapter) supplies those and wraps these primitives with Vue/Pinia reactivity.
10
+ *
11
+ * Kept free of Vue, Pinia and the DOM so the parsing/merge/staleness rules are
12
+ * unit-testable in isolation.
13
+ */
14
+ /**
15
+ * Parse the raw section-storage JSON into a map of section objects. Tolerates
16
+ * missing/corrupt input and drops non-object section values so the caller
17
+ * always gets a clean `{ [section]: object }` map.
18
+ */
19
+ export function parseSectionStorage(raw) {
20
+ if (typeof raw !== "string" || raw === "") {
21
+ return {};
22
+ }
23
+ let parsed;
24
+ try {
25
+ parsed = JSON.parse(raw);
26
+ }
27
+ catch {
28
+ return {};
29
+ }
30
+ return pickObjectEntries(parsed);
31
+ }
32
+ /**
33
+ * Return a single section, or null when it is absent or not an object.
34
+ */
35
+ export function selectSection(sections, name) {
36
+ if (!sections || typeof sections !== "object") {
37
+ return null;
38
+ }
39
+ const value = sections[name];
40
+ return value && typeof value === "object" && !Array.isArray(value)
41
+ ? value
42
+ : null;
43
+ }
44
+ /**
45
+ * Overlay freshly loaded sections onto the current map (a section-load response
46
+ * merges per section; non-object values are ignored).
47
+ */
48
+ export function mergeSections(current, incoming) {
49
+ return { ...pickObjectEntries(current), ...pickObjectEntries(incoming) };
50
+ }
51
+ /**
52
+ * Whether a section should be (re)fetched. A missing section is stale; a
53
+ * section without a positive `data_id` is a client-side section that never
54
+ * expires; with no positive lifetime nothing expires either. Otherwise it is
55
+ * stale once `data_id + lifetime` has passed.
56
+ */
57
+ export function isSectionStale(section, lifetimeSeconds, nowSeconds) {
58
+ if (!section || typeof section !== "object") {
59
+ return true;
60
+ }
61
+ const dataId = Number(section.data_id);
62
+ if (!Number.isFinite(dataId) || dataId <= 0) {
63
+ return false;
64
+ }
65
+ if (!Number.isFinite(lifetimeSeconds) || lifetimeSeconds <= 0) {
66
+ return false;
67
+ }
68
+ return dataId + lifetimeSeconds <= nowSeconds;
69
+ }
70
+ /**
71
+ * Build the section-load URL a binding uses to (re)load sections. `endpoint` is
72
+ * supplied by the binding (this core is endpoint-agnostic). An empty name list
73
+ * requests ALL sections by omitting the `sections` param — Magento's protocol
74
+ * returns every section then and rejects a literal `sections=*` with 400.
75
+ */
76
+ export function buildSectionLoadUrl(endpoint, sectionNames, options = {}) {
77
+ const { baseUrl = "/", forceNewTimestamp = false } = options;
78
+ const names = Array.isArray(sectionNames) ? sectionNames.filter(Boolean) : [];
79
+ const base = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
80
+ const path = endpoint.startsWith("/") ? endpoint.slice(1) : endpoint;
81
+ const params = [];
82
+ if (names.length) {
83
+ params.push(`sections=${names.join(",")}`);
84
+ }
85
+ params.push(`force_new_section_timestamp=${forceNewTimestamp ? "true" : "false"}`);
86
+ return `${base}${path}?${params.join("&")}`;
87
+ }
88
+ /**
89
+ * Read a single cookie value from a `document.cookie` string. Returns "" when
90
+ * the cookie is absent. Kept pure (the binding passes `document.cookie` in) so
91
+ * the version lookup is testable without a DOM.
92
+ */
93
+ export function readCookie(cookieString, name) {
94
+ if (typeof cookieString !== "string" || cookieString === "" || !name) {
95
+ return "";
96
+ }
97
+ for (const pair of cookieString.split(";")) {
98
+ const index = pair.indexOf("=");
99
+ if (index === -1) {
100
+ continue;
101
+ }
102
+ if (pair.slice(0, index).trim() === name) {
103
+ return decodeURIComponent(pair.slice(index + 1).trim());
104
+ }
105
+ }
106
+ return "";
107
+ }
108
+ /**
109
+ * Whether the store must hydrate sections from the server on init.
110
+ *
111
+ * A binding bumps a version (e.g. Magento's `private_content_version` cookie)
112
+ * whenever the server's pushed content changes. When nothing is cached yet, or
113
+ * the current version has moved past the last synced version, the cached
114
+ * sections are stale.
115
+ */
116
+ export function needsHydration(sections, syncedVersion, currentVersion) {
117
+ if (!sections || typeof sections !== "object" || Object.keys(sections).length === 0) {
118
+ return true;
119
+ }
120
+ return currentVersion !== "" && currentVersion !== syncedVersion;
121
+ }
122
+ /**
123
+ * True when the session marker cookie is gone. Magento's login/logout controllers
124
+ * delete it server-side, so its absence means cached sections are stale (the
125
+ * version cookie doesn't move on logout). False when no marker is configured.
126
+ */
127
+ export function sessionInvalidated(cookieString, sessionCookieName) {
128
+ if (!sessionCookieName) {
129
+ return false;
130
+ }
131
+ return readCookie(cookieString, sessionCookieName) === "";
132
+ }
133
+ /**
134
+ * The expirable sections that have aged out and must be re-fetched, mirroring the
135
+ * lifetime branch of Magento's native `getExpiredSectionNames`: a section listed
136
+ * in `expirableNames` expires once `data_id + lifetimeSeconds <= now`.
137
+ *
138
+ * This is the backstop the version cookie cannot provide: `private_content_version`
139
+ * only moves on POST, so a section whose server data changed through a non-POST
140
+ * path the browser took — most commonly the PHP session/quote expiring while
141
+ * localStorage lives on — is otherwise never re-fetched, leaving a stale snapshot
142
+ * (e.g. a cart badge that outlives its quote). Absent sections are skipped here,
143
+ * exactly like native (they reload via the version/empty-cache path instead).
144
+ */
145
+ export function expiredSectionNames(sections, lifetimeSeconds, expirableNames, nowSeconds) {
146
+ if (!Array.isArray(expirableNames) || expirableNames.length === 0) {
147
+ return [];
148
+ }
149
+ const map = sections && typeof sections === "object" ? sections : {};
150
+ const expired = [];
151
+ for (const name of expirableNames) {
152
+ const section = map[name];
153
+ if (section &&
154
+ typeof section === "object" &&
155
+ isSectionStale(section, lifetimeSeconds, nowSeconds)) {
156
+ expired.push(name);
157
+ }
158
+ }
159
+ return expired;
160
+ }
161
+ /**
162
+ * Read the runtime section config a binding's host page publishes (lifetime +
163
+ * which sections expire by lifetime). Kept pure — the binding passes the scope
164
+ * (e.g. `window`) — so it is testable without a DOM, like `readI18nConfig`.
165
+ */
166
+ export function readSectionRuntimeConfig(scope = typeof window !== "undefined" ? window : undefined) {
167
+ const config = scope && scope.__MAGE_OBSIDIAN_SECTIONS__;
168
+ const lifetime = Number(config && config.lifetime);
169
+ const expirable = config && config.expirable;
170
+ return {
171
+ lifetimeSeconds: Number.isFinite(lifetime) && lifetime > 0 ? lifetime : 0,
172
+ expirableSections: Array.isArray(expirable)
173
+ ? expirable.filter((name) => typeof name === "string")
174
+ : [],
175
+ };
176
+ }
177
+ function pickObjectEntries(value) {
178
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
179
+ return {};
180
+ }
181
+ const result = {};
182
+ for (const [key, entry] of Object.entries(value)) {
183
+ if (entry && typeof entry === "object" && !Array.isArray(entry)) {
184
+ result[key] = entry;
185
+ }
186
+ }
187
+ return result;
188
+ }
189
+ //# sourceMappingURL=sectionStoreCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sectionStoreCore.js","sourceRoot":"","sources":["../../src/runtime/sectionStoreCore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Recursively searches a module's source folders for component files — matched by
3
+ * the extensions each folder declares (`directory.ext`) — and organizes them into
4
+ * an object.
5
+ *
6
+ * @param {string} moduleName - The name of the module to associate the files with.
7
+ * @param moduleDir
8
+ * @param directories
9
+ * @returns {Promise<Object>} - A promise that resolves to an object where:
10
+ * - The keys are unique identifiers for the files, formed by combining
11
+ * subdirectories and file names (e.g., `Vendor_ModuleName/FilePath`).
12
+ * - The values are the full relative paths to the files within the `components` folder.
13
+ * @throws {Error} - Throws an error if duplicate file names (with different extensions) are found.
14
+ */
15
+ declare function getFilesFromFolders(moduleName: any, moduleDir: any, directories: any): Promise<any[]>;
16
+ export default getFilesFromFolders;
17
+ //# sourceMappingURL=findComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findComponents.d.ts","sourceRoot":"","sources":["../../src/utils/findComponents.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,iBAAe,mBAAmB,CAAC,UAAU,KAAA,EAAE,SAAS,KAAA,EAAE,WAAW,KAAA,kBA+DpE;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ /**
4
+ * Recursively searches a module's source folders for component files — matched by
5
+ * the extensions each folder declares (`directory.ext`) — and organizes them into
6
+ * an object.
7
+ *
8
+ * @param {string} moduleName - The name of the module to associate the files with.
9
+ * @param moduleDir
10
+ * @param directories
11
+ * @returns {Promise<Object>} - A promise that resolves to an object where:
12
+ * - The keys are unique identifiers for the files, formed by combining
13
+ * subdirectories and file names (e.g., `Vendor_ModuleName/FilePath`).
14
+ * - The values are the full relative paths to the files within the `components` folder.
15
+ * @throws {Error} - Throws an error if duplicate file names (with different extensions) are found.
16
+ */
17
+ async function getFilesFromFolders(moduleName, moduleDir, directories) {
18
+ const componentsDir = path.resolve(moduleDir);
19
+ // oxlint-disable-next-line only-used-in-recursion
20
+ const getFilesFromFolderWithExt = async (dir, folderToSearch, extArr, baseDir = "") => {
21
+ // console.log(moduleName, dir, folderToSearch, extArr, baseDir = "");
22
+ if (!fs.existsSync(dir))
23
+ return [];
24
+ const entries = await fs.promises.readdir(dir, { withFileTypes: true });
25
+ const keyRegistered = [];
26
+ const files = await Promise.all(entries.map(async (entry) => {
27
+ const fullPath = path.join(dir, entry.name);
28
+ const relativePath = path.join(baseDir, entry.name);
29
+ if (entry.isDirectory()) {
30
+ return await getFilesFromFolderWithExt(fullPath, folderToSearch, extArr, relativePath);
31
+ }
32
+ else if (entry.isFile() &&
33
+ extArr.some((ext) => entry.name.endsWith(`.${ext}`)) &&
34
+ // Skip co-located unit tests/specs so test-only deps
35
+ // (e.g. @vue/test-utils) never leak into the build.
36
+ !/\.(test|spec)\.[jt]sx?$/.test(entry.name)) {
37
+ const fileName = path.parse(entry.name).name;
38
+ let key = baseDir === "" ? fileName : `${baseDir}/${fileName}`;
39
+ key = `${moduleName}/${folderToSearch}/${key}`;
40
+ const filePath = path.join(dir, entry.name);
41
+ if (keyRegistered.includes(key)) {
42
+ throw new Error(`Duplicate file names detected: The file "${filePath}".`);
43
+ }
44
+ keyRegistered.push(key);
45
+ return { [key]: filePath };
46
+ }
47
+ return null;
48
+ }));
49
+ return files.filter(Boolean).flat();
50
+ };
51
+ try {
52
+ let result = [];
53
+ for (const directory of directories) {
54
+ const folderPath = path.resolve(componentsDir, directory.src);
55
+ const filesArray = await getFilesFromFolderWithExt(folderPath, directory.src, directory.ext);
56
+ result.push(...filesArray);
57
+ }
58
+ result = result.reduce((acc, item) => Object.assign(acc, item), {});
59
+ return result;
60
+ }
61
+ catch (err) {
62
+ throw new Error(`Error while processing JavaScript or Vue files in the components folder of module "${moduleName}": ${err.message}`, { cause: err });
63
+ }
64
+ }
65
+ export default getFilesFromFolders;
66
+ //# sourceMappingURL=findComponents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findComponents.js","sourceRoot":"","sources":["../../src/utils/findComponents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW;IACjE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,kDAAkD;IAClD,MAAM,yBAAyB,GAAG,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;QAClF,sEAAsE;QACtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,OAAO,MAAM,yBAAyB,CAClC,QAAQ,EACR,cAAc,EACd,MAAM,EACN,YAAY,CACf,CAAC;YACN,CAAC;iBAAM,IACH,KAAK,CAAC,MAAM,EAAE;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;gBACpD,qDAAqD;gBACrD,oDAAoD;gBACpD,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC7C,CAAC;gBACC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBAC7C,IAAI,GAAG,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/D,GAAG,GAAG,GAAG,UAAU,IAAI,cAAc,IAAI,GAAG,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,IAAI,CAAC,CAAC;gBAC9E,CAAC;gBACD,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CACL,CAAC;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF,IAAI,CAAC;QACD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAC9C,UAAU,EACV,SAAS,CAAC,GAAG,EACb,SAAS,CAAC,GAAG,CAChB,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAEpE,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACX,sFAAsF,UAAU,MAAM,GAAG,CAAC,OAAO,EAAE,EACnH,EAAE,KAAK,EAAE,GAAG,EAAE,CACjB,CAAC;IACN,CAAC;AACL,CAAC;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Run async workers over a list of items with a bounded number running at once.
3
+ *
4
+ * Results are returned in the same order as `items` regardless of completion
5
+ * order. The first rejection aborts the run (no new workers are started) and is
6
+ * propagated, mirroring Promise.all semantics. `limit` defaults to the number of
7
+ * items.
8
+ */
9
+ export default function runWithConcurrency<T, R>(items: T[], worker: (item: T, index: number) => Promise<R>, limit?: number): Promise<R[]>;
10
+ //# sourceMappingURL=runWithConcurrency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runWithConcurrency.d.ts","sourceRoot":"","sources":["../../src/utils/runWithConcurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAA8B,kBAAkB,CAAC,CAAC,EAAE,CAAC,EACjD,KAAK,EAAE,CAAC,EAAE,EACV,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,KAAK,GAAE,MAAqB,GAC7B,OAAO,CAAC,CAAC,EAAE,CAAC,CAsBd"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Run async workers over a list of items with a bounded number running at once.
3
+ *
4
+ * Results are returned in the same order as `items` regardless of completion
5
+ * order. The first rejection aborts the run (no new workers are started) and is
6
+ * propagated, mirroring Promise.all semantics. `limit` defaults to the number of
7
+ * items.
8
+ */
9
+ export default async function runWithConcurrency(items, worker, limit = items.length) {
10
+ if (!Array.isArray(items)) {
11
+ throw new TypeError("runWithConcurrency: items must be an array.");
12
+ }
13
+ if (typeof worker !== "function") {
14
+ throw new TypeError("runWithConcurrency: worker must be a function.");
15
+ }
16
+ const effectiveLimit = Math.max(1, Math.min(limit, items.length || 1));
17
+ const results = Array.from({ length: items.length });
18
+ let nextIndex = 0;
19
+ async function runner() {
20
+ while (nextIndex < items.length) {
21
+ const current = nextIndex++;
22
+ results[current] = await worker(items[current], current);
23
+ }
24
+ }
25
+ const runners = Array.from({ length: Math.min(effectiveLimit, items.length) }, runner);
26
+ await Promise.all(runners);
27
+ return results;
28
+ }
29
+ //# sourceMappingURL=runWithConcurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runWithConcurrency.js","sourceRoot":"","sources":["../../src/utils/runWithConcurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC5C,KAAU,EACV,MAA8C,EAC9C,QAAgB,KAAK,CAAC,MAAM;IAE5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAQ,CAAC;IAC5D,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,UAAU,MAAM;QACjB,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ name: string;
3
+ resolveId: {
4
+ order: string;
5
+ handler(id: any): string;
6
+ };
7
+ };
8
+ export default _default;
9
+ //# sourceMappingURL=defaultNodeResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultNodeResolver.d.ts","sourceRoot":"","sources":["../../src/vite/defaultNodeResolver.ts"],"names":[],"mappings":";;;;;;;AAAA,wBAgBE"}
@@ -0,0 +1,19 @@
1
+ export default {
2
+ name: "default-node-resolver",
3
+ resolveId: {
4
+ order: "post",
5
+ handler(id) {
6
+ try {
7
+ const resolvedPath = import.meta.resolve(id);
8
+ if (resolvedPath) {
9
+ return resolvedPath.replace("file://", "");
10
+ }
11
+ }
12
+ catch {
13
+ // Not resolvable as a node package; let later resolvers handle it.
14
+ }
15
+ return null;
16
+ },
17
+ },
18
+ };
19
+ //# sourceMappingURL=defaultNodeResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultNodeResolver.js","sourceRoot":"","sources":["../../src/vite/defaultNodeResolver.ts"],"names":[],"mappings":"AAAA,eAAe;IACX,IAAI,EAAE,uBAAuB;IAC7B,SAAS,EAAE;QACP,KAAK,EAAE,MAAM;QACb,OAAO,CAAC,EAAE;YACN,IAAI,CAAC;gBACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC7C,IAAI,YAAY,EAAE,CAAC;oBACf,OAAO,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,mEAAmE;YACvE,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ;CACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export default function customAssetsResolverPlugin(): {
2
+ name: string;
3
+ resolveId: {
4
+ order: string;
5
+ handler(id: any): any;
6
+ };
7
+ };
8
+ //# sourceMappingURL=inheritAssetsModuleResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inheritAssetsModuleResolver.d.ts","sourceRoot":"","sources":["../../src/vite/inheritAssetsModuleResolver.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,0BAA0B;;;;;;EA6EjD"}
@@ -1,32 +1,24 @@
1
1
  import path from "path";
2
- import configResolver from "./configResolver.js";
2
+ import configResolver from "../core/configResolver.js";
3
3
  import fs from "fs";
4
-
5
4
  export default function customAssetsResolverPlugin() {
6
5
  const CURRENT_THEME = process.env.CURRENT_THEME;
7
- const THEME_ASSETS_PATH = 'web';
8
- const MODULE_ASSETS_PATH = 'view/frontend/web';
9
-
10
-
6
+ const THEME_ASSETS_PATH = "web";
7
+ const MODULE_ASSETS_PATH = "view/frontend/web";
11
8
  function tryResolveAssetPathByTheme(themeName, filePath) {
12
9
  const themeDefinition = configResolver.getThemeDefinition(themeName);
13
10
  if (!themeDefinition) {
14
11
  return null;
15
12
  }
16
-
17
13
  const themeAssetPath = path.join(themeDefinition.src, filePath);
18
-
19
14
  if (fs.existsSync(themeAssetPath)) {
20
15
  return themeAssetPath;
21
16
  }
22
-
23
17
  if (themeDefinition.parent) {
24
18
  return tryResolveAssetPathByTheme(themeDefinition.parent, filePath);
25
19
  }
26
-
27
20
  return null;
28
21
  }
29
-
30
22
  function tryResolveAssetPathByModule(moduleName, filePath) {
31
23
  const moduleDefinition = configResolver.getModuleDefinition(moduleName);
32
24
  const assetPath = path.join(moduleDefinition.src, MODULE_ASSETS_PATH, filePath);
@@ -35,29 +27,26 @@ export default function customAssetsResolverPlugin() {
35
27
  }
36
28
  return null;
37
29
  }
38
-
39
-
40
30
  const resolveAssetPath = (moduleName, filePath) => {
41
31
  if (!filePath.startsWith("assets/")) {
42
32
  return null;
43
33
  }
44
- let assetSrc = null;
34
+ let assetSrc;
45
35
  if (moduleName === "Theme") {
46
36
  assetSrc = tryResolveAssetPathByTheme(CURRENT_THEME, path.join(THEME_ASSETS_PATH, filePath));
47
- } else {
37
+ }
38
+ else {
48
39
  assetSrc = tryResolveAssetPathByTheme(CURRENT_THEME, path.join(moduleName, THEME_ASSETS_PATH, filePath));
49
40
  }
50
41
  if (!assetSrc) {
51
42
  assetSrc = tryResolveAssetPathByModule(moduleName, filePath);
52
43
  }
53
-
54
44
  return assetSrc;
55
45
  };
56
-
57
46
  return {
58
47
  name: "inherit-assets-resolver",
59
48
  resolveId: {
60
- order: 'pre',
49
+ order: "pre",
61
50
  handler(id) {
62
51
  if (!id) {
63
52
  return;
@@ -72,7 +61,8 @@ export default function customAssetsResolverPlugin() {
72
61
  return;
73
62
  }
74
63
  return assetSrc;
75
- }
76
- }
64
+ },
65
+ },
77
66
  };
78
67
  }
68
+ //# sourceMappingURL=inheritAssetsModuleResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inheritAssetsModuleResolver.js","sourceRoot":"","sources":["../../src/vite/inheritAssetsModuleResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export default function customResolverPlugin(): {
2
+ name: string;
3
+ resolveId: {
4
+ order: string;
5
+ handler(id: any): any;
6
+ };
7
+ };
8
+ //# sourceMappingURL=inheritModuleResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inheritModuleResolver.d.ts","sourceRoot":"","sources":["../../src/vite/inheritModuleResolver.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,oBAAoB;;;;;;EAyC3C"}
@@ -1,31 +1,22 @@
1
- import moduleResolver from "./moduleResolver.js";
1
+ import moduleResolver from "../core/moduleResolver.js";
2
2
  import path from "path";
3
- import configResolver from "./configResolver.js";
4
-
3
+ import configResolver from "../core/configResolver.js";
5
4
  export default function customResolverPlugin() {
6
5
  const allComponents = moduleResolver.getAllJsVueFilesWithInheritanceCached();
7
6
  const validComponentExtensions = configResolver.getMagentoConfig().ALLOWED_EXTENSIONS;
8
-
9
- const hasValidExtension = (filePath) =>
10
- validComponentExtensions.some((ext) => filePath.endsWith(ext));
7
+ const hasValidExtension = (filePath) => validComponentExtensions.some((ext) => filePath.endsWith(ext));
11
8
  const hasExtension = (filePath) => !!path.extname(filePath);
12
-
13
-
14
9
  const resolveComponentPath = (moduleName, filePath) => {
15
10
  if (!filePath.startsWith("components/") && !filePath.startsWith("js/")) {
16
11
  filePath = "components/" + filePath;
17
12
  }
18
- const fileName = path.join(
19
- path.dirname(filePath),
20
- path.parse(filePath).name
21
- );
13
+ const fileName = path.join(path.dirname(filePath), path.parse(filePath).name);
22
14
  return allComponents[`${moduleName}/${fileName}`];
23
15
  };
24
-
25
16
  return {
26
17
  name: "inherit-resolver",
27
18
  resolveId: {
28
- order: 'pre',
19
+ order: "pre",
29
20
  handler(id) {
30
21
  if (!id) {
31
22
  return;
@@ -42,9 +33,9 @@ export default function customResolverPlugin() {
42
33
  if (!componentSrc) {
43
34
  return;
44
35
  }
45
-
46
36
  return componentSrc;
47
- }
48
- }
37
+ },
38
+ },
49
39
  };
50
40
  }
41
+ //# sourceMappingURL=inheritModuleResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inheritModuleResolver.js","sourceRoot":"","sources":["../../src/vite/inheritModuleResolver.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,oBAAoB;IACxC,MAAM,aAAa,GAAG,cAAc,CAAC,qCAAqC,EAAE,CAAC;IAC7E,MAAM,wBAAwB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC;IAEtF,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,EAAE,CACnC,wBAAwB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;QAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,QAAQ,GAAG,aAAa,GAAG,QAAQ,CAAC;QACxC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO,aAAa,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,OAAO;QACH,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE;YACP,KAAK,EAAE,KAAK;YACZ,OAAO,CAAC,EAAE;gBACN,IAAI,CAAC,EAAE,EAAE,CAAC;oBACN,OAAO;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO;gBACX,CAAC;gBACD,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC;gBACvC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzD,OAAO;gBACX,CAAC;gBACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAChE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,OAAO;gBACX,CAAC;gBAED,OAAO,YAAY,CAAC;YACxB,CAAC;SACJ;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,10 @@
1
+ export default function interceptorsPlugin(options?: {
2
+ themeName?: string;
3
+ }): {
4
+ name: string;
5
+ enforce: string;
6
+ buildStart(): Promise<void>;
7
+ resolveId(source: any, importer: any): Promise<string>;
8
+ load(id: any): any;
9
+ };
10
+ //# sourceMappingURL=interceptorsPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptorsPlugin.d.ts","sourceRoot":"","sources":["../../src/vite/interceptorsPlugin.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;EAyE9E"}