@pie-players/pie-players-shared 0.3.29 → 0.3.31

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 (197) hide show
  1. package/{src → dist}/components/PieItemPlayer.svelte +156 -88
  2. package/dist/i18n/translations/en/tools.json +1 -1
  3. package/{src → dist}/i18n/use-i18n-standalone.svelte.ts +1 -0
  4. package/{src → dist}/i18n/use-i18n.svelte.ts +1 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +6 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/loader-config.d.ts +25 -0
  10. package/dist/loader-config.d.ts.map +1 -1
  11. package/dist/loader-config.js +5 -0
  12. package/dist/loader-config.js.map +1 -1
  13. package/dist/loaders/ElementLoader.d.ts +6 -34
  14. package/dist/loaders/ElementLoader.d.ts.map +1 -1
  15. package/dist/loaders/ElementLoader.js +21 -9
  16. package/dist/loaders/ElementLoader.js.map +1 -1
  17. package/dist/loaders/element-loader-types.d.ts +91 -0
  18. package/dist/loaders/element-loader-types.d.ts.map +1 -0
  19. package/dist/loaders/element-loader-types.js +26 -0
  20. package/dist/loaders/element-loader-types.js.map +1 -0
  21. package/dist/loaders/element-loader.d.ts +92 -0
  22. package/dist/loaders/element-loader.d.ts.map +1 -0
  23. package/dist/loaders/element-loader.js +391 -0
  24. package/dist/loaders/element-loader.js.map +1 -0
  25. package/dist/loaders/esm-adapter.d.ts +40 -0
  26. package/dist/loaders/esm-adapter.d.ts.map +1 -0
  27. package/dist/loaders/esm-adapter.js +274 -0
  28. package/dist/loaders/esm-adapter.js.map +1 -0
  29. package/dist/loaders/iife-adapter.d.ts +86 -0
  30. package/dist/loaders/iife-adapter.d.ts.map +1 -0
  31. package/dist/loaders/iife-adapter.js +365 -0
  32. package/dist/loaders/iife-adapter.js.map +1 -0
  33. package/dist/loaders/index.d.ts +30 -17
  34. package/dist/loaders/index.d.ts.map +1 -1
  35. package/dist/loaders/index.js +26 -14
  36. package/dist/loaders/index.js.map +1 -1
  37. package/dist/pie/config.d.ts.map +1 -1
  38. package/dist/pie/config.js +12 -5
  39. package/dist/pie/config.js.map +1 -1
  40. package/dist/pie/index.d.ts +6 -4
  41. package/dist/pie/index.d.ts.map +1 -1
  42. package/dist/pie/index.js +8 -2
  43. package/dist/pie/index.js.map +1 -1
  44. package/dist/pie/initialization.d.ts +26 -1
  45. package/dist/pie/initialization.d.ts.map +1 -1
  46. package/dist/pie/initialization.js +72 -15
  47. package/dist/pie/initialization.js.map +1 -1
  48. package/dist/pie/instrumentation-event-map.d.ts.map +1 -1
  49. package/dist/pie/instrumentation-event-map.js +27 -16
  50. package/dist/pie/instrumentation-event-map.js.map +1 -1
  51. package/dist/pie/overrides.d.ts +9 -0
  52. package/dist/pie/overrides.d.ts.map +1 -1
  53. package/dist/pie/overrides.js +36 -0
  54. package/dist/pie/overrides.js.map +1 -1
  55. package/dist/pie/resource-monitor.d.ts +17 -0
  56. package/dist/pie/resource-monitor.d.ts.map +1 -1
  57. package/dist/pie/resource-monitor.js +284 -81
  58. package/dist/pie/resource-monitor.js.map +1 -1
  59. package/dist/pie/stage-tracker.d.ts +51 -0
  60. package/dist/pie/stage-tracker.d.ts.map +1 -0
  61. package/dist/pie/stage-tracker.js +106 -0
  62. package/dist/pie/stage-tracker.js.map +1 -0
  63. package/dist/pie/stages.d.ts +75 -0
  64. package/dist/pie/stages.d.ts.map +1 -0
  65. package/dist/pie/stages.js +58 -0
  66. package/dist/pie/stages.js.map +1 -0
  67. package/dist/pie/updates.d.ts.map +1 -1
  68. package/dist/pie/updates.js +65 -2
  69. package/dist/pie/updates.js.map +1 -1
  70. package/dist/pie/use-resource-monitor.svelte.d.ts.map +1 -1
  71. package/dist/pie/use-resource-monitor.svelte.js +88 -75
  72. package/dist/pie/use-resource-monitor.svelte.js.map +1 -1
  73. package/dist/security/index.d.ts +5 -0
  74. package/dist/security/index.d.ts.map +1 -0
  75. package/dist/security/index.js +5 -0
  76. package/dist/security/index.js.map +1 -0
  77. package/dist/security/sanitize-item-markup.d.ts +46 -0
  78. package/dist/security/sanitize-item-markup.d.ts.map +1 -0
  79. package/dist/security/sanitize-item-markup.js +174 -0
  80. package/dist/security/sanitize-item-markup.js.map +1 -0
  81. package/dist/security/sanitize-svg-icon.d.ts +15 -0
  82. package/dist/security/sanitize-svg-icon.d.ts.map +1 -0
  83. package/dist/security/sanitize-svg-icon.js +89 -0
  84. package/dist/security/sanitize-svg-icon.js.map +1 -0
  85. package/dist/security/validate-style-url.d.ts +28 -0
  86. package/dist/security/validate-style-url.d.ts.map +1 -0
  87. package/dist/security/validate-style-url.js +58 -0
  88. package/dist/security/validate-style-url.js.map +1 -0
  89. package/dist/security/wrap-overwide-images.d.ts +31 -0
  90. package/dist/security/wrap-overwide-images.d.ts.map +1 -0
  91. package/dist/security/wrap-overwide-images.js +92 -0
  92. package/dist/security/wrap-overwide-images.js.map +1 -0
  93. package/dist/server/npm-registry.d.ts +8 -0
  94. package/dist/server/npm-registry.d.ts.map +1 -0
  95. package/dist/server/npm-registry.js +60 -0
  96. package/dist/server/npm-registry.js.map +1 -0
  97. package/dist/types/index.d.ts +10 -0
  98. package/dist/types/index.d.ts.map +1 -1
  99. package/dist/types/index.js.map +1 -1
  100. package/dist/ui/first-focusable.d.ts +21 -0
  101. package/dist/ui/first-focusable.d.ts.map +1 -0
  102. package/dist/ui/first-focusable.js +73 -0
  103. package/dist/ui/first-focusable.js.map +1 -0
  104. package/dist/ui/focus-trap.d.ts.map +1 -1
  105. package/dist/ui/focus-trap.js +2 -13
  106. package/dist/ui/focus-trap.js.map +1 -1
  107. package/dist/ui/use-promise.svelte.ts +109 -0
  108. package/package.json +49 -34
  109. package/dist/i18n/scripts/check-coverage.d.ts +0 -16
  110. package/dist/i18n/scripts/check-coverage.d.ts.map +0 -1
  111. package/dist/i18n/scripts/check-coverage.js +0 -262
  112. package/dist/i18n/scripts/check-coverage.js.map +0 -1
  113. package/dist/i18n/scripts/scan-hardcoded.d.ts +0 -16
  114. package/dist/i18n/scripts/scan-hardcoded.d.ts.map +0 -1
  115. package/dist/i18n/scripts/scan-hardcoded.js +0 -266
  116. package/dist/i18n/scripts/scan-hardcoded.js.map +0 -1
  117. package/dist/i18n/use-i18n-standalone.svelte.d.ts +0 -87
  118. package/dist/i18n/use-i18n-standalone.svelte.d.ts.map +0 -1
  119. package/dist/i18n/use-i18n-standalone.svelte.js +0 -151
  120. package/dist/i18n/use-i18n-standalone.svelte.js.map +0 -1
  121. package/dist/i18n/use-i18n.svelte.d.ts +0 -67
  122. package/dist/i18n/use-i18n.svelte.d.ts.map +0 -1
  123. package/dist/i18n/use-i18n.svelte.js +0 -144
  124. package/dist/i18n/use-i18n.svelte.js.map +0 -1
  125. package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts +0 -170
  126. package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts.map +0 -1
  127. package/dist/instrumentation/providers/DataDogInstrumentationProvider.js +0 -183
  128. package/dist/instrumentation/providers/DataDogInstrumentationProvider.js.map +0 -1
  129. package/dist/loaders/EsmElementLoader.d.ts +0 -69
  130. package/dist/loaders/EsmElementLoader.d.ts.map +0 -1
  131. package/dist/loaders/EsmElementLoader.js +0 -72
  132. package/dist/loaders/EsmElementLoader.js.map +0 -1
  133. package/dist/loaders/IifeElementLoader.d.ts +0 -61
  134. package/dist/loaders/IifeElementLoader.d.ts.map +0 -1
  135. package/dist/loaders/IifeElementLoader.js +0 -63
  136. package/dist/loaders/IifeElementLoader.js.map +0 -1
  137. package/dist/pie/esm-loader.d.ts +0 -104
  138. package/dist/pie/esm-loader.d.ts.map +0 -1
  139. package/dist/pie/esm-loader.js +0 -358
  140. package/dist/pie/esm-loader.js.map +0 -1
  141. package/dist/pie/iife-loader.d.ts +0 -81
  142. package/dist/pie/iife-loader.d.ts.map +0 -1
  143. package/dist/pie/iife-loader.js +0 -425
  144. package/dist/pie/iife-loader.js.map +0 -1
  145. package/dist/theming/css-variables.d.ts +0 -7
  146. package/dist/theming/css-variables.d.ts.map +0 -1
  147. package/dist/theming/css-variables.js +0 -43
  148. package/dist/theming/css-variables.js.map +0 -1
  149. package/dist/theming/index.d.ts +0 -4
  150. package/dist/theming/index.d.ts.map +0 -1
  151. package/dist/theming/index.js +0 -3
  152. package/dist/theming/index.js.map +0 -1
  153. package/dist/theming/presets.d.ts +0 -7
  154. package/dist/theming/presets.d.ts.map +0 -1
  155. package/dist/theming/presets.js +0 -146
  156. package/dist/theming/presets.js.map +0 -1
  157. package/dist/theming/types.d.ts +0 -5
  158. package/dist/theming/types.d.ts.map +0 -1
  159. package/dist/theming/types.js +0 -2
  160. package/dist/theming/types.js.map +0 -1
  161. package/dist/types/custom-elements.d.ts +0 -158
  162. package/dist/types/custom-elements.d.ts.map +0 -1
  163. package/dist/types/custom-elements.js +0 -8
  164. package/dist/types/custom-elements.js.map +0 -1
  165. package/dist/types/search.d.ts +0 -105
  166. package/dist/types/search.d.ts.map +0 -1
  167. package/dist/types/search.js +0 -12
  168. package/dist/types/search.js.map +0 -1
  169. package/dist/types/transform.d.ts +0 -48
  170. package/dist/types/transform.d.ts.map +0 -1
  171. package/dist/types/transform.js +0 -21
  172. package/dist/types/transform.js.map +0 -1
  173. package/src/i18n/README.md +0 -223
  174. package/src/i18n/index.ts +0 -26
  175. package/src/i18n/loader.ts +0 -156
  176. package/src/i18n/scripts/check-coverage.ts +0 -345
  177. package/src/i18n/scripts/scan-hardcoded.ts +0 -342
  178. package/src/i18n/simple-i18n.ts +0 -236
  179. package/src/i18n/translations/ar/common.json +0 -36
  180. package/src/i18n/translations/ar/toolkit.json +0 -48
  181. package/src/i18n/translations/ar/tools.json +0 -103
  182. package/src/i18n/translations/en/common.json +0 -36
  183. package/src/i18n/translations/en/toolkit.json +0 -48
  184. package/src/i18n/translations/en/tools.json +0 -103
  185. package/src/i18n/translations/es/common.json +0 -36
  186. package/src/i18n/translations/es/toolkit.json +0 -48
  187. package/src/i18n/translations/es/tools.json +0 -103
  188. package/src/i18n/translations/zh/common.json +0 -36
  189. package/src/i18n/translations/zh/toolkit.json +0 -48
  190. package/src/i18n/translations/zh/tools.json +0 -103
  191. package/src/i18n/types.ts +0 -66
  192. /package/{src → dist}/components/PiePreviewLayout.svelte +0 -0
  193. /package/{src → dist}/components/PiePreviewToggle.svelte +0 -0
  194. /package/{src → dist}/components/PieSpinner.svelte +0 -0
  195. /package/{src → dist}/components/ToolSettingsButton.svelte +0 -0
  196. /package/{src → dist}/components/ToolSettingsPanel.svelte +0 -0
  197. /package/{src → dist}/components/index.ts +0 -0
