@pie-players/pie-players-shared 0.2.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.
- package/dist/config/profile.d.ts +15 -0
- package/dist/config/profile.d.ts.map +1 -0
- package/dist/config/profile.js +27 -0
- package/dist/config/profile.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +12 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/loader.d.ts +36 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/loader.js +133 -0
- package/dist/i18n/loader.js.map +1 -0
- package/dist/i18n/scripts/check-coverage.d.ts +16 -0
- package/dist/i18n/scripts/check-coverage.d.ts.map +1 -0
- package/dist/i18n/scripts/check-coverage.js +262 -0
- package/dist/i18n/scripts/check-coverage.js.map +1 -0
- package/dist/i18n/scripts/scan-hardcoded.d.ts +16 -0
- package/dist/i18n/scripts/scan-hardcoded.d.ts.map +1 -0
- package/dist/i18n/scripts/scan-hardcoded.js +266 -0
- package/dist/i18n/scripts/scan-hardcoded.js.map +1 -0
- package/dist/i18n/simple-i18n.d.ts +69 -0
- package/dist/i18n/simple-i18n.d.ts.map +1 -0
- package/dist/i18n/simple-i18n.js +199 -0
- package/dist/i18n/simple-i18n.js.map +1 -0
- package/dist/i18n/translations/ar/common.json +36 -0
- package/dist/i18n/translations/ar/toolkit.json +48 -0
- package/dist/i18n/translations/ar/tools.json +109 -0
- package/dist/i18n/translations/en/common.json +36 -0
- package/dist/i18n/translations/en/toolkit.json +48 -0
- package/dist/i18n/translations/en/tools.json +109 -0
- package/dist/i18n/translations/es/common.json +36 -0
- package/dist/i18n/translations/es/toolkit.json +48 -0
- package/dist/i18n/translations/es/tools.json +109 -0
- package/dist/i18n/translations/zh/common.json +36 -0
- package/dist/i18n/translations/zh/toolkit.json +48 -0
- package/dist/i18n/translations/zh/tools.json +109 -0
- package/dist/i18n/types.d.ts +58 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/i18n/use-i18n-standalone.svelte.d.ts +87 -0
- package/dist/i18n/use-i18n-standalone.svelte.d.ts.map +1 -0
- package/dist/i18n/use-i18n-standalone.svelte.js +151 -0
- package/dist/i18n/use-i18n-standalone.svelte.js.map +1 -0
- package/dist/i18n/use-i18n.svelte.d.ts +67 -0
- package/dist/i18n/use-i18n.svelte.d.ts.map +1 -0
- package/dist/i18n/use-i18n.svelte.js +144 -0
- package/dist/i18n/use-i18n.svelte.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/index.d.ts +53 -0
- package/dist/instrumentation/index.d.ts.map +1 -0
- package/dist/instrumentation/index.js +53 -0
- package/dist/instrumentation/index.js.map +1 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts +197 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.js +267 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts +106 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js +182 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts +170 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.js +183 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts +86 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js +135 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/index.d.ts +12 -0
- package/dist/instrumentation/providers/index.d.ts.map +1 -0
- package/dist/instrumentation/providers/index.js +12 -0
- package/dist/instrumentation/providers/index.js.map +1 -0
- package/dist/instrumentation/types.d.ts +348 -0
- package/dist/instrumentation/types.d.ts.map +1 -0
- package/dist/instrumentation/types.js +9 -0
- package/dist/instrumentation/types.js.map +1 -0
- package/dist/loader-config.d.ts +76 -0
- package/dist/loader-config.d.ts.map +1 -0
- package/dist/loader-config.js +12 -0
- package/dist/loader-config.js.map +1 -0
- package/dist/loaders/ElementLoader.d.ts +72 -0
- package/dist/loaders/ElementLoader.d.ts.map +1 -0
- package/dist/loaders/ElementLoader.js +52 -0
- package/dist/loaders/ElementLoader.js.map +1 -0
- package/dist/loaders/EsmElementLoader.d.ts +67 -0
- package/dist/loaders/EsmElementLoader.d.ts.map +1 -0
- package/dist/loaders/EsmElementLoader.js +71 -0
- package/dist/loaders/EsmElementLoader.js.map +1 -0
- package/dist/loaders/IifeElementLoader.d.ts +61 -0
- package/dist/loaders/IifeElementLoader.d.ts.map +1 -0
- package/dist/loaders/IifeElementLoader.js +63 -0
- package/dist/loaders/IifeElementLoader.js.map +1 -0
- package/dist/loaders/index.d.ts +28 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +25 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/object/index.d.ts +12 -0
- package/dist/object/index.d.ts.map +1 -0
- package/dist/object/index.js +40 -0
- package/dist/object/index.js.map +1 -0
- package/dist/pie/asset-handler.d.ts +64 -0
- package/dist/pie/asset-handler.d.ts.map +1 -0
- package/dist/pie/asset-handler.js +238 -0
- package/dist/pie/asset-handler.js.map +1 -0
- package/dist/pie/component-context.d.ts +22 -0
- package/dist/pie/component-context.d.ts.map +1 -0
- package/dist/pie/component-context.js +30 -0
- package/dist/pie/component-context.js.map +1 -0
- package/dist/pie/config.d.ts +39 -0
- package/dist/pie/config.d.ts.map +1 -0
- package/dist/pie/config.js +174 -0
- package/dist/pie/config.js.map +1 -0
- package/dist/pie/configure-initialization.d.ts +35 -0
- package/dist/pie/configure-initialization.d.ts.map +1 -0
- package/dist/pie/configure-initialization.js +141 -0
- package/dist/pie/configure-initialization.js.map +1 -0
- package/dist/pie/esm-loader.d.ts +93 -0
- package/dist/pie/esm-loader.d.ts.map +1 -0
- package/dist/pie/esm-loader.js +308 -0
- package/dist/pie/esm-loader.js.map +1 -0
- package/dist/pie/iife-loader.d.ts +76 -0
- package/dist/pie/iife-loader.d.ts.map +1 -0
- package/dist/pie/iife-loader.js +303 -0
- package/dist/pie/iife-loader.js.map +1 -0
- package/dist/pie/index.d.ts +31 -0
- package/dist/pie/index.d.ts.map +1 -0
- package/dist/pie/index.js +34 -0
- package/dist/pie/index.js.map +1 -0
- package/dist/pie/initialization.d.ts +40 -0
- package/dist/pie/initialization.d.ts.map +1 -0
- package/dist/pie/initialization.js +349 -0
- package/dist/pie/initialization.js.map +1 -0
- package/dist/pie/logger.d.ts +64 -0
- package/dist/pie/logger.d.ts.map +1 -0
- package/dist/pie/logger.js +45 -0
- package/dist/pie/logger.js.map +1 -0
- package/dist/pie/math-rendering.d.ts +69 -0
- package/dist/pie/math-rendering.d.ts.map +1 -0
- package/dist/pie/math-rendering.js +98 -0
- package/dist/pie/math-rendering.js.map +1 -0
- package/dist/pie/overrides.d.ts +43 -0
- package/dist/pie/overrides.d.ts.map +1 -0
- package/dist/pie/overrides.js +146 -0
- package/dist/pie/overrides.js.map +1 -0
- package/dist/pie/player-initializer.d.ts +55 -0
- package/dist/pie/player-initializer.d.ts.map +1 -0
- package/dist/pie/player-initializer.js +123 -0
- package/dist/pie/player-initializer.js.map +1 -0
- package/dist/pie/registry.d.ts +11 -0
- package/dist/pie/registry.d.ts.map +1 -0
- package/dist/pie/registry.js +21 -0
- package/dist/pie/registry.js.map +1 -0
- package/dist/pie/resource-monitor.d.ts +208 -0
- package/dist/pie/resource-monitor.d.ts.map +1 -0
- package/dist/pie/resource-monitor.js +969 -0
- package/dist/pie/resource-monitor.js.map +1 -0
- package/dist/pie/scoring.d.ts +17 -0
- package/dist/pie/scoring.d.ts.map +1 -0
- package/dist/pie/scoring.js +84 -0
- package/dist/pie/scoring.js.map +1 -0
- package/dist/pie/types.d.ts +136 -0
- package/dist/pie/types.d.ts.map +1 -0
- package/dist/pie/types.js +52 -0
- package/dist/pie/types.js.map +1 -0
- package/dist/pie/updates.d.ts +20 -0
- package/dist/pie/updates.d.ts.map +1 -0
- package/dist/pie/updates.js +175 -0
- package/dist/pie/updates.js.map +1 -0
- package/dist/pie/use-resource-monitor.svelte.d.ts +56 -0
- package/dist/pie/use-resource-monitor.svelte.d.ts.map +1 -0
- package/dist/pie/use-resource-monitor.svelte.js +117 -0
- package/dist/pie/use-resource-monitor.svelte.js.map +1 -0
- package/dist/pie/utils.d.ts +44 -0
- package/dist/pie/utils.d.ts.map +1 -0
- package/dist/pie/utils.js +74 -0
- package/dist/pie/utils.js.map +1 -0
- package/dist/types/custom-elements.d.ts +183 -0
- package/dist/types/custom-elements.d.ts.map +1 -0
- package/dist/types/custom-elements.js +8 -0
- package/dist/types/custom-elements.js.map +1 -0
- package/dist/types/index.d.ts +761 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +120 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/search.d.ts +105 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +12 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/transform.d.ts +48 -0
- package/dist/types/transform.d.ts.map +1 -0
- package/dist/types/transform.js +21 -0
- package/dist/types/transform.js.map +1 -0
- package/dist/ui/focus-trap.d.ts +10 -0
- package/dist/ui/focus-trap.d.ts.map +1 -0
- package/dist/ui/focus-trap.js +30 -0
- package/dist/ui/focus-trap.js.map +1 -0
- package/dist/ui/safe-storage.d.ts +3 -0
- package/dist/ui/safe-storage.d.ts.map +1 -0
- package/dist/ui/safe-storage.js +21 -0
- package/dist/ui/safe-storage.js.map +1 -0
- package/package.json +118 -0
- package/src/components/PieItemPlayer.svelte +604 -0
- package/src/components/PiePreviewLayout.svelte +144 -0
- package/src/components/PiePreviewToggle.svelte +110 -0
- package/src/components/PieSpinner.svelte +85 -0
- package/src/components/ToolSettingsButton.svelte +31 -0
- package/src/components/ToolSettingsPanel.svelte +90 -0
- package/src/components/index.ts +6 -0
- package/src/i18n/README.md +223 -0
- package/src/i18n/index.ts +26 -0
- package/src/i18n/loader.ts +156 -0
- package/src/i18n/scripts/check-coverage.ts +345 -0
- package/src/i18n/scripts/scan-hardcoded.ts +342 -0
- package/src/i18n/simple-i18n.ts +236 -0
- package/src/i18n/translations/ar/common.json +36 -0
- package/src/i18n/translations/ar/toolkit.json +48 -0
- package/src/i18n/translations/ar/tools.json +109 -0
- package/src/i18n/translations/en/common.json +36 -0
- package/src/i18n/translations/en/toolkit.json +48 -0
- package/src/i18n/translations/en/tools.json +109 -0
- package/src/i18n/translations/es/common.json +36 -0
- package/src/i18n/translations/es/toolkit.json +48 -0
- package/src/i18n/translations/es/tools.json +109 -0
- package/src/i18n/translations/zh/common.json +36 -0
- package/src/i18n/translations/zh/toolkit.json +48 -0
- package/src/i18n/translations/zh/tools.json +109 -0
- package/src/i18n/types.ts +66 -0
- package/src/i18n/use-i18n-standalone.svelte.ts +184 -0
- package/src/i18n/use-i18n.svelte.ts +163 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-rendering.js","sourceRoot":"","sources":["../../src/pie/math-rendering.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sCAAsC;AAEtC,OAAO,EAEN,oBAAoB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,cAAiC;IAEjC,sBAAsB;IACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO;IACR,CAAC;IAED,6BAA6B;IAC7B,IAAI,oBAAoB,CAAC,aAAa,EAAE,EAAE,CAAC;QAC1C,OAAO;IACR,CAAC;IAED,IAAI,CAAC;QACJ,uEAAuE;QACvE,MAAM,QAAQ,GAAG,cAAc,IAAI,CAAC,MAAM,qBAAqB,EAAE,CAAC,CAAC;QAEnE,yDAAyD;QACzD,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CACV,wEAAwE,CACxE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CACZ,wDAAwD,EACxD,KAAK,CACL,CAAC;QACF,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAAC,QAA0B;IACzD,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC;IAEpD,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC3D,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PIE element override helpers.
|
|
3
|
+
*
|
|
4
|
+
* Used to:
|
|
5
|
+
* - parse overrides from URL params
|
|
6
|
+
* - apply overrides to a PIE config (server-side or client-side)
|
|
7
|
+
* - build URLs/params for sharing override state
|
|
8
|
+
*/
|
|
9
|
+
export type ElementOverrides = Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Apply element overrides to a PIE config
|
|
12
|
+
* @param config The original PIE config
|
|
13
|
+
* @param elementOverrides Map of element packages to override versions
|
|
14
|
+
* @returns Updated config with overridden elements
|
|
15
|
+
*/
|
|
16
|
+
export declare function applyElementOverrides(config: any, elementOverrides: ElementOverrides): any;
|
|
17
|
+
/**
|
|
18
|
+
* Parse element overrides from URL search params.
|
|
19
|
+
* @returns Map of element package names to versions
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseElementOverridesFromUrl(searchParams: URLSearchParams): ElementOverrides;
|
|
22
|
+
/**
|
|
23
|
+
* Parse element overrides from current window URL (client-only).
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseElementOverridesFromCurrentUrl(): ElementOverrides;
|
|
26
|
+
/**
|
|
27
|
+
* Generate a URL parameter string for an element override
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatElementOverrideParam(packageName: string, version: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a URL that preserves existing overrides and adds or updates a new one.
|
|
32
|
+
*/
|
|
33
|
+
export declare function addOrUpdateOverrideInUrl(url: URL, packageName: string, version: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Extract package information from a package string.
|
|
36
|
+
* Intended for UI display.
|
|
37
|
+
*/
|
|
38
|
+
export declare function extractPackageInfo(packageStr: string): {
|
|
39
|
+
name: string;
|
|
40
|
+
version: string;
|
|
41
|
+
displayName: string;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=overrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/pie/overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,GAAG,EACX,gBAAgB,EAAE,gBAAgB,OAyElC;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,YAAY,EAAE,eAAe,GAC3B,gBAAgB,CAkBlB;AAED;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,gBAAgB,CAOtE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACb,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACb,MAAM,CAeR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM;;;;EAgBpD"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PIE element override helpers.
|
|
3
|
+
*
|
|
4
|
+
* Used to:
|
|
5
|
+
* - parse overrides from URL params
|
|
6
|
+
* - apply overrides to a PIE config (server-side or client-side)
|
|
7
|
+
* - build URLs/params for sharing override state
|
|
8
|
+
*/
|
|
9
|
+
import { cloneDeep } from "../object";
|
|
10
|
+
import { parsePackageName } from "./utils";
|
|
11
|
+
/**
|
|
12
|
+
* Apply element overrides to a PIE config
|
|
13
|
+
* @param config The original PIE config
|
|
14
|
+
* @param elementOverrides Map of element packages to override versions
|
|
15
|
+
* @returns Updated config with overridden elements
|
|
16
|
+
*/
|
|
17
|
+
export function applyElementOverrides(config, elementOverrides) {
|
|
18
|
+
if (!config ||
|
|
19
|
+
!elementOverrides ||
|
|
20
|
+
Object.keys(elementOverrides).length === 0) {
|
|
21
|
+
return config;
|
|
22
|
+
}
|
|
23
|
+
// Create a deep copy of the config to avoid mutating the original
|
|
24
|
+
const updatedConfig = cloneDeep(config);
|
|
25
|
+
// Check if there are elements to override
|
|
26
|
+
if (!updatedConfig.elements) {
|
|
27
|
+
return updatedConfig;
|
|
28
|
+
}
|
|
29
|
+
// Process each override
|
|
30
|
+
for (const [packageName, version] of Object.entries(elementOverrides)) {
|
|
31
|
+
let matched = false;
|
|
32
|
+
// Find the element key that uses this package
|
|
33
|
+
for (const [elementKey, elementPackageValue] of Object.entries(updatedConfig.elements)) {
|
|
34
|
+
const elementPackageStr = String(elementPackageValue);
|
|
35
|
+
let basePackageName = "";
|
|
36
|
+
try {
|
|
37
|
+
basePackageName = parsePackageName(elementPackageStr).name;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
console.warn(`[pie/overrides] Couldn't parse element package value: ${elementPackageStr}`);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (basePackageName === packageName) {
|
|
44
|
+
matched = true;
|
|
45
|
+
// Create a new element key with the specified version
|
|
46
|
+
const versionNumber = String(version).replace(/[^0-9.-]/g, "");
|
|
47
|
+
const parts = String(elementKey).split("--version-");
|
|
48
|
+
const baseElementName = parts[0];
|
|
49
|
+
const newElementKey = `${baseElementName}--version-${versionNumber.replace(/\./g, "-")}`;
|
|
50
|
+
// Update the elements map
|
|
51
|
+
updatedConfig.elements[newElementKey] = `${packageName}@${version}`;
|
|
52
|
+
// If the key changed, update markup to reference the new key
|
|
53
|
+
if (newElementKey !== elementKey) {
|
|
54
|
+
if (updatedConfig.markup) {
|
|
55
|
+
updatedConfig.markup = String(updatedConfig.markup).replace(new RegExp(elementKey, "g"), newElementKey);
|
|
56
|
+
}
|
|
57
|
+
// Remove the old element if we created a new one with a different key
|
|
58
|
+
delete updatedConfig.elements[elementKey];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!matched) {
|
|
63
|
+
console.debug(`[pie/overrides] No matching element found for package ${packageName}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return updatedConfig;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Parse element overrides from URL search params.
|
|
70
|
+
* @returns Map of element package names to versions
|
|
71
|
+
*/
|
|
72
|
+
export function parseElementOverridesFromUrl(searchParams) {
|
|
73
|
+
const overrides = {};
|
|
74
|
+
// Look for parameters with the pattern pie-overrides[packageName]=version
|
|
75
|
+
for (const [key, value] of searchParams.entries()) {
|
|
76
|
+
if (key.startsWith("pie-overrides[") && key.endsWith("]")) {
|
|
77
|
+
// Extract the package name from between the brackets
|
|
78
|
+
const packageName = key.substring(14, key.length - 1);
|
|
79
|
+
// Ensure the package name format is correct (including @)
|
|
80
|
+
const normalizedPackageName = packageName.startsWith("@")
|
|
81
|
+
? packageName
|
|
82
|
+
: `@${packageName}`;
|
|
83
|
+
overrides[normalizedPackageName] = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return overrides;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Parse element overrides from current window URL (client-only).
|
|
90
|
+
*/
|
|
91
|
+
export function parseElementOverridesFromCurrentUrl() {
|
|
92
|
+
if (typeof window === "undefined") {
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
95
|
+
const url = new URL(window.location.href);
|
|
96
|
+
return parseElementOverridesFromUrl(url.searchParams);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Generate a URL parameter string for an element override
|
|
100
|
+
*/
|
|
101
|
+
export function formatElementOverrideParam(packageName, version) {
|
|
102
|
+
// Normalize the package name for the parameter key (strip leading @)
|
|
103
|
+
const normalizedPackageName = packageName.startsWith("@")
|
|
104
|
+
? packageName.substring(1)
|
|
105
|
+
: packageName;
|
|
106
|
+
return `pie-overrides[${normalizedPackageName}]=${encodeURIComponent(version)}`;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Creates a URL that preserves existing overrides and adds or updates a new one.
|
|
110
|
+
*/
|
|
111
|
+
export function addOrUpdateOverrideInUrl(url, packageName, version) {
|
|
112
|
+
const params = new URLSearchParams(url.search);
|
|
113
|
+
// Remove @ if present for consistency in URL
|
|
114
|
+
const normalizedPackageName = packageName.startsWith("@")
|
|
115
|
+
? packageName.substring(1)
|
|
116
|
+
: packageName;
|
|
117
|
+
// Set the new override
|
|
118
|
+
params.set(`pie-overrides[${normalizedPackageName}]`, version);
|
|
119
|
+
// Create the new URL
|
|
120
|
+
const newUrl = new URL(url.pathname, url.origin);
|
|
121
|
+
newUrl.search = params.toString();
|
|
122
|
+
return newUrl.toString();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Extract package information from a package string.
|
|
126
|
+
* Intended for UI display.
|
|
127
|
+
*/
|
|
128
|
+
export function extractPackageInfo(packageStr) {
|
|
129
|
+
try {
|
|
130
|
+
const parsed = parsePackageName(String(packageStr));
|
|
131
|
+
return {
|
|
132
|
+
name: parsed.name,
|
|
133
|
+
version: parsed.version || "unknown",
|
|
134
|
+
displayName: parsed.name.split("/").pop() || parsed.name,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
const s = String(packageStr);
|
|
139
|
+
return {
|
|
140
|
+
name: s,
|
|
141
|
+
version: "unknown",
|
|
142
|
+
displayName: s.split("/").pop() || s,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/pie/overrides.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared PIE player initialization logic
|
|
3
|
+
* Used by both pie-inline-player and pie-fixed-player
|
|
4
|
+
*/
|
|
5
|
+
export interface PiePlayerConfig {
|
|
6
|
+
env: any;
|
|
7
|
+
addCorrectResponse: boolean;
|
|
8
|
+
session: any[];
|
|
9
|
+
externalStyleUrls?: string;
|
|
10
|
+
customClassname?: string;
|
|
11
|
+
containerClass?: string;
|
|
12
|
+
passageContainerClass?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ItemData {
|
|
15
|
+
item: {
|
|
16
|
+
config: any;
|
|
17
|
+
};
|
|
18
|
+
passage?: {
|
|
19
|
+
config: {
|
|
20
|
+
markup?: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface PiePlayerElements {
|
|
25
|
+
playerEl: HTMLElement;
|
|
26
|
+
passageMarkup: string | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Initialize PIE player with item data
|
|
30
|
+
* This is the SAME for both inline and fixed players
|
|
31
|
+
*/
|
|
32
|
+
export declare function initializePiePlayer(itemData: ItemData, config: PiePlayerConfig, elements: PiePlayerElements): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Extract passage markup from item data
|
|
35
|
+
*/
|
|
36
|
+
export declare function extractPassageMarkup(itemData: ItemData): string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Ensure pie-player web component is loaded
|
|
39
|
+
*/
|
|
40
|
+
export declare function ensurePiePlayerLoaded(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Build event listeners map for PIE elements
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildEventListenersMap(config: any, onSessionChanged: (detail: any) => void): Record<string, Record<string, (e: CustomEvent) => void>> | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Build URL parameters for API request
|
|
47
|
+
* SHARED by both inline and fixed players
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildApiParams(env: any, addCorrectResponse: boolean): URLSearchParams;
|
|
50
|
+
/**
|
|
51
|
+
* Fetch item data from API
|
|
52
|
+
* SHARED by both inline and fixed players
|
|
53
|
+
*/
|
|
54
|
+
export declare function fetchItemData(apiBaseUrl: string, itemId: string, token: string, endpoint: "packaged" | "data-only", env: any, addCorrectResponse: boolean, signal?: AbortSignal): Promise<any>;
|
|
55
|
+
//# sourceMappingURL=player-initializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-initializer.d.ts","sourceRoot":"","sources":["../../src/pie/player-initializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,GAAG,CAAC;IACT,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE;QACL,MAAM,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,OAAO,CAAC,EAAE;QACT,MAAM,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;KACF,CAAC;CACF;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACxC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,GAAG,EACX,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,GAAG,SAAS,CAatE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,GAAG,EAAE,GAAG,EACR,kBAAkB,EAAE,OAAO,GACzB,eAAe,CAQjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,UAAU,GAAG,WAAW,EAClC,GAAG,EAAE,GAAG,EACR,kBAAkB,EAAE,OAAO,EAC3B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,GAAG,CAAC,CAqBd"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared PIE player initialization logic
|
|
3
|
+
* Used by both pie-inline-player and pie-fixed-player
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Initialize PIE player with item data
|
|
7
|
+
* This is the SAME for both inline and fixed players
|
|
8
|
+
*/
|
|
9
|
+
export async function initializePiePlayer(itemData, config, elements) {
|
|
10
|
+
const { playerEl } = elements;
|
|
11
|
+
if (!itemData.item?.config || !playerEl) {
|
|
12
|
+
throw new Error("Missing item config or player element");
|
|
13
|
+
}
|
|
14
|
+
// Ensure pie-player is loaded
|
|
15
|
+
await ensurePiePlayerLoaded();
|
|
16
|
+
const defaultEnv = config.env || { mode: "evaluate", role: "instructor" };
|
|
17
|
+
// Configure player element
|
|
18
|
+
playerEl.config = itemData.item.config;
|
|
19
|
+
playerEl.env = defaultEnv;
|
|
20
|
+
const shouldShowCorrect = !!(config.addCorrectResponse ||
|
|
21
|
+
(defaultEnv.mode === "evaluate" && defaultEnv.role === "instructor"));
|
|
22
|
+
playerEl.addCorrectResponse = shouldShowCorrect;
|
|
23
|
+
// Forward additional properties
|
|
24
|
+
playerEl.session = {
|
|
25
|
+
id: "",
|
|
26
|
+
data: Array.isArray(config.session) ? config.session : [],
|
|
27
|
+
};
|
|
28
|
+
if (config.externalStyleUrls) {
|
|
29
|
+
playerEl.externalStyleUrls = config.externalStyleUrls;
|
|
30
|
+
}
|
|
31
|
+
if (config.customClassname) {
|
|
32
|
+
playerEl.customClassname = config.customClassname;
|
|
33
|
+
}
|
|
34
|
+
if (config.containerClass) {
|
|
35
|
+
playerEl.containerClass = config.containerClass;
|
|
36
|
+
}
|
|
37
|
+
if (config.passageContainerClass) {
|
|
38
|
+
playerEl.passageContainerClass = config.passageContainerClass;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Extract passage markup from item data
|
|
43
|
+
*/
|
|
44
|
+
export function extractPassageMarkup(itemData) {
|
|
45
|
+
return itemData.passage?.config?.markup || null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Ensure pie-player web component is loaded
|
|
49
|
+
*/
|
|
50
|
+
export async function ensurePiePlayerLoaded() {
|
|
51
|
+
if (customElements.get("pie-player"))
|
|
52
|
+
return;
|
|
53
|
+
const url = "https://cdn.jsdelivr.net/npm/@pie-players/pie-player-components@latest/dist/pie-player-components/pie-player-components.esm.js";
|
|
54
|
+
await new Promise((resolve, reject) => {
|
|
55
|
+
const existing = document.querySelector("script[data-pie-player]");
|
|
56
|
+
if (existing) {
|
|
57
|
+
existing.addEventListener("load", () => resolve());
|
|
58
|
+
existing.addEventListener("error", () => reject(new Error("failed to load pie-player")));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const s = document.createElement("script");
|
|
62
|
+
s.type = "module";
|
|
63
|
+
s.dataset.piePlayer = "true";
|
|
64
|
+
s.src = url;
|
|
65
|
+
s.addEventListener("load", () => resolve());
|
|
66
|
+
s.addEventListener("error", () => reject(new Error("failed to load pie-player")));
|
|
67
|
+
document.head.appendChild(s);
|
|
68
|
+
});
|
|
69
|
+
await customElements.whenDefined("pie-player");
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Build event listeners map for PIE elements
|
|
73
|
+
*/
|
|
74
|
+
export function buildEventListenersMap(config, onSessionChanged) {
|
|
75
|
+
if (!config?.elements)
|
|
76
|
+
return undefined;
|
|
77
|
+
const listeners = {};
|
|
78
|
+
Object.keys(config.elements).forEach((elName) => {
|
|
79
|
+
listeners[elName] = {
|
|
80
|
+
"session-changed": (e) => onSessionChanged(e.detail),
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
return listeners;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build URL parameters for API request
|
|
87
|
+
* SHARED by both inline and fixed players
|
|
88
|
+
*/
|
|
89
|
+
export function buildApiParams(env, addCorrectResponse) {
|
|
90
|
+
const params = new URLSearchParams();
|
|
91
|
+
if (env && typeof env === "object") {
|
|
92
|
+
if (env.mode)
|
|
93
|
+
params.set("mode", String(env.mode));
|
|
94
|
+
if (env.role)
|
|
95
|
+
params.set("role", String(env.role));
|
|
96
|
+
}
|
|
97
|
+
if (addCorrectResponse)
|
|
98
|
+
params.set("addCorrectResponse", "true");
|
|
99
|
+
return params;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Fetch item data from API
|
|
103
|
+
* SHARED by both inline and fixed players
|
|
104
|
+
*/
|
|
105
|
+
export async function fetchItemData(apiBaseUrl, itemId, token, endpoint, env, addCorrectResponse, signal) {
|
|
106
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
107
|
+
throw new Error("PIE initialization must run in browser");
|
|
108
|
+
}
|
|
109
|
+
const params = buildApiParams(env, addCorrectResponse);
|
|
110
|
+
const apiUrl = `${apiBaseUrl}/api/item/${itemId}/${endpoint}${params.toString() ? `?${params.toString()}` : ""}`;
|
|
111
|
+
const response = await fetch(apiUrl, {
|
|
112
|
+
headers: {
|
|
113
|
+
Authorization: `Bearer ${token}`,
|
|
114
|
+
Accept: "application/json",
|
|
115
|
+
},
|
|
116
|
+
signal,
|
|
117
|
+
});
|
|
118
|
+
if (!response.ok) {
|
|
119
|
+
throw new Error(`Failed to fetch item data: ${response.statusText}`);
|
|
120
|
+
}
|
|
121
|
+
return await response.json();
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=player-initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-initializer.js","sourceRoot":"","sources":["../../src/pie/player-initializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,QAAkB,EAClB,MAAuB,EACvB,QAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAE9B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC1D,CAAC;IAED,8BAA8B;IAC9B,MAAM,qBAAqB,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAE1E,2BAA2B;IAC1B,QAAgB,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/C,QAAgB,CAAC,GAAG,GAAG,UAAU,CAAC;IAEnC,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAC3B,MAAM,CAAC,kBAAkB;QACzB,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,CAAC,CACpE,CAAC;IACD,QAAgB,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;IAEzD,gCAAgC;IAC/B,QAAgB,CAAC,OAAO,GAAG;QAC3B,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KACzD,CAAC;IAEF,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,QAAgB,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,QAAgB,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,QAAgB,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,QAAgB,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACxE,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkB;IACtD,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IAC1C,IAAI,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO;IAE7C,MAAM,GAAG,GACR,gIAAgI,CAAC;IAElI,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CACtC,yBAAyB,CACG,CAAC;QAC9B,IAAI,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CACvC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAC9C,CAAC;YACF,OAAO;QACR,CAAC;QAED,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;QAClB,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAChC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAC9C,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAAW,EACX,gBAAuC;IAEvC,IAAI,CAAC,MAAM,EAAE,QAAQ;QAAE,OAAO,SAAS,CAAC;IAExC,MAAM,SAAS,GAGX,EAAE,CAAC;IACP,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/C,SAAS,CAAC,MAAM,CAAC,GAAG;YACnB,iBAAiB,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;SACjE,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC7B,GAAQ,EACR,kBAA2B;IAE3B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,kBAAkB;QAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,UAAkB,EAClB,MAAc,EACd,KAAa,EACb,QAAkC,EAClC,GAAQ,EACR,kBAA2B,EAC3B,MAAoB;IAEpB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,GAAG,UAAU,aAAa,MAAM,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEjH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;QACpC,OAAO,EAAE;YACR,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,MAAM,EAAE,kBAAkB;SAC1B;QACD,MAAM;KACN,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PIE Registry Module
|
|
3
|
+
*
|
|
4
|
+
* Manages the global PIE registry that tracks loaded elements.
|
|
5
|
+
*/
|
|
6
|
+
import type { PieRegistry } from "./types";
|
|
7
|
+
/**
|
|
8
|
+
* Get or create the global PIE registry
|
|
9
|
+
*/
|
|
10
|
+
export declare const pieRegistry: () => PieRegistry;
|
|
11
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/pie/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,WAS9B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PIE Registry Module
|
|
3
|
+
*
|
|
4
|
+
* Manages the global PIE registry that tracks loaded elements.
|
|
5
|
+
*/
|
|
6
|
+
import { isPieRegistryAvailable } from "./types";
|
|
7
|
+
/**
|
|
8
|
+
* Get or create the global PIE registry
|
|
9
|
+
*/
|
|
10
|
+
export const pieRegistry = () => {
|
|
11
|
+
let registry;
|
|
12
|
+
if (isPieRegistryAvailable(window)) {
|
|
13
|
+
registry = window.PIE_REGISTRY;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
registry = {};
|
|
17
|
+
window.PIE_REGISTRY = registry;
|
|
18
|
+
}
|
|
19
|
+
return registry;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/pie/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAgB,EAAE;IAC5C,IAAI,QAAqB,CAAC;IAC1B,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;IAChC,CAAC;SAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;QACb,MAAc,CAAC,YAAY,GAAG,QAAQ,CAAC;IACzC,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource Monitor for PIE Element Assets
|
|
3
|
+
*
|
|
4
|
+
* Tracks and monitors loading of resources (audio, video, images) embedded
|
|
5
|
+
* in PIE element content without requiring changes to PIE elements.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Tracks resource load timing with PerformanceObserver
|
|
9
|
+
* - Detects and retries failed resource loads
|
|
10
|
+
* - Sends instrumentation to New Relic
|
|
11
|
+
* - Works with all resource types (audio, video, img, link)
|
|
12
|
+
*/
|
|
13
|
+
import type { InstrumentationProvider } from "../instrumentation/types";
|
|
14
|
+
import type { ComponentContext } from "./component-context";
|
|
15
|
+
export type ResourceMonitorConfig = {
|
|
16
|
+
/**
|
|
17
|
+
* Enable tracking page actions/events
|
|
18
|
+
*
|
|
19
|
+
* When true, resource monitoring events will be sent to the instrumentation provider.
|
|
20
|
+
*/
|
|
21
|
+
trackPageActions?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Instrumentation provider for tracking events and errors
|
|
24
|
+
*
|
|
25
|
+
* Optional. If not provided, defaults to NewRelicInstrumentationProvider.
|
|
26
|
+
* The provider handles instrumentation gracefully - if New Relic is not available,
|
|
27
|
+
* it will simply not track events (no errors thrown).
|
|
28
|
+
*
|
|
29
|
+
* To use a different provider (DataDog, Dynatrace, etc.), pass it here:
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const provider = new DataDogInstrumentationProvider();
|
|
34
|
+
* await provider.initialize({ providerSettings: { ... } });
|
|
35
|
+
*
|
|
36
|
+
* const monitor = new ResourceMonitor({
|
|
37
|
+
* trackPageActions: true,
|
|
38
|
+
* instrumentationProvider: provider
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
instrumentationProvider?: InstrumentationProvider;
|
|
43
|
+
/**
|
|
44
|
+
* Maximum number of retry attempts for failed resources
|
|
45
|
+
* Default: 3
|
|
46
|
+
*/
|
|
47
|
+
maxRetries?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Initial delay in ms before first retry
|
|
50
|
+
* Default: 500
|
|
51
|
+
*/
|
|
52
|
+
initialRetryDelay?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Maximum delay in ms between retries
|
|
55
|
+
* Default: 5000
|
|
56
|
+
*/
|
|
57
|
+
maxRetryDelay?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Enable debug logging
|
|
60
|
+
*/
|
|
61
|
+
debug?: boolean;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Event detail for resource monitoring events
|
|
65
|
+
*/
|
|
66
|
+
export interface ResourceMonitorEventDetail {
|
|
67
|
+
url: string;
|
|
68
|
+
resourceType: string;
|
|
69
|
+
duration?: number;
|
|
70
|
+
size?: number;
|
|
71
|
+
retryCount: number;
|
|
72
|
+
maxRetries: number;
|
|
73
|
+
error?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Tracks resource loads and provides retry capability
|
|
77
|
+
*/
|
|
78
|
+
export declare class ResourceMonitor {
|
|
79
|
+
private config;
|
|
80
|
+
private logger;
|
|
81
|
+
private observer;
|
|
82
|
+
private mutationObserver;
|
|
83
|
+
private errorHandler;
|
|
84
|
+
private retryAttempts;
|
|
85
|
+
private container;
|
|
86
|
+
private isBrowser;
|
|
87
|
+
private containerResources;
|
|
88
|
+
private provider;
|
|
89
|
+
constructor(config?: ResourceMonitorConfig);
|
|
90
|
+
/**
|
|
91
|
+
* Check if debug logging is enabled (dynamically checks window.PIE_DEBUG)
|
|
92
|
+
*/
|
|
93
|
+
private isDebugEnabled;
|
|
94
|
+
/**
|
|
95
|
+
* Truncate URL for display in logs
|
|
96
|
+
*/
|
|
97
|
+
private truncateUrl;
|
|
98
|
+
/**
|
|
99
|
+
* Strip retry parameters from URL to get the original URL
|
|
100
|
+
*/
|
|
101
|
+
private getOriginalUrl;
|
|
102
|
+
/**
|
|
103
|
+
* Track event with instrumentation provider if enabled
|
|
104
|
+
*/
|
|
105
|
+
private trackInstrumentationEvent;
|
|
106
|
+
/**
|
|
107
|
+
* Track error with instrumentation provider if enabled
|
|
108
|
+
*/
|
|
109
|
+
private trackInstrumentationError;
|
|
110
|
+
/**
|
|
111
|
+
* Start monitoring resources in the given container
|
|
112
|
+
*/
|
|
113
|
+
start(container: HTMLElement): void;
|
|
114
|
+
/**
|
|
115
|
+
* Stop monitoring and clean up
|
|
116
|
+
*/
|
|
117
|
+
stop(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Set up MutationObserver to track DOM changes within container
|
|
120
|
+
* This allows us to know which resources belong to our container
|
|
121
|
+
*/
|
|
122
|
+
private setupMutationObserver;
|
|
123
|
+
/**
|
|
124
|
+
* Scan an element and its descendants for resources
|
|
125
|
+
*/
|
|
126
|
+
private scanElementForResources;
|
|
127
|
+
/**
|
|
128
|
+
* Initial scan of container for existing resources
|
|
129
|
+
*/
|
|
130
|
+
private scanContainerResources;
|
|
131
|
+
/**
|
|
132
|
+
* Set up PerformanceObserver to track resource loading timing
|
|
133
|
+
*/
|
|
134
|
+
private setupPerformanceObserver;
|
|
135
|
+
/**
|
|
136
|
+
* Handle resource timing entry
|
|
137
|
+
*/
|
|
138
|
+
private handleResourceTiming;
|
|
139
|
+
/**
|
|
140
|
+
* Handle successful resource load
|
|
141
|
+
*/
|
|
142
|
+
private handleSuccessfulLoad;
|
|
143
|
+
/**
|
|
144
|
+
* Handle failed resource load
|
|
145
|
+
*/
|
|
146
|
+
private handleFailedLoad;
|
|
147
|
+
/**
|
|
148
|
+
* Check if resource is relevant to our container
|
|
149
|
+
* Uses container-scoped tracking via MutationObserver
|
|
150
|
+
* Also retroactively checks if resource belongs to container if not yet tracked
|
|
151
|
+
*/
|
|
152
|
+
private isRelevantResource;
|
|
153
|
+
/**
|
|
154
|
+
* Check if a resource URL actually belongs to our container by checking DOM elements
|
|
155
|
+
* This is a fallback for resources that loaded before MutationObserver scanned
|
|
156
|
+
*/
|
|
157
|
+
private isResourceInContainer;
|
|
158
|
+
/**
|
|
159
|
+
* Set up error event handler for resource loading failures
|
|
160
|
+
*/
|
|
161
|
+
private setupErrorHandler;
|
|
162
|
+
/**
|
|
163
|
+
* Check if element is a resource element
|
|
164
|
+
*/
|
|
165
|
+
private isResourceElement;
|
|
166
|
+
/**
|
|
167
|
+
* Get resource src/href from element
|
|
168
|
+
*/
|
|
169
|
+
private getResourceSrc;
|
|
170
|
+
/**
|
|
171
|
+
* Handle permanent resource failure after all retries exhausted
|
|
172
|
+
*/
|
|
173
|
+
private handlePermanentFailure;
|
|
174
|
+
/**
|
|
175
|
+
* Log retry schedule information
|
|
176
|
+
*/
|
|
177
|
+
private logRetrySchedule;
|
|
178
|
+
/**
|
|
179
|
+
* Retry loading a failed resource with exponential backoff
|
|
180
|
+
*/
|
|
181
|
+
private retryResourceLoad;
|
|
182
|
+
/**
|
|
183
|
+
* Dispatch a custom event from the container
|
|
184
|
+
*/
|
|
185
|
+
private dispatchEvent;
|
|
186
|
+
/**
|
|
187
|
+
* Get current retry statistics
|
|
188
|
+
*/
|
|
189
|
+
getStats(): {
|
|
190
|
+
activeRetries: number;
|
|
191
|
+
failedResources: Array<{
|
|
192
|
+
url: string;
|
|
193
|
+
attempts: number;
|
|
194
|
+
}>;
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Create and start a resource monitor for a container
|
|
199
|
+
*/
|
|
200
|
+
export declare function createResourceMonitor(container: HTMLElement, config?: ResourceMonitorConfig): ResourceMonitor;
|
|
201
|
+
/**
|
|
202
|
+
* Initialize global resource request tracking (404s for fonts/images/etc.)
|
|
203
|
+
* Call this once when the app loads (client-side only).
|
|
204
|
+
*/
|
|
205
|
+
export declare function initializeResourceRequestTracking(): void;
|
|
206
|
+
export declare function getTrackedResourceRequests(): Map<string, ComponentContext[]>;
|
|
207
|
+
export declare function clearTrackedResourceRequests(): void;
|
|
208
|
+
//# sourceMappingURL=resource-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-monitor.d.ts","sourceRoot":"","sources":["../../src/pie/resource-monitor.ts"],"names":[],"mappings":"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"}
|