@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 +0,0 @@
1
- {"version":3,"file":"use-i18n-standalone.svelte.d.ts","sourceRoot":"","sources":["../../src/i18n/use-i18n-standalone.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,uBAA4B;IAuEpE;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;aAnDY,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAAM;IAsD5D;;OAEG;cAhDE,MAAM,SACJ,MAAM,WACJ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC1B,MAAM;IAgDR;;OAEG;2BA3CgC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;IA8CzD;;OAEG;;IAKH;;OAEG;wBACiB,MAAM,GAAG,OAAO;IAIpC;;OAEG;gBACS,MAAM,GAAG,OAAO;IAI5B;;OAEG;;EAKJ"}
@@ -1,151 +0,0 @@
1
- /**
2
- * Standalone i18n Composable
3
- *
4
- * Lightweight i18n for standalone components that don't use the service architecture.
5
- * Creates its own internal I18nService instance with hybrid loading.
6
- *
7
- * Use this when:
8
- * - Building standalone components (tools, players) without full toolkit integration
9
- * - You want simple i18n without dependency injection
10
- *
11
- * Use `useI18n()` when:
12
- * - Working within the full assessment toolkit architecture
13
- * - You need centralized locale management across the application
14
- *
15
- * @example
16
- * ```svelte
17
- * <script lang="ts">
18
- * import { useI18nStandalone } from '@pie-players/pie-players-shared/i18n';
19
- *
20
- * const i18n = useI18nStandalone({ locale: 'en' });
21
- * </script>
22
- *
23
- * <button>{i18n.t('common.save')}</button>
24
- * <span dir={i18n.direction}>{i18n.tn('assessment.questions', 10)}</span>
25
- * ```
26
- */
27
- import { BUNDLED_TRANSLATIONS, loadTranslations } from "./loader.js";
28
- import { SimpleI18n } from "./simple-i18n.js";
29
- /**
30
- * Create a standalone i18n instance
31
- *
32
- * @param config Configuration options
33
- * @returns Reactive i18n interface
34
- */
35
- export function useI18nStandalone(config = {}) {
36
- let locale = $state(config.locale || "en");
37
- let direction = $state("ltr");
38
- let isLoading = $state(false);
39
- // Create internal service instance
40
- const service = new SimpleI18n({
41
- locale: config.locale,
42
- fallbackLocale: config.fallbackLocale || "en",
43
- bundledTranslations: BUNDLED_TRANSLATIONS,
44
- loadTranslations,
45
- debug: config.debug,
46
- });
47
- // Initialize service
48
- $effect(() => {
49
- service
50
- .initialize({
51
- locale: config.locale,
52
- fallbackLocale: config.fallbackLocale || "en",
53
- bundledTranslations: BUNDLED_TRANSLATIONS,
54
- loadTranslations,
55
- debug: config.debug,
56
- })
57
- .then(() => {
58
- locale = service.getLocale();
59
- direction = service.getDirection();
60
- });
61
- });
62
- // Subscribe to service changes
63
- $effect(() => {
64
- const unsubscribe = service.subscribe(() => {
65
- locale = service.getLocale();
66
- direction = service.getDirection();
67
- });
68
- return unsubscribe;
69
- });
70
- /**
71
- * Translate a key with optional interpolation
72
- */
73
- function t(key, params) {
74
- return service.t(key, params);
75
- }
76
- /**
77
- * Translate with pluralization
78
- */
79
- function tn(key, count, params) {
80
- return service.tn(key, count, params);
81
- }
82
- /**
83
- * Change locale (async)
84
- */
85
- async function setLocale(newLocale) {
86
- isLoading = true;
87
- try {
88
- await service.setLocale(newLocale);
89
- }
90
- finally {
91
- isLoading = false;
92
- }
93
- }
94
- return {
95
- /**
96
- * Current locale (reactive)
97
- */
98
- get locale() {
99
- return locale;
100
- },
101
- /**
102
- * Current text direction (reactive)
103
- */
104
- get direction() {
105
- return direction;
106
- },
107
- /**
108
- * Loading state (reactive)
109
- */
110
- get isLoading() {
111
- return isLoading;
112
- },
113
- /**
114
- * Translate function
115
- */
116
- t,
117
- /**
118
- * Translate with pluralization
119
- */
120
- tn,
121
- /**
122
- * Change locale
123
- */
124
- setLocale,
125
- /**
126
- * Get available locales
127
- */
128
- get availableLocales() {
129
- return service.getAvailableLocales();
130
- },
131
- /**
132
- * Check if locale is loaded
133
- */
134
- isLocaleLoaded(loc) {
135
- return service.isLocaleLoaded(loc);
136
- },
137
- /**
138
- * Check if translation key exists
139
- */
140
- hasKey(key) {
141
- return service.hasKey(key);
142
- },
143
- /**
144
- * Access underlying service (for advanced use cases)
145
- */
146
- get service() {
147
- return service;
148
- },
149
- };
150
- }
151
- //# sourceMappingURL=use-i18n-standalone.svelte.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-i18n-standalone.svelte.js","sourceRoot":"","sources":["../../src/i18n/use-i18n-standalone.svelte.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Svelte 5 Composable for i18n
3
- *
4
- * Provides reactive translation functions and locale state.
5
- * Uses Svelte 5 runes for reactivity.
6
- *
7
- * Usage in a Svelte 5 component:
8
- * ```svelte
9
- * <script lang="ts">
10
- * import { useI18n } from '@pie-players/pie-players-shared/i18n';
11
- *
12
- * let { player } = $props();
13
- * const i18n = useI18n(() => player.getI18nService());
14
- * </script>
15
- *
16
- * <button>{i18n.t('common.save')}</button>
17
- * <span dir={i18n.direction}>
18
- * {i18n.tn('assessment.questions', totalQuestions)}
19
- * </span>
20
- * ```
21
- */
22
- import type { I18nServiceApi } from "./types.js";
23
- /**
24
- * Svelte 5 composable for internationalization
25
- *
26
- * @param getService - Function that returns the I18nService instance (reactive)
27
- * @returns Object with reactive locale, direction, and translation functions
28
- */
29
- export declare function useI18n(getService: () => I18nServiceApi | undefined): {
30
- /**
31
- * Current locale (reactive)
32
- */
33
- readonly locale: string;
34
- /**
35
- * Current text direction (reactive)
36
- */
37
- readonly direction: "ltr" | "rtl";
38
- /**
39
- * Loading state (reactive)
40
- */
41
- readonly isLoading: boolean;
42
- /**
43
- * Translate function
44
- */
45
- t: (key: string, params?: Record<string, any>) => string;
46
- /**
47
- * Translate with pluralization
48
- */
49
- tn: (key: string, count: number, params?: Record<string, any>) => string;
50
- /**
51
- * Change locale
52
- */
53
- setLocale: (newLocale: string) => Promise<void>;
54
- /**
55
- * Get available locales
56
- */
57
- readonly availableLocales: string[];
58
- /**
59
- * Check if locale is loaded
60
- */
61
- isLocaleLoaded(loc: string): boolean;
62
- /**
63
- * Check if translation key exists
64
- */
65
- hasKey(key: string): boolean;
66
- };
67
- //# sourceMappingURL=use-i18n.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-i18n.svelte.d.ts","sourceRoot":"","sources":["../../src/i18n/use-i18n.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,cAAc,GAAG,SAAS;IA2ElE;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;aA/DY,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAAM;IAkE5D;;OAEG;cAtDE,MAAM,SACJ,MAAM,WACJ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC1B,MAAM;IAsDR;;OAEG;2BA9CgC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;IAiDzD;;OAEG;;IAKH;;OAEG;wBACiB,MAAM,GAAG,OAAO;IAIpC;;OAEG;gBACS,MAAM,GAAG,OAAO;EAI7B"}
@@ -1,144 +0,0 @@
1
- /**
2
- * Svelte 5 Composable for i18n
3
- *
4
- * Provides reactive translation functions and locale state.
5
- * Uses Svelte 5 runes for reactivity.
6
- *
7
- * Usage in a Svelte 5 component:
8
- * ```svelte
9
- * <script lang="ts">
10
- * import { useI18n } from '@pie-players/pie-players-shared/i18n';
11
- *
12
- * let { player } = $props();
13
- * const i18n = useI18n(() => player.getI18nService());
14
- * </script>
15
- *
16
- * <button>{i18n.t('common.save')}</button>
17
- * <span dir={i18n.direction}>
18
- * {i18n.tn('assessment.questions', totalQuestions)}
19
- * </span>
20
- * ```
21
- */
22
- /**
23
- * Svelte 5 composable for internationalization
24
- *
25
- * @param getService - Function that returns the I18nService instance (reactive)
26
- * @returns Object with reactive locale, direction, and translation functions
27
- */
28
- export function useI18n(getService) {
29
- let locale = $state("en");
30
- let direction = $state("ltr");
31
- let isLoading = $state(false);
32
- // Get service instance reactively
33
- const service = $derived(getService());
34
- // Subscribe to service changes
35
- $effect(() => {
36
- if (service) {
37
- // Initialize state from service
38
- locale = service.getLocale();
39
- direction = service.getDirection();
40
- // Subscribe to changes
41
- const unsubscribe = service.subscribe(() => {
42
- locale = service.getLocale();
43
- direction = service.getDirection();
44
- });
45
- // Cleanup subscription
46
- return unsubscribe;
47
- }
48
- // Return no-op cleanup if service is undefined
49
- return () => { };
50
- });
51
- /**
52
- * Translate a key with optional interpolation
53
- *
54
- * @param key Translation key (e.g., 'common.save')
55
- * @param params Optional parameters for interpolation
56
- * @returns Translated string
57
- */
58
- function t(key, params) {
59
- if (!service)
60
- return key;
61
- return service.t(key, params);
62
- }
63
- /**
64
- * Translate with pluralization
65
- *
66
- * @param key Translation key
67
- * @param count Count for pluralization
68
- * @param params Optional parameters for interpolation
69
- * @returns Translated string with plural form
70
- */
71
- function tn(key, count, params) {
72
- if (!service)
73
- return key;
74
- return service.tn(key, count, params);
75
- }
76
- /**
77
- * Change locale (async)
78
- *
79
- * @param newLocale Locale code (e.g., 'en', 'es', 'zh', 'ar')
80
- */
81
- async function setLocale(newLocale) {
82
- if (!service)
83
- return;
84
- isLoading = true;
85
- try {
86
- await service.setLocale(newLocale);
87
- }
88
- finally {
89
- isLoading = false;
90
- }
91
- }
92
- // Return reactive getters and functions
93
- return {
94
- /**
95
- * Current locale (reactive)
96
- */
97
- get locale() {
98
- return locale;
99
- },
100
- /**
101
- * Current text direction (reactive)
102
- */
103
- get direction() {
104
- return direction;
105
- },
106
- /**
107
- * Loading state (reactive)
108
- */
109
- get isLoading() {
110
- return isLoading;
111
- },
112
- /**
113
- * Translate function
114
- */
115
- t,
116
- /**
117
- * Translate with pluralization
118
- */
119
- tn,
120
- /**
121
- * Change locale
122
- */
123
- setLocale,
124
- /**
125
- * Get available locales
126
- */
127
- get availableLocales() {
128
- return service?.getAvailableLocales() || [];
129
- },
130
- /**
131
- * Check if locale is loaded
132
- */
133
- isLocaleLoaded(loc) {
134
- return service?.isLocaleLoaded(loc) || false;
135
- },
136
- /**
137
- * Check if translation key exists
138
- */
139
- hasKey(key) {
140
- return service?.hasKey(key) || false;
141
- },
142
- };
143
- }
144
- //# sourceMappingURL=use-i18n.svelte.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-i18n.svelte.js","sourceRoot":"","sources":["../../src/i18n/use-i18n.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,UAA4C;IACnE,IAAI,MAAM,GAAG,MAAM,CAAS,IAAI,CAAC,CAAC;IAClC,IAAI,SAAS,GAAG,MAAM,CAAgB,KAAK,CAAC,CAAC;IAC7C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,kCAAkC;IAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEvC,+BAA+B;IAC/B,OAAO,CAAC,GAAG,EAAE;QACZ,IAAI,OAAO,EAAE,CAAC;YACb,gCAAgC;YAChC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAEnC,uBAAuB;YACvB,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC1C,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,uBAAuB;YACvB,OAAO,WAAW,CAAC;QACpB,CAAC;QACD,+CAA+C;QAC/C,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,SAAS,CAAC,CAAC,GAAW,EAAE,MAA4B;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QACzB,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,EAAE,CACV,GAAW,EACX,KAAa,EACb,MAA4B;QAE5B,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QACzB,OAAO,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,SAAS,CAAC,SAAiB;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACJ,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;gBAAS,CAAC;YACV,SAAS,GAAG,KAAK,CAAC;QACnB,CAAC;IACF,CAAC;IAED,wCAAwC;IACxC,OAAO;QACN;;WAEG;QACH,IAAI,MAAM;YACT,OAAO,MAAM,CAAC;QACf,CAAC;QAED;;WAEG;QACH,IAAI,SAAS;YACZ,OAAO,SAAS,CAAC;QAClB,CAAC;QAED;;WAEG;QACH,IAAI,SAAS;YACZ,OAAO,SAAS,CAAC;QAClB,CAAC;QAED;;WAEG;QACH,CAAC;QAED;;WAEG;QACH,EAAE;QAEF;;WAEG;QACH,SAAS;QAET;;WAEG;QACH,IAAI,gBAAgB;YACnB,OAAO,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED;;WAEG;QACH,cAAc,CAAC,GAAW;YACzB,OAAO,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QAC9C,CAAC;QAED;;WAEG;QACH,MAAM,CAAC,GAAW;YACjB,OAAO,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QACtC,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,170 +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 type { InstrumentationConfig } from "../types.js";
34
- import { BaseInstrumentationProvider } from "./BaseInstrumentationProvider.js";
35
- /**
36
- * DataDog-specific configuration
37
- */
38
- export interface DataDogConfig {
39
- /**
40
- * DataDog application ID
41
- *
42
- * Required. Get this from DataDog RUM application settings.
43
- */
44
- applicationId: string;
45
- /**
46
- * DataDog client token
47
- *
48
- * Required. Get this from DataDog RUM application settings.
49
- */
50
- clientToken: string;
51
- /**
52
- * DataDog site
53
- *
54
- * @default 'datadoghq.com'
55
- * @example 'datadoghq.eu' for EU
56
- */
57
- site?: string;
58
- /**
59
- * Service name
60
- *
61
- * @default 'pie-players'
62
- */
63
- service?: string;
64
- /**
65
- * Environment name
66
- *
67
- * @default 'production'
68
- * @example 'development', 'staging', 'production'
69
- */
70
- env?: string;
71
- /**
72
- * Application version
73
- *
74
- * @default '1.0.0'
75
- */
76
- version?: string;
77
- /**
78
- * Session replay sample rate (0-100)
79
- *
80
- * @default 0 (disabled)
81
- * @example 20 to record 20% of sessions
82
- */
83
- sessionReplaySampleRate?: number;
84
- /**
85
- * Track user interactions
86
- *
87
- * @default true
88
- */
89
- trackUserInteractions?: boolean;
90
- /**
91
- * Track long tasks
92
- *
93
- * @default true
94
- */
95
- trackLongTasks?: boolean;
96
- /**
97
- * Default privacy level for session replay
98
- *
99
- * @default 'mask-user-input'
100
- */
101
- defaultPrivacyLevel?: "allow" | "mask" | "mask-user-input";
102
- }
103
- /**
104
- * DataDog RUM Instrumentation Provider
105
- *
106
- * Integrates PIE players instrumentation with DataDog Real User Monitoring.
107
- */
108
- export declare class DataDogInstrumentationProvider extends BaseInstrumentationProvider {
109
- readonly providerId = "datadog";
110
- readonly providerName = "DataDog RUM";
111
- private datadogConfig?;
112
- /**
113
- * Initialize the DataDog provider
114
- *
115
- * Loads the DataDog RUM SDK and initializes it with the provided configuration.
116
- *
117
- * @param config Instrumentation configuration with DataDog-specific settings
118
- * @throws {Error} If DataDog configuration is invalid or SDK fails to load
119
- */
120
- initialize(config?: InstrumentationConfig): Promise<void>;
121
- /**
122
- * Check if provider is ready
123
- *
124
- * @returns true if DataDog is initialized
125
- */
126
- isReady(): boolean;
127
- /**
128
- * Cleanup provider resources
129
- *
130
- * Marks provider as uninitialized. DataDog RUM SDK is not explicitly
131
- * destroyed (no cleanup API available).
132
- */
133
- destroy(): void;
134
- /**
135
- * Track an error with DataDog
136
- *
137
- * Calls `datadogRum.addError()`
138
- *
139
- * @param error The error to track
140
- * @param attributes Transformed attributes (already filtered and transformed by base class)
141
- */
142
- protected doTrackError(error: Error, attributes: Record<string, any>): void;
143
- /**
144
- * Track a custom event/action with DataDog
145
- *
146
- * Calls `datadogRum.addAction()`
147
- *
148
- * @param eventName Name of the event
149
- * @param attributes Transformed attributes (already filtered and transformed by base class)
150
- */
151
- protected doTrackEvent(eventName: string, attributes: Record<string, any>): void;
152
- /**
153
- * Set user context for session tracking
154
- *
155
- * Calls `datadogRum.setUser()`
156
- *
157
- * @param userId User identifier
158
- * @param attributes Optional user attributes
159
- */
160
- protected doSetUserContext(userId: string, attributes?: Record<string, any>): void;
161
- /**
162
- * Set global custom attributes
163
- *
164
- * Calls `datadogRum.setGlobalContextProperty()` for each attribute.
165
- *
166
- * @param attributes Attributes to set globally
167
- */
168
- protected doSetGlobalAttributes(attributes: Record<string, any>): void;
169
- }
170
- //# sourceMappingURL=DataDogInstrumentationProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataDogInstrumentationProvider.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/providers/DataDogInstrumentationProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,iBAAiB,CAAC;CAC3D;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,2BAA2B;IAC9E,QAAQ,CAAC,UAAU,aAAa;IAChC,QAAQ,CAAC,YAAY,iBAAiB;IAEtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkE/D;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAW3E;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,IAAI;IAQP;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CACzB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,IAAI;IAWP;;;;;;OAMG;IACH,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAStE"}