@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,183 +0,0 @@
1
- /**
2
- * DataDog RUM Instrumentation Provider
3
- *
4
- * Example alternative provider for DataDog Real User Monitoring.
5
- * Demonstrates how to integrate with a third-party instrumentation service.
6
- *
7
- * NOTE: This provider requires `@datadog/browser-rum` to be installed:
8
- * ```bash
9
- * npm install @datadog/browser-rum
10
- * ```
11
- *
12
- * @example
13
- * ```typescript
14
- * const provider = new DataDogInstrumentationProvider();
15
- * await provider.initialize({
16
- * enabled: true,
17
- * sampleRate: 1.0,
18
- * providerSettings: {
19
- * applicationId: 'abc123',
20
- * clientToken: 'pub_xyz',
21
- * site: 'datadoghq.com',
22
- * service: 'pie-players',
23
- * env: 'production'
24
- * }
25
- * });
26
- *
27
- * provider.trackError(new Error('Something went wrong'), {
28
- * component: 'my-component',
29
- * errorType: 'ValidationError'
30
- * });
31
- * ```
32
- */
33
- import { BaseInstrumentationProvider } from "./BaseInstrumentationProvider.js";
34
- /**
35
- * DataDog RUM Instrumentation Provider
36
- *
37
- * Integrates PIE players instrumentation with DataDog Real User Monitoring.
38
- */
39
- export class DataDogInstrumentationProvider extends BaseInstrumentationProvider {
40
- providerId = "datadog";
41
- providerName = "DataDog RUM";
42
- datadogConfig;
43
- /**
44
- * Initialize the DataDog provider
45
- *
46
- * Loads the DataDog RUM SDK and initializes it with the provided configuration.
47
- *
48
- * @param config Instrumentation configuration with DataDog-specific settings
49
- * @throws {Error} If DataDog configuration is invalid or SDK fails to load
50
- */
51
- async initialize(config) {
52
- if (typeof window === "undefined") {
53
- throw new Error("[DataDogProvider] DataDog RUM requires browser environment");
54
- }
55
- this.config = config;
56
- this.datadogConfig = config?.providerSettings;
57
- if (!this.datadogConfig?.applicationId ||
58
- !this.datadogConfig?.clientToken) {
59
- throw new Error("[DataDogProvider] applicationId and clientToken are required in providerSettings");
60
- }
61
- try {
62
- // Dynamically import DataDog RUM SDK
63
- // @ts-expect-error - Optional peer dependency
64
- const { datadogRum } = await import("@datadog/browser-rum");
65
- // Initialize DataDog RUM
66
- datadogRum.init({
67
- applicationId: this.datadogConfig.applicationId,
68
- clientToken: this.datadogConfig.clientToken,
69
- site: this.datadogConfig.site || "datadoghq.com",
70
- service: this.datadogConfig.service || "pie-players",
71
- env: this.datadogConfig.env || "production",
72
- version: this.datadogConfig.version || "1.0.0",
73
- sessionSampleRate: config?.sampleRate !== undefined ? config.sampleRate * 100 : 100,
74
- sessionReplaySampleRate: this.datadogConfig.sessionReplaySampleRate || 0,
75
- trackUserInteractions: this.datadogConfig.trackUserInteractions !== false,
76
- trackResources: true,
77
- trackLongTasks: this.datadogConfig.trackLongTasks !== false,
78
- defaultPrivacyLevel: this.datadogConfig.defaultPrivacyLevel || "mask-user-input",
79
- });
80
- // Start session replay if configured
81
- if (this.datadogConfig.sessionReplaySampleRate &&
82
- this.datadogConfig.sessionReplaySampleRate > 0) {
83
- datadogRum.startSessionReplayRecording();
84
- }
85
- this.initialized = true;
86
- if (this.config?.debug) {
87
- console.log("[DataDogProvider] Initialized successfully", this.datadogConfig);
88
- }
89
- }
90
- catch (error) {
91
- console.error("[DataDogProvider] Failed to initialize:", error);
92
- throw error;
93
- }
94
- }
95
- /**
96
- * Check if provider is ready
97
- *
98
- * @returns true if DataDog is initialized
99
- */
100
- isReady() {
101
- return this.initialized;
102
- }
103
- /**
104
- * Cleanup provider resources
105
- *
106
- * Marks provider as uninitialized. DataDog RUM SDK is not explicitly
107
- * destroyed (no cleanup API available).
108
- */
109
- destroy() {
110
- this.initialized = false;
111
- if (this.config?.debug) {
112
- console.log("[DataDogProvider] Destroyed");
113
- }
114
- }
115
- /**
116
- * Track an error with DataDog
117
- *
118
- * Calls `datadogRum.addError()`
119
- *
120
- * @param error The error to track
121
- * @param attributes Transformed attributes (already filtered and transformed by base class)
122
- */
123
- doTrackError(error, attributes) {
124
- // DataDog requires dynamic import
125
- // @ts-expect-error - Optional peer dependency
126
- import("@datadog/browser-rum").then(({ datadogRum }) => {
127
- datadogRum.addError(error, {
128
- ...attributes,
129
- source: "custom",
130
- });
131
- });
132
- }
133
- /**
134
- * Track a custom event/action with DataDog
135
- *
136
- * Calls `datadogRum.addAction()`
137
- *
138
- * @param eventName Name of the event
139
- * @param attributes Transformed attributes (already filtered and transformed by base class)
140
- */
141
- doTrackEvent(eventName, attributes) {
142
- // DataDog requires dynamic import
143
- // @ts-expect-error - Optional peer dependency
144
- import("@datadog/browser-rum").then(({ datadogRum }) => {
145
- datadogRum.addAction(eventName, attributes);
146
- });
147
- }
148
- /**
149
- * Set user context for session tracking
150
- *
151
- * Calls `datadogRum.setUser()`
152
- *
153
- * @param userId User identifier
154
- * @param attributes Optional user attributes
155
- */
156
- doSetUserContext(userId, attributes) {
157
- // DataDog requires dynamic import
158
- // @ts-expect-error - Optional peer dependency
159
- import("@datadog/browser-rum").then(({ datadogRum }) => {
160
- datadogRum.setUser({
161
- id: userId,
162
- ...attributes,
163
- });
164
- });
165
- }
166
- /**
167
- * Set global custom attributes
168
- *
169
- * Calls `datadogRum.setGlobalContextProperty()` for each attribute.
170
- *
171
- * @param attributes Attributes to set globally
172
- */
173
- doSetGlobalAttributes(attributes) {
174
- // DataDog requires dynamic import
175
- // @ts-expect-error - Optional peer dependency
176
- import("@datadog/browser-rum").then(({ datadogRum }) => {
177
- for (const [key, value] of Object.entries(attributes)) {
178
- datadogRum.setGlobalContextProperty(key, value);
179
- }
180
- });
181
- }
182
- }
183
- //# sourceMappingURL=DataDogInstrumentationProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataDogInstrumentationProvider.js","sourceRoot":"","sources":["../../../src/instrumentation/providers/DataDogInstrumentationProvider.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- /**
2
- * ESM Element Loader
3
- *
4
- * Wraps EsmPieLoader to provide element-level loading abstraction.
5
- * Aggregates elements from multiple items and loads them once using ESM modules.
6
- */
7
- import type { ItemEntity } from "../types/index.js";
8
- import { type ElementLoaderInterface, type ElementMap, type LoadOptions } from "./ElementLoader.js";
9
- /**
10
- * Configuration for ESM element loader
11
- */
12
- export interface EsmElementLoaderConfig {
13
- /** Base URL for ESM CDN (e.g., "https://esm.sh") */
14
- esmCdnUrl: string;
15
- /** Module resolution mode (default: "url") */
16
- moduleResolution?: "url" | "import-map";
17
- /** Optional function to check if debug mode is enabled */
18
- debugEnabled?: () => boolean;
19
- }
20
- /**
21
- * Element loader for ESM (ES Modules) bundles
22
- *
23
- * This loader wraps EsmPieLoader and provides element aggregation capabilities.
24
- * It eliminates duplicate bundle loads when multiple items use the same PIE elements.
25
- * ESM is the modern, preferred loading mechanism with better browser support and features.
26
- *
27
- * @example
28
- * ```typescript
29
- * const loader = new EsmElementLoader({
30
- * esmCdnUrl: 'https://esm.sh'
31
- * });
32
- *
33
- * // Load elements from multiple items at once
34
- * await loader.loadFromItems(section.items, {
35
- * view: 'delivery',
36
- * needsControllers: true
37
- * });
38
- *
39
- * // Or load specific elements directly
40
- * await loader.loadElements({
41
- * 'pie-multiple-choice': '@pie-element/multiple-choice@11.0.1',
42
- * 'pie-hotspot': '@pie-element/hotspot@9.0.0'
43
- * }, {
44
- * view: 'author' // Load author view for editing
45
- * });
46
- * ```
47
- */
48
- export declare class EsmElementLoader implements ElementLoaderInterface {
49
- private loader;
50
- constructor(config: EsmElementLoaderConfig);
51
- /**
52
- * Load elements directly from an element map
53
- *
54
- * @param elements - Map of element tag names to package versions
55
- * @param options - Loading options
56
- */
57
- loadElements(elements: ElementMap, options?: LoadOptions): Promise<void>;
58
- /**
59
- * Extract and load elements from items
60
- *
61
- * Automatically aggregates unique elements from all items and loads them once.
62
- *
63
- * @param items - Array of items to extract elements from
64
- * @param options - Loading options
65
- * @throws Error if element version conflicts are detected
66
- */
67
- loadFromItems(items: ItemEntity[], options?: LoadOptions): Promise<void>;
68
- }
69
- //# sourceMappingURL=EsmElementLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EsmElementLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/EsmElementLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAEN,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAElB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;IAExC,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,gBAAiB,YAAW,sBAAsB;IAC9D,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,sBAAsB;IAQ1C;;;;;OAKG;IACG,YAAY,CACjB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAOhB;;;;;;;;OAQG;IACG,aAAa,CAClB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;CAIhB"}
@@ -1,72 +0,0 @@
1
- /**
2
- * ESM Element Loader
3
- *
4
- * Wraps EsmPieLoader to provide element-level loading abstraction.
5
- * Aggregates elements from multiple items and loads them once using ESM modules.
6
- */
7
- import { EsmPieLoader } from "../pie/esm-loader.js";
8
- import { aggregateElements, } from "./ElementLoader.js";
9
- /**
10
- * Element loader for ESM (ES Modules) bundles
11
- *
12
- * This loader wraps EsmPieLoader and provides element aggregation capabilities.
13
- * It eliminates duplicate bundle loads when multiple items use the same PIE elements.
14
- * ESM is the modern, preferred loading mechanism with better browser support and features.
15
- *
16
- * @example
17
- * ```typescript
18
- * const loader = new EsmElementLoader({
19
- * esmCdnUrl: 'https://esm.sh'
20
- * });
21
- *
22
- * // Load elements from multiple items at once
23
- * await loader.loadFromItems(section.items, {
24
- * view: 'delivery',
25
- * needsControllers: true
26
- * });
27
- *
28
- * // Or load specific elements directly
29
- * await loader.loadElements({
30
- * 'pie-multiple-choice': '@pie-element/multiple-choice@11.0.1',
31
- * 'pie-hotspot': '@pie-element/hotspot@9.0.0'
32
- * }, {
33
- * view: 'author' // Load author view for editing
34
- * });
35
- * ```
36
- */
37
- export class EsmElementLoader {
38
- loader;
39
- constructor(config) {
40
- this.loader = new EsmPieLoader({
41
- cdnBaseUrl: config.esmCdnUrl,
42
- moduleResolution: config.moduleResolution,
43
- debugEnabled: config.debugEnabled,
44
- });
45
- }
46
- /**
47
- * Load elements directly from an element map
48
- *
49
- * @param elements - Map of element tag names to package versions
50
- * @param options - Loading options
51
- */
52
- async loadElements(elements, options) {
53
- await this.loader.load({ elements }, document, {
54
- view: options?.view || "delivery",
55
- loadControllers: options?.needsControllers ?? true,
56
- });
57
- }
58
- /**
59
- * Extract and load elements from items
60
- *
61
- * Automatically aggregates unique elements from all items and loads them once.
62
- *
63
- * @param items - Array of items to extract elements from
64
- * @param options - Loading options
65
- * @throws Error if element version conflicts are detected
66
- */
67
- async loadFromItems(items, options) {
68
- const elements = aggregateElements(items);
69
- await this.loadElements(elements, options);
70
- }
71
- }
72
- //# sourceMappingURL=EsmElementLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EsmElementLoader.js","sourceRoot":"","sources":["../../src/loaders/EsmElementLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EACN,iBAAiB,GAIjB,MAAM,oBAAoB,CAAC;AAgB5B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAe;IAE7B,YAAY,MAA8B;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,YAAY,EAAE,MAAM,CAAC,YAAY;SACjC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CACjB,QAAoB,EACpB,OAAqB;QAErB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE;YAC9C,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,UAAU;YACjC,eAAe,EAAE,OAAO,EAAE,gBAAgB,IAAI,IAAI;SAClD,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAClB,KAAmB,EACnB,OAAqB;QAErB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACD"}
@@ -1,61 +0,0 @@
1
- /**
2
- * IIFE Element Loader
3
- *
4
- * Wraps IifePieLoader to provide element-level loading abstraction.
5
- * Aggregates elements from multiple items and loads them once using IIFE bundles.
6
- */
7
- import type { ItemEntity } from "../types/index.js";
8
- import { type ElementLoaderInterface, type ElementMap, type LoadOptions } from "./ElementLoader.js";
9
- /**
10
- * Configuration for IIFE element loader
11
- */
12
- export interface IifeElementLoaderConfig {
13
- /** Base URL for bundle service (e.g., "https://bundles.pie.org") */
14
- bundleHost: string;
15
- /** Optional function to check if debug mode is enabled */
16
- debugEnabled?: () => boolean;
17
- }
18
- /**
19
- * Element loader for IIFE (Immediately Invoked Function Expression) bundles
20
- *
21
- * This loader wraps IifePieLoader and provides element aggregation capabilities.
22
- * It eliminates duplicate bundle loads when multiple items use the same PIE elements.
23
- *
24
- * @example
25
- * ```typescript
26
- * const loader = new IifeElementLoader({
27
- * bundleHost: 'https://bundles.pie.org'
28
- * });
29
- *
30
- * // Load elements from multiple items at once
31
- * await loader.loadFromItems(section.items);
32
- *
33
- * // Or load specific elements directly
34
- * await loader.loadElements({
35
- * 'pie-multiple-choice': '@pie-element/multiple-choice@11.0.1',
36
- * 'pie-hotspot': '@pie-element/hotspot@9.0.0'
37
- * });
38
- * ```
39
- */
40
- export declare class IifeElementLoader implements ElementLoaderInterface {
41
- private loader;
42
- constructor(config: IifeElementLoaderConfig);
43
- /**
44
- * Load elements directly from an element map
45
- *
46
- * @param elements - Map of element tag names to package versions
47
- * @param options - Loading options
48
- */
49
- loadElements(elements: ElementMap, options?: LoadOptions): Promise<void>;
50
- /**
51
- * Extract and load elements from items
52
- *
53
- * Automatically aggregates unique elements from all items and loads them once.
54
- *
55
- * @param items - Array of items to extract elements from
56
- * @param options - Loading options
57
- * @throws Error if element version conflicts are detected
58
- */
59
- loadFromItems(items: ItemEntity[], options?: LoadOptions): Promise<void>;
60
- }
61
- //# sourceMappingURL=IifeElementLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IifeElementLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/IifeElementLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAEN,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IAEnB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,iBAAkB,YAAW,sBAAsB;IAC/D,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,uBAAuB;IAO3C;;;;;OAKG;IACG,YAAY,CACjB,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;;;OAQG;IACG,aAAa,CAClB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;CAIhB"}
@@ -1,63 +0,0 @@
1
- /**
2
- * IIFE Element Loader
3
- *
4
- * Wraps IifePieLoader to provide element-level loading abstraction.
5
- * Aggregates elements from multiple items and loads them once using IIFE bundles.
6
- */
7
- import { IifePieLoader } from "../pie/iife-loader.js";
8
- import { BundleType } from "../pie/types.js";
9
- import { aggregateElements, } from "./ElementLoader.js";
10
- /**
11
- * Element loader for IIFE (Immediately Invoked Function Expression) bundles
12
- *
13
- * This loader wraps IifePieLoader and provides element aggregation capabilities.
14
- * It eliminates duplicate bundle loads when multiple items use the same PIE elements.
15
- *
16
- * @example
17
- * ```typescript
18
- * const loader = new IifeElementLoader({
19
- * bundleHost: 'https://bundles.pie.org'
20
- * });
21
- *
22
- * // Load elements from multiple items at once
23
- * await loader.loadFromItems(section.items);
24
- *
25
- * // Or load specific elements directly
26
- * await loader.loadElements({
27
- * 'pie-multiple-choice': '@pie-element/multiple-choice@11.0.1',
28
- * 'pie-hotspot': '@pie-element/hotspot@9.0.0'
29
- * });
30
- * ```
31
- */
32
- export class IifeElementLoader {
33
- loader;
34
- constructor(config) {
35
- this.loader = new IifePieLoader({
36
- bundleHost: config.bundleHost,
37
- debugEnabled: config.debugEnabled,
38
- });
39
- }
40
- /**
41
- * Load elements directly from an element map
42
- *
43
- * @param elements - Map of element tag names to package versions
44
- * @param options - Loading options
45
- */
46
- async loadElements(elements, options) {
47
- await this.loader.load({ elements }, document, options?.bundleType || BundleType.clientPlayer, options?.needsControllers ?? true);
48
- }
49
- /**
50
- * Extract and load elements from items
51
- *
52
- * Automatically aggregates unique elements from all items and loads them once.
53
- *
54
- * @param items - Array of items to extract elements from
55
- * @param options - Loading options
56
- * @throws Error if element version conflicts are detected
57
- */
58
- async loadFromItems(items, options) {
59
- const elements = aggregateElements(items);
60
- await this.loadElements(elements, options);
61
- }
62
- }
63
- //# sourceMappingURL=IifeElementLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IifeElementLoader.js","sourceRoot":"","sources":["../../src/loaders/IifeElementLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACN,iBAAiB,GAIjB,MAAM,oBAAoB,CAAC;AAa5B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,iBAAiB;IACrB,MAAM,CAAgB;IAE9B,YAAY,MAA+B;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;SACjC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CACjB,QAAoB,EACpB,OAAqB;QAErB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,EAAE,QAAQ,EAAE,EACZ,QAAQ,EACR,OAAO,EAAE,UAAU,IAAI,UAAU,CAAC,YAAY,EAC9C,OAAO,EAAE,gBAAgB,IAAI,IAAI,CACjC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAClB,KAAmB,EACnB,OAAqB;QAErB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACD"}
@@ -1,104 +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
- export interface EsmLoaderConfig {
14
- cdnBaseUrl: string;
15
- debugEnabled?: () => boolean;
16
- /**
17
- * Module resolution mode.
18
- * - "url" (default): load using fully-qualified CDN URLs
19
- * - "import-map": load using bare specifiers resolved by injected import maps
20
- */
21
- moduleResolution?: "url" | "import-map";
22
- }
23
- /**
24
- * View configuration for element loading
25
- * Maps view names to their subpath and tag suffix
26
- */
27
- export interface ViewConfig {
28
- /** Subpath to import from (e.g., '/author', '/print', '/delivery-mobile') */
29
- subpath: string;
30
- /** Suffix to append to tag name (e.g., '-config', '-print', '') */
31
- tagSuffix: string;
32
- /** Optional fallback view if this view doesn't exist */
33
- fallback?: string;
34
- }
35
- /**
36
- * Options for loading elements
37
- */
38
- export interface EsmLoadOptions {
39
- /**
40
- * View to load (e.g., 'delivery', 'author', 'print', 'delivery-mobile')
41
- * Can be any subpath defined in the element's package.json exports
42
- */
43
- view: string;
44
- /** Whether to also load controller modules */
45
- loadControllers?: boolean;
46
- /** Custom view configuration (overrides built-in views) */
47
- viewConfig?: ViewConfig;
48
- }
49
- /**
50
- * Built-in view configurations
51
- * Extensible - elements can define custom views (e.g., 'delivery-mobile', 'delivery-a11y')
52
- */
53
- export declare const BUILT_IN_VIEWS: Record<string, ViewConfig>;
54
- export declare class EsmPieLoader {
55
- private cdnBaseUrl;
56
- private moduleResolution;
57
- private importMapInjected;
58
- constructor(config: EsmLoaderConfig);
59
- private extractPackageName;
60
- private generateImportMap;
61
- private isJsDelivrNpm;
62
- private resolvePackageUrl;
63
- private resolveControllerUrl;
64
- private resolveSubpathUrl;
65
- private injectImportMap;
66
- private assertRuntimeSupport;
67
- private normalizeImportError;
68
- private resolveElementSpecifier;
69
- private resolveControllerSpecifier;
70
- private loadElement;
71
- getController(tag: string): any | null;
72
- elementsHaveLoaded(elements: Array<{
73
- name: string;
74
- tag: string;
75
- }>): Promise<{
76
- elements: typeof elements;
77
- val: boolean;
78
- }>;
79
- /**
80
- * Load PIE elements with specified view/variant
81
- *
82
- * @param contentConfig - Item config with elements
83
- * @param doc - Document to inject import maps into
84
- * @param options - Loading options (view, controllers, etc.)
85
- *
86
- * @example
87
- * // Load delivery view with controllers
88
- * await loader.load(config, document, { view: 'delivery', loadControllers: true });
89
- *
90
- * @example
91
- * // Load author view (configuration UI)
92
- * await loader.load(config, document, { view: 'author', loadControllers: false });
93
- *
94
- * @example
95
- * // Load custom mobile-optimized view with fallback
96
- * await loader.load(config, document, {
97
- * view: 'delivery-mobile',
98
- * viewConfig: { subpath: '/delivery-mobile', tagSuffix: '', fallback: 'delivery' },
99
- * loadControllers: true
100
- * });
101
- */
102
- load(contentConfig: any, doc: Document, options: EsmLoadOptions): Promise<void>;
103
- }
104
- //# sourceMappingURL=esm-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"esm-loader.d.ts","sourceRoot":"","sources":["../../src/pie/esm-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,UAAU,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAmBrD,CAAC;AAEF,qBAAa,YAAY;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,MAAM,EAAE,eAAe;IAUnC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,iBAAiB;IA0CzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,0BAA0B;YAUpB,WAAW;IAsJlB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAKhC,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;IAUvD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,IAAI,CAChB,aAAa,EAAE,GAAG,EAClB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;CAwDhB"}