@@ -1,358 +0,0 @@
1
- /**
2
- * ESM PIE Loader
3
- *
4
- * Dynamically loads PIE elements from ESM CDN (esm.sh, jsDelivr, etc.)
5
- * using import maps for version resolution.
6
- *
7
- * Supports loading different views/variants of elements (delivery, author, print,
8
- * or custom UI variants) by importing from different subpaths.
9
- *
10
- * Integrates with the existing PIE registry system to enable shared
11
- * initialization code to work with ESM-loaded elements.
12
- */
13
- import { createPieLogger } from "./logger.js";
14
- import { pieRegistry } from "./registry.js";
15
- import { defineCustomElementSafely } from "./custom-element-define.js";
16
- import { validateCustomElementTag } from "./tag-names.js";
17
- import { isCustomElementConstructor, Status } from "./types.js";
18
- // Logger factory - will be initialized when loader is created
19
- let logger;
20
- /**
21
- * Built-in view configurations
22
- * Extensible - elements can define custom views (e.g., 'delivery-mobile', 'delivery-a11y')
23
- */
24
- export const BUILT_IN_VIEWS = {
25
- delivery: {
26
- subpath: "",
27
- tagSuffix: "",
28
- },
29
- author: {
30
- subpath: "/author",
31
- tagSuffix: "-config",
32
- fallback: "delivery", // Fall back to delivery if author doesn't exist
33
- },
34
- print: {
35
- subpath: "/print",
36
- tagSuffix: "-print",
37
- fallback: "delivery",
38
- },
39
- // Custom views can follow patterns like:
40
- // 'delivery-mobile': { subpath: '/delivery-mobile', tagSuffix: '', fallback: 'delivery' }
41
- // 'delivery-a11y': { subpath: '/delivery-a11y', tagSuffix: '', fallback: 'delivery' }
42
- // 'delivery-simple': { subpath: '/delivery-simple', tagSuffix: '', fallback: 'delivery' }
43
- };
44
- export class EsmPieLoader {
45
- cdnBaseUrl;
46
- moduleResolution;
47
- importMapInjected = false;
48
- constructor(config) {
49
- this.cdnBaseUrl = config.cdnBaseUrl.replace(/\/+$/, "");
50
- this.moduleResolution = config.moduleResolution || "url";
51
- // Initialize logger with debug function
52
- logger = createPieLogger("esm-loader", config.debugEnabled || (() => false));
53
- }
54
- extractPackageName(packageVersion) {
55
- // Extract package name from version string
56
- // e.g., "@pie-element/multiple-choice@11.0.1-esmbeta.3" => "@pie-element/multiple-choice"
57
- const parts = packageVersion.split("@");
58
- return parts.length >= 3 ? `@${parts[1]}` : parts[0];
59
- }
60
- generateImportMap(elements, options) {
61
- const imports = {};
62
- const viewConfig = options.viewConfig ||
63
- BUILT_IN_VIEWS[options.view] ||
64
- BUILT_IN_VIEWS.delivery;
65
- for (const [_tag, packageVersion] of Object.entries(elements)) {
66
- const packageName = this.extractPackageName(packageVersion);
67
- // Add root package import (for delivery/default view)
68
- imports[packageName] = this.resolvePackageUrl(packageVersion);
69
- // Add view-specific subpath if not root
70
- if (viewConfig.subpath) {
71
- imports[`${packageName}${viewConfig.subpath}`] = this.resolveSubpathUrl(packageVersion, viewConfig.subpath);
72
- }
73
- // Add controller path if requested
74
- if (options.loadControllers) {
75
- imports[`${packageName}/controller`] =
76
- this.resolveControllerUrl(packageVersion);
77
- }
78
- // Add fallback view if specified
79
- if (viewConfig.fallback) {
80
- const fallbackConfig = BUILT_IN_VIEWS[viewConfig.fallback];
81
- if (fallbackConfig?.subpath) {
82
- imports[`${packageName}${fallbackConfig.subpath}`] =
83
- this.resolveSubpathUrl(packageVersion, fallbackConfig.subpath);
84
- }
85
- }
86
- }
87
- return { imports };
88
- }
89
- isJsDelivrNpm() {
90
- return this.cdnBaseUrl.includes("cdn.jsdelivr.net/npm");
91
- }
92
- resolvePackageUrl(packageVersion) {
93
- // jsDelivr requires `+esm` to serve ESM-compatible output.
94
- // Example: https://cdn.jsdelivr.net/npm/@pie-element/passage@5.3.3/+esm
95
- if (this.isJsDelivrNpm()) {
96
- return `${this.cdnBaseUrl}/${packageVersion}/+esm`;
97
- }
98
- // Default: treat baseUrl as a direct ESM CDN base (esm.sh, etc.)
99
- return `${this.cdnBaseUrl}/${packageVersion}`;
100
- }
101
- resolveControllerUrl(packageVersion) {
102
- if (this.isJsDelivrNpm()) {
103
- return `${this.cdnBaseUrl}/${packageVersion}/controller/+esm`;
104
- }
105
- return `${this.cdnBaseUrl}/${packageVersion}/controller`;
106
- }
107
- resolveSubpathUrl(packageVersion, subpath) {
108
- // Remove leading slash from subpath if present
109
- const cleanSubpath = subpath.startsWith("/") ? subpath.slice(1) : subpath;
110
- if (this.isJsDelivrNpm()) {
111
- return `${this.cdnBaseUrl}/${packageVersion}/${cleanSubpath}/+esm`;
112
- }
113
- return `${this.cdnBaseUrl}/${packageVersion}/${cleanSubpath}`;
114
- }
115
- injectImportMap(importMap, doc) {
116
- const script = doc.createElement("script");
117
- script.type = "importmap";
118
- script.textContent = JSON.stringify(importMap, null, 2);
119
- doc.head.appendChild(script);
120
- }
121
- assertRuntimeSupport(doc) {
122
- if (!doc?.head) {
123
- throw new Error(`ESM loader requires a browser document with a <head> to load modules (moduleResolution=${this.moduleResolution}).`);
124
- }
125
- if (typeof customElements === "undefined") {
126
- throw new Error(`ESM loader requires Custom Elements support in this environment (moduleResolution=${this.moduleResolution}).`);
127
- }
128
- if (this.moduleResolution === "import-map") {
129
- const htmlScriptElement = HTMLScriptElement;
130
- const supportsImportMap = typeof HTMLScriptElement !== "undefined" &&
131
- typeof htmlScriptElement.supports === "function" &&
132
- htmlScriptElement.supports("importmap");
133
- if (!supportsImportMap) {
134
- throw new Error('This browser does not support import maps. Use moduleResolution="url" or switch to iife/preloaded strategy.');
135
- }
136
- }
137
- }
138
- normalizeImportError(err, specifier, context) {
139
- const message = err instanceof Error ? err.message : String(err);
140
- const lower = message.toLowerCase();
141
- const likelyCspOrPolicy = lower.includes("refused") ||
142
- lower.includes("content security policy") ||
143
- lower.includes("failed to fetch dynamically imported module") ||
144
- lower.includes("blocked");
145
- const likelyResolutionIssue = lower.includes("failed to resolve module specifier") ||
146
- lower.includes("cannot find module");
147
- const hints = [];
148
- if (this.moduleResolution === "import-map" && likelyResolutionIssue) {
149
- hints.push("Import-map resolution failed. Ensure the import map contains this specifier, or use moduleResolution=\"url\".");
150
- }
151
- if (likelyCspOrPolicy) {
152
- hints.push(`Check CSP allows module loading from ${this.cdnBaseUrl} (script-src/connect-src) and allows import maps if moduleResolution="import-map".`);
153
- }
154
- const prefix = `Failed to load ${context} module: ${specifier}`;
155
- if (hints.length === 0) {
156
- return new Error(`${prefix}. ${message}`);
157
- }
158
- return new Error(`${prefix}. ${message} Hints: ${hints.join(" ")}`);
159
- }
160
- resolveElementSpecifier(packageName, packageVersion, viewConfig) {
161
- if (this.moduleResolution === "import-map") {
162
- return viewConfig.subpath ? `${packageName}${viewConfig.subpath}` : packageName;
163
- }
164
- return viewConfig.subpath
165
- ? this.resolveSubpathUrl(packageVersion, viewConfig.subpath)
166
- : this.resolvePackageUrl(packageVersion);
167
- }
168
- resolveControllerSpecifier(packageName, packageVersion) {
169
- if (this.moduleResolution === "import-map") {
170
- return `${packageName}/controller`;
171
- }
172
- return this.resolveControllerUrl(packageVersion);
173
- }
174
- async loadElement(tag, packageVersion, options) {
175
- const registry = pieRegistry();
176
- const viewConfig = options.viewConfig ||
177
- BUILT_IN_VIEWS[options.view] ||
178
- BUILT_IN_VIEWS.delivery;
179
- try {
180
- const packageName = this.extractPackageName(packageVersion);
181
- const actualTag = validateCustomElementTag(`${tag}${viewConfig.tagSuffix}`, `element tag for ${packageName}`);
182
- logger.debug(`Loading element ${actualTag} from ${packageName} (${packageVersion})`);
183
- logger.debug(`View: ${options.view}, subpath: ${viewConfig.subpath}`);
184
- // Determine import specifier based on resolution mode and view
185
- const importSpecifier = this.resolveElementSpecifier(packageName, packageVersion, viewConfig);
186
- let module;
187
- let ElementClass;
188
- try {
189
- // @vite-ignore - Dynamic import from runtime specifier (URL or import-map bare path)
190
- module = await import(/* @vite-ignore */ importSpecifier);
191
- logger.debug(`Module loaded for ${actualTag}:`, module);
192
- logger.debug(`Module exports:`, Object.keys(module));
193
- // Try different export patterns based on view
194
- if (options.view === "author") {
195
- ElementClass = module.default || module.Configure || module.Element;
196
- }
197
- else if (options.view === "print") {
198
- ElementClass = module.default || module.Print || module.Element;
199
- }
200
- else {
201
- ElementClass = module.default || module.Element;
202
- }
203
- }
204
- catch (err) {
205
- // If loading fails and there's a fallback, try the fallback
206
- if (viewConfig.fallback) {
207
- logger.debug(`Primary element import failed for ${importSpecifier}; attempting fallback view "${viewConfig.fallback}"`);
208
- const fallbackConfig = BUILT_IN_VIEWS[viewConfig.fallback];
209
- const fallbackSpecifier = this.resolveElementSpecifier(packageName, packageVersion, fallbackConfig || BUILT_IN_VIEWS.delivery);
210
- try {
211
- // @vite-ignore - Dynamic import from runtime specifier (URL or import-map bare path)
212
- module = await import(/* @vite-ignore */ fallbackSpecifier);
213
- }
214
- catch (fallbackErr) {
215
- throw this.normalizeImportError(fallbackErr, fallbackSpecifier, "fallback element");
216
- }
217
- ElementClass = module.default || module.Element;
218
- logger.debug(`Loaded fallback view for ${actualTag}`);
219
- }
220
- else {
221
- throw this.normalizeImportError(err, importSpecifier, "element");
222
- }
223
- }
224
- if (!ElementClass) {
225
- throw new Error(`No suitable element class found in ${importSpecifier} for view ${options.view}`);
226
- }
227
- // Load controller separately if needed
228
- let controller = null;
229
- if (options.loadControllers) {
230
- const controllerSpecifier = this.resolveControllerSpecifier(packageName, packageVersion);
231
- try {
232
- // @vite-ignore - Dynamic import from runtime specifier (URL or import-map bare path)
233
- const controllerModule = await import(/* @vite-ignore */ controllerSpecifier);
234
- logger.debug(`Controller module loaded for ${actualTag}:`, controllerModule);
235
- // Controller exports as 'default'
236
- controller = controllerModule.default || controllerModule;
237
- if (controller) {
238
- logger.debug(`Controller registered for ${actualTag}`);
239
- }
240
- else {
241
- logger.warn(`No controller export found for ${actualTag}`);
242
- }
243
- }
244
- catch (err) {
245
- logger.warn(`Failed to load controller for ${actualTag}:`, this.normalizeImportError(err, controllerSpecifier, "controller"));
246
- }
247
- }
248
- // Register in the global PIE registry (used by shared initialization code)
249
- registry[actualTag] = {
250
- package: packageVersion,
251
- status: Status.loading,
252
- tagName: actualTag,
253
- element: ElementClass,
254
- controller: controller,
255
- config: null,
256
- bundleType: "esm", // Mark as ESM-loaded
257
- };
258
- // Register custom element with the tag name (including suffix)
259
- if (isCustomElementConstructor(ElementClass)) {
260
- const defineResult = defineCustomElementSafely(actualTag, class extends ElementClass {
261
- }, `element tag for ${packageName}`);
262
- if (defineResult.status === "defined") {
263
- logger.debug(`Registered custom element: ${actualTag}`);
264
- }
265
- else {
266
- logger.debug(`Element ${actualTag} already registered`);
267
- }
268
- registry[actualTag] = {
269
- ...registry[actualTag],
270
- status: Status.loaded,
271
- };
272
- }
273
- else {
274
- logger.warn(`No Element export found in module`);
275
- }
276
- }
277
- catch (err) {
278
- logger.error(`Failed to load element ${tag}:`, err);
279
- throw err;
280
- }
281
- }
282
- getController(tag) {
283
- const registry = pieRegistry();
284
- return registry[tag]?.controller || null;
285
- }
286
- async elementsHaveLoaded(elements) {
287
- // Wait for versioned tags to be defined
288
- const promises = elements.map((el) => {
289
- logger.debug(`Waiting for ${el.tag} to be defined`);
290
- return customElements.whenDefined(el.tag);
291
- });
292
- await Promise.all(promises);
293
- return { elements, val: true };
294
- }
295
- /**
296
- * Load PIE elements with specified view/variant
297
- *
298
- * @param contentConfig - Item config with elements
299
- * @param doc - Document to inject import maps into
300
- * @param options - Loading options (view, controllers, etc.)
301
- *
302
- * @example
303
- * // Load delivery view with controllers
304
- * await loader.load(config, document, { view: 'delivery', loadControllers: true });
305
- *
306
- * @example
307
- * // Load author view (configuration UI)
308
- * await loader.load(config, document, { view: 'author', loadControllers: false });
309
- *
310
- * @example
311
- * // Load custom mobile-optimized view with fallback
312
- * await loader.load(config, document, {
313
- * view: 'delivery-mobile',
314
- * viewConfig: { subpath: '/delivery-mobile', tagSuffix: '', fallback: 'delivery' },
315
- * loadControllers: true
316
- * });
317
- */
318
- async load(contentConfig, doc, options) {
319
- logger.debug("load() called with options:", options);
320
- logger.debug("contentConfig:", contentConfig);
321
- if (!contentConfig?.elements) {
322
- logger.warn("No elements in config");
323
- return;
324
- }
325
- this.assertRuntimeSupport(doc);
326
- const viewConfig = options.viewConfig ||
327
- BUILT_IN_VIEWS[options.view] ||
328
- BUILT_IN_VIEWS.delivery;
329
- // 0. Generate and inject import map when import-map mode is enabled
330
- if (this.moduleResolution === "import-map") {
331
- if (!this.importMapInjected) {
332
- logger.debug("Generating import map for view:", options.view);
333
- const importMap = this.generateImportMap(contentConfig.elements, options);
334
- logger.debug("Import map:", importMap);
335
- this.injectImportMap(importMap, doc);
336
- this.importMapInjected = true;
337
- logger.debug("Import map injected");
338
- }
339
- else {
340
- logger.debug("Import map already injected, skipping");
341
- }
342
- }
343
- else {
344
- logger.debug(`Skipping import map injection (moduleResolution=${this.moduleResolution})`);
345
- }
346
- // 2. Dynamically import and register each element
347
- const elementTags = Object.keys(contentConfig.elements);
348
- logger.debug("Loading elements:", elementTags);
349
- await Promise.all(elementTags.map((tag) => this.loadElement(tag, contentConfig.elements[tag], options)));
350
- logger.debug("All elements loaded");
351
- // 3. Wait for all custom elements to be defined
352
- logger.debug("Waiting for custom elements to be defined");
353
- const tagsWithSuffix = elementTags.map((tag) => validateCustomElementTag(`${tag}${viewConfig.tagSuffix}`, `element tag for view "${options.view}"`));
354
- await Promise.all(tagsWithSuffix.map((tag) => customElements.whenDefined(tag)));
355
- logger.debug("All custom elements defined");
356
- }
357
- }
358
- //# sourceMappingURL=esm-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"esm-loader.js","sourceRoot":"","sources":["../../src/pie/esm-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhE,8DAA8D;AAC9D,IAAI,MAA0C,CAAC;AAyC/C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAA+B;IACzD,QAAQ,EAAE;QACT,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;KACb;IACD,MAAM,EAAE;QACP,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,UAAU,EAAE,gDAAgD;KACtE;IACD,KAAK,EAAE;QACN,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,UAAU;KACpB;IACD,yCAAyC;IACzC,0FAA0F;IAC1F,sFAAsF;IACtF,0FAA0F;CAC1F,CAAC;AAEF,MAAM,OAAO,YAAY;IAChB,UAAU,CAAS;IACnB,gBAAgB,CAAuB;IACvC,iBAAiB,GAAG,KAAK,CAAC;IAElC,YAAY,MAAuB;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC;QACzD,wCAAwC;QACxC,MAAM,GAAG,eAAe,CACvB,YAAY,EACZ,MAAM,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CACpC,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,cAAsB;QAChD,2CAA2C;QAC3C,0FAA0F;QAC1F,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,iBAAiB,CACxB,QAAgC,EAChC,OAAuB;QAEvB,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,UAAU,GACf,OAAO,CAAC,UAAU;YAClB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5B,cAAc,CAAC,QAAQ,CAAC;QAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAE5D,sDAAsD;YACtD,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAE9D,wCAAwC;YACxC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CACtE,cAAc,EACd,UAAU,CAAC,OAAO,CAClB,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,WAAW,aAAa,CAAC;oBACnC,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;YAED,iCAAiC;YACjC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;wBACjD,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;gBACjE,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC;IACpB,CAAC;IAEO,aAAa;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC;IAEO,iBAAiB,CAAC,cAAsB;QAC/C,2DAA2D;QAC3D,wEAAwE;QACxE,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,OAAO,CAAC;QACpD,CAAC;QACD,iEAAiE;QACjE,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,EAAE,CAAC;IAC/C,CAAC;IAEO,oBAAoB,CAAC,cAAsB;QAClD,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,kBAAkB,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,aAAa,CAAC;IAC1D,CAAC;IAEO,iBAAiB,CAAC,cAAsB,EAAE,OAAe;QAChE,+CAA+C;QAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE1E,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,IAAI,YAAY,OAAO,CAAC;QACpE,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;IAC/D,CAAC;IAEO,eAAe,CAAC,SAAc,EAAE,GAAa;QACpD,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEO,oBAAoB,CAAC,GAAa;QACzC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACd,0FAA0F,IAAI,CAAC,gBAAgB,IAAI,CACnH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACd,qFAAqF,IAAI,CAAC,gBAAgB,IAAI,CAC9G,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;YAC5C,MAAM,iBAAiB,GAAG,iBAEzB,CAAC;YACF,MAAM,iBAAiB,GACtB,OAAO,iBAAiB,KAAK,WAAW;gBACxC,OAAO,iBAAiB,CAAC,QAAQ,KAAK,UAAU;gBAChD,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACd,6GAA6G,CAC7G,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAEO,oBAAoB,CAC3B,GAAY,EACZ,SAAiB,EACjB,OAAe;QAEf,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,iBAAiB,GACtB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACzC,KAAK,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC7D,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,qBAAqB,GAC1B,KAAK,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACpD,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,IAAI,qBAAqB,EAAE,CAAC;YACrE,KAAK,CAAC,IAAI,CACT,+GAA+G,CAC/G,CAAC;QACH,CAAC;QACD,IAAI,iBAAiB,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CACT,wCAAwC,IAAI,CAAC,UAAU,oFAAoF,CAC3I,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,OAAO,YAAY,SAAS,EAAE,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,KAAK,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,uBAAuB,CAC9B,WAAmB,EACnB,cAAsB,EACtB,UAAsB;QAEtB,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;YAC5C,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACjF,CAAC;QACD,OAAO,UAAU,CAAC,OAAO;YACxB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEO,0BAA0B,CACjC,WAAmB,EACnB,cAAsB;QAEtB,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;YAC5C,OAAO,GAAG,WAAW,aAAa,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,WAAW,CACxB,GAAW,EACX,cAAsB,EACtB,OAAuB;QAEvB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,UAAU,GACf,OAAO,CAAC,UAAU;YAClB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5B,cAAc,CAAC,QAAQ,CAAC;QAEzB,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,wBAAwB,CACzC,GAAG,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,EAC/B,mBAAmB,WAAW,EAAE,CAChC,CAAC;YAEF,MAAM,CAAC,KAAK,CACX,mBAAmB,SAAS,SAAS,WAAW,KAAK,cAAc,GAAG,CACtE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,IAAI,cAAc,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAEtE,+DAA+D;YAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CACnD,WAAW,EACX,cAAc,EACd,UAAU,CACV,CAAC;YAEF,IAAI,MAAW,CAAC;YAChB,IAAI,YAAiB,CAAC;YAEtB,IAAI,CAAC;gBACJ,qFAAqF;gBACrF,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBAC1D,MAAM,CAAC,KAAK,CAAC,qBAAqB,SAAS,GAAG,EAAE,MAAM,CAAC,CAAC;gBACxD,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAErD,8CAA8C;gBAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC/B,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC;gBACrE,CAAC;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrC,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACP,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;gBACjD,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,4DAA4D;gBAC5D,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACzB,MAAM,CAAC,KAAK,CACX,qCAAqC,eAAe,+BAA+B,UAAU,CAAC,QAAQ,GAAG,CACzG,CAAC;oBACF,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC3D,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CACrD,WAAW,EACX,cAAc,EACd,cAAc,IAAI,cAAc,CAAC,QAAQ,CACzC,CAAC;oBAEF,IAAI,CAAC;wBACJ,qFAAqF;wBACrF,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;oBAC7D,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACtB,MAAM,IAAI,CAAC,oBAAoB,CAC9B,WAAW,EACX,iBAAiB,EACjB,kBAAkB,CAClB,CAAC;oBACH,CAAC;oBACD,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;oBAChD,MAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAClE,CAAC;YACF,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACd,sCAAsC,eAAe,aAAa,OAAO,CAAC,IAAI,EAAE,CAChF,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAC1D,WAAW,EACX,cAAc,CACd,CAAC;gBACF,IAAI,CAAC;oBACJ,qFAAqF;oBACrF,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;oBAC9E,MAAM,CAAC,KAAK,CACX,gCAAgC,SAAS,GAAG,EAC5C,gBAAgB,CAChB,CAAC;oBAEF,kCAAkC;oBAClC,UAAU,GAAG,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC;oBAE1D,IAAI,UAAU,EAAE,CAAC;wBAChB,MAAM,CAAC,KAAK,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;oBAC5D,CAAC;gBACF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CACV,iCAAiC,SAAS,GAAG,EAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,EAAE,YAAY,CAAC,CACjE,CAAC;gBACH,CAAC;YACF,CAAC;YAED,2EAA2E;YAC3E,QAAQ,CAAC,SAAS,CAAC,GAAG;gBACrB,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,KAAY,EAAE,qBAAqB;aAC/C,CAAC;YAEF,+DAA+D;YAC/D,IAAI,0BAA0B,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,MAAM,YAAY,GAAG,yBAAyB,CAC7C,SAAS,EACT,KAAM,SAAQ,YAAY;iBAAG,EAC7B,mBAAmB,WAAW,EAAE,CAChC,CAAC;gBACF,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvC,MAAM,CAAC,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,KAAK,CAAC,WAAW,SAAS,qBAAqB,CAAC,CAAC;gBACzD,CAAC;gBACD,QAAQ,CAAC,SAAS,CAAC,GAAG;oBACrB,GAAG,QAAQ,CAAC,SAAS,CAAC;oBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACrB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;IAEM,aAAa,CAAC,GAAW;QAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,IAAI,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC9B,QAA8C;QAE9C,wCAAwC;QACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACpC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC;YACpD,OAAO,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,IAAI,CAChB,aAAkB,EAClB,GAAa,EACb,OAAuB;QAEvB,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAE9C,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACR,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,UAAU,GACf,OAAO,CAAC,UAAU;YAClB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5B,cAAc,CAAC,QAAQ,CAAC;QAEzB,oEAAoE;QACpE,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC1E,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,KAAK,CACX,mDAAmD,IAAI,CAAC,gBAAgB,GAAG,CAC3E,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,OAAO,CAAC,GAAG,CAChB,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACvB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAC3D,CACD,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAEpC,gDAAgD;QAChD,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,wBAAwB,CACvB,GAAG,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,EAC/B,yBAAyB,OAAO,CAAC,IAAI,GAAG,CACxC,CACD,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAChB,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC5D,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;CACD"}
@@ -1,81 +0,0 @@
1
- /**
2
- * IIFE PIE Loader
3
- *
4
- * Dynamically loads PIE elements from IIFE bundles served by the PIE build service.
5
- * Matches the behavior of the original pie-player from @pie-players/pie-player-components.
6
- *
7
- * Integrates with the existing PIE registry system to enable shared
8
- * initialization code to work with IIFE-loaded elements.
9
- */
10
- import { BundleType } from "./types.js";
11
- export interface IifeLoaderConfig {
12
- /**
13
- * Base URL for the PIE bundle service
14
- * This service builds and serves IIFE bundles dynamically based on element versions
15
- * @example "https://proxy.pie-api.com/bundles/"
16
- * @default "https://proxy.pie-api.com/bundles/"
17
- */
18
- bundleHost: string;
19
- /**
20
- * Debug function (returns whether debug is enabled)
21
- */
22
- debugEnabled?: () => boolean;
23
- /**
24
- * Timeout (ms) for `customElements.whenDefined(...)` waiting.
25
- * Prevents infinite loading hangs.
26
- */
27
- whenDefinedTimeoutMs?: number;
28
- }
29
- export declare const DEFAULT_BUNDLE_HOST = "https://proxy.pie-api.com/bundles/";
30
- export declare class IifePieLoader {
31
- private config;
32
- constructor(config: IifeLoaderConfig);
33
- private ensurePieHelpers;
34
- private getRequestedPackageNames;
35
- private isReusableActiveBundle;
36
- private clearActiveBundleState;
37
- private removePieBundleScripts;
38
- private getActivePieBundleScriptUrls;
39
- private buildLoadDiagnostics;
40
- private isRecoverableRegistrationError;
41
- private registerWithReloadRecovery;
42
- private withGlobalLoadQueue;
43
- /**
44
- * Get the bundle URL based on config elements
45
- */
46
- private getBundleUrl;
47
- /**
48
- * Load an IIFE bundle from the specified URL
49
- */
50
- private loadBundleScript;
51
- private whenDefinedWithTimeout;
52
- private createEmptyConfigure;
53
- /**
54
- * Register elements from the loaded IIFE bundle into the PIE registry
55
- */
56
- private registerElementsFromBundle;
57
- /**
58
- * Load PIE elements from IIFE bundle
59
- *
60
- * @param contentConfig - Item config with elements
61
- * @param doc - Document to inject script into
62
- * @param bundleType - Type of bundle (BundleType.player, BundleType.clientPlayer, or BundleType.editor)
63
- * @param needsControllers - Whether controllers are needed
64
- */
65
- load(contentConfig: any, doc: Document, bundleType: BundleType, needsControllers: boolean): Promise<void>;
66
- /**
67
- * Get controller for a specific element tag
68
- */
69
- getController(tag: string): any | null;
70
- /**
71
- * Wait for elements to be fully loaded
72
- */
73
- elementsHaveLoaded(elements: Array<{
74
- name: string;
75
- tag: string;
76
- }>): Promise<{
77
- elements: typeof elements;
78
- val: boolean;
79
- }>;
80
- }
81
- //# sourceMappingURL=iife-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iife-loader.d.ts","sourceRoot":"","sources":["../../src/pie/iife-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,UAAU,EAAsC,MAAM,YAAY,CAAC;AAM5E,MAAM,WAAW,gBAAgB;IAChC;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAE7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID,eAAO,MAAM,mBAAmB,uCAAuC,CAAC;AAYxE,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IASpC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,8BAA8B;YASxB,0BAA0B;IAuDxC,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;YACW,gBAAgB;IAsB9B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;YACW,0BAA0B;IA2HxC;;;;;;;OAOG;IACU,IAAI,CAChB,aAAa,EAAE,GAAG,EAClB,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,OAAO,GACvB,OAAO,CAAC,IAAI,CAAC;IAsGhB;;OAEG;IACI,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAK7C;;OAEG;IACU,kBAAkB,CAC9B,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GAC5C,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,QAAQ,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;CAQvD"}