@translation-cms/sync 1.2.26 → 1.2.28

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/package.json +3 -2
  2. package/dist/api.d.ts +0 -105
  3. package/dist/api.d.ts.map +0 -1
  4. package/dist/api.js +0 -208
  5. package/dist/api.js.map +0 -1
  6. package/dist/bin.d.ts +0 -25
  7. package/dist/bin.d.ts.map +0 -1
  8. package/dist/bin.js +0 -208
  9. package/dist/bin.js.map +0 -1
  10. package/dist/commands/init.d.ts +0 -10
  11. package/dist/commands/init.d.ts.map +0 -1
  12. package/dist/commands/init.js +0 -107
  13. package/dist/commands/init.js.map +0 -1
  14. package/dist/commands/pull.d.ts +0 -10
  15. package/dist/commands/pull.d.ts.map +0 -1
  16. package/dist/commands/pull.js +0 -35
  17. package/dist/commands/pull.js.map +0 -1
  18. package/dist/commands/status.d.ts +0 -15
  19. package/dist/commands/status.d.ts.map +0 -1
  20. package/dist/commands/status.js +0 -62
  21. package/dist/commands/status.js.map +0 -1
  22. package/dist/commands/sync.d.ts +0 -24
  23. package/dist/commands/sync.d.ts.map +0 -1
  24. package/dist/commands/sync.js +0 -131
  25. package/dist/commands/sync.js.map +0 -1
  26. package/dist/commands/watch.d.ts +0 -18
  27. package/dist/commands/watch.d.ts.map +0 -1
  28. package/dist/commands/watch.js +0 -71
  29. package/dist/commands/watch.js.map +0 -1
  30. package/dist/config/config-internals/args.d.ts +0 -11
  31. package/dist/config/config-internals/args.d.ts.map +0 -1
  32. package/dist/config/config-internals/args.js +0 -22
  33. package/dist/config/config-internals/args.js.map +0 -1
  34. package/dist/config/config-internals/env.d.ts +0 -10
  35. package/dist/config/config-internals/env.d.ts.map +0 -1
  36. package/dist/config/config-internals/env.js +0 -35
  37. package/dist/config/config-internals/env.js.map +0 -1
  38. package/dist/config/config-internals/file.d.ts +0 -11
  39. package/dist/config/config-internals/file.d.ts.map +0 -1
  40. package/dist/config/config-internals/file.js +0 -28
  41. package/dist/config/config-internals/file.js.map +0 -1
  42. package/dist/config/config-internals/resolve.d.ts +0 -21
  43. package/dist/config/config-internals/resolve.d.ts.map +0 -1
  44. package/dist/config/config-internals/resolve.js +0 -73
  45. package/dist/config/config-internals/resolve.js.map +0 -1
  46. package/dist/config/config-internals/root.d.ts +0 -9
  47. package/dist/config/config-internals/root.d.ts.map +0 -1
  48. package/dist/config/config-internals/root.js +0 -22
  49. package/dist/config/config-internals/root.js.map +0 -1
  50. package/dist/config/config-internals/types.d.ts +0 -91
  51. package/dist/config/config-internals/types.d.ts.map +0 -1
  52. package/dist/config/config-internals/types.js +0 -9
  53. package/dist/config/config-internals/types.js.map +0 -1
  54. package/dist/config/resolve-config.d.ts +0 -11
  55. package/dist/config/resolve-config.d.ts.map +0 -1
  56. package/dist/config/resolve-config.js +0 -10
  57. package/dist/config/resolve-config.js.map +0 -1
  58. package/dist/core/api-internals/helpers.d.ts +0 -9
  59. package/dist/core/api-internals/helpers.d.ts.map +0 -1
  60. package/dist/core/api-internals/helpers.js +0 -14
  61. package/dist/core/api-internals/helpers.js.map +0 -1
  62. package/dist/core/api-internals/pull.d.ts +0 -19
  63. package/dist/core/api-internals/pull.d.ts.map +0 -1
  64. package/dist/core/api-internals/pull.js +0 -269
  65. package/dist/core/api-internals/pull.js.map +0 -1
  66. package/dist/core/api-internals/route-config.d.ts +0 -13
  67. package/dist/core/api-internals/route-config.d.ts.map +0 -1
  68. package/dist/core/api-internals/route-config.js +0 -34
  69. package/dist/core/api-internals/route-config.js.map +0 -1
  70. package/dist/core/api-internals/sync.d.ts +0 -19
  71. package/dist/core/api-internals/sync.d.ts.map +0 -1
  72. package/dist/core/api-internals/sync.js +0 -139
  73. package/dist/core/api-internals/sync.js.map +0 -1
  74. package/dist/core/api-internals/types.d.ts +0 -33
  75. package/dist/core/api-internals/types.d.ts.map +0 -1
  76. package/dist/core/api-internals/types.js +0 -5
  77. package/dist/core/api-internals/types.js.map +0 -1
  78. package/dist/core/api.d.ts +0 -11
  79. package/dist/core/api.d.ts.map +0 -1
  80. package/dist/core/api.js +0 -11
  81. package/dist/core/api.js.map +0 -1
  82. package/dist/core/cache-internals/format.d.ts +0 -20
  83. package/dist/core/cache-internals/format.d.ts.map +0 -1
  84. package/dist/core/cache-internals/format.js +0 -33
  85. package/dist/core/cache-internals/format.js.map +0 -1
  86. package/dist/core/cache-internals/params.d.ts +0 -33
  87. package/dist/core/cache-internals/params.d.ts.map +0 -1
  88. package/dist/core/cache-internals/params.js +0 -155
  89. package/dist/core/cache-internals/params.js.map +0 -1
  90. package/dist/core/cache-internals/pull.d.ts +0 -17
  91. package/dist/core/cache-internals/pull.d.ts.map +0 -1
  92. package/dist/core/cache-internals/pull.js +0 -34
  93. package/dist/core/cache-internals/pull.js.map +0 -1
  94. package/dist/core/cache-internals/sync.d.ts +0 -29
  95. package/dist/core/cache-internals/sync.d.ts.map +0 -1
  96. package/dist/core/cache-internals/sync.js +0 -104
  97. package/dist/core/cache-internals/sync.js.map +0 -1
  98. package/dist/core/cache-internals/types.d.ts +0 -48
  99. package/dist/core/cache-internals/types.d.ts.map +0 -1
  100. package/dist/core/cache-internals/types.js +0 -2
  101. package/dist/core/cache-internals/types.js.map +0 -1
  102. package/dist/core/cache.d.ts +0 -13
  103. package/dist/core/cache.d.ts.map +0 -1
  104. package/dist/core/cache.js +0 -33
  105. package/dist/core/cache.js.map +0 -1
  106. package/dist/core/scanner-internals/ast.d.ts +0 -40
  107. package/dist/core/scanner-internals/ast.d.ts.map +0 -1
  108. package/dist/core/scanner-internals/ast.js +0 -100
  109. package/dist/core/scanner-internals/ast.js.map +0 -1
  110. package/dist/core/scanner-internals/file-walker.d.ts +0 -10
  111. package/dist/core/scanner-internals/file-walker.d.ts.map +0 -1
  112. package/dist/core/scanner-internals/file-walker.js +0 -23
  113. package/dist/core/scanner-internals/file-walker.js.map +0 -1
  114. package/dist/core/scanner-internals/import-resolver.d.ts +0 -21
  115. package/dist/core/scanner-internals/import-resolver.d.ts.map +0 -1
  116. package/dist/core/scanner-internals/import-resolver.js +0 -119
  117. package/dist/core/scanner-internals/import-resolver.js.map +0 -1
  118. package/dist/core/scanner-internals/key-extractor.d.ts +0 -20
  119. package/dist/core/scanner-internals/key-extractor.d.ts.map +0 -1
  120. package/dist/core/scanner-internals/key-extractor.js +0 -274
  121. package/dist/core/scanner-internals/key-extractor.js.map +0 -1
  122. package/dist/core/scanner-internals/nav-config-scanner.d.ts +0 -30
  123. package/dist/core/scanner-internals/nav-config-scanner.d.ts.map +0 -1
  124. package/dist/core/scanner-internals/nav-config-scanner.js +0 -170
  125. package/dist/core/scanner-internals/nav-config-scanner.js.map +0 -1
  126. package/dist/core/scanner-internals/route-detector.d.ts +0 -27
  127. package/dist/core/scanner-internals/route-detector.d.ts.map +0 -1
  128. package/dist/core/scanner-internals/route-detector.js +0 -78
  129. package/dist/core/scanner-internals/route-detector.js.map +0 -1
  130. package/dist/core/scanner-internals/types.d.ts +0 -60
  131. package/dist/core/scanner-internals/types.d.ts.map +0 -1
  132. package/dist/core/scanner-internals/types.js +0 -29
  133. package/dist/core/scanner-internals/types.js.map +0 -1
  134. package/dist/core/scanner.d.ts +0 -21
  135. package/dist/core/scanner.d.ts.map +0 -1
  136. package/dist/core/scanner.js +0 -162
  137. package/dist/core/scanner.js.map +0 -1
  138. package/dist/index.d.ts +0 -3
  139. package/dist/index.d.ts.map +0 -1
  140. package/dist/index.js +0 -3
  141. package/dist/index.js.map +0 -1
  142. package/dist/next.d.ts +0 -33
  143. package/dist/next.d.ts.map +0 -1
  144. package/dist/next.js +0 -110
  145. package/dist/next.js.map +0 -1
  146. package/dist/preview/index.d.ts +0 -39
  147. package/dist/preview/index.d.ts.map +0 -1
  148. package/dist/preview/index.js +0 -123
  149. package/dist/preview/index.js.map +0 -1
  150. package/dist/preview/internals/highlight.d.ts +0 -31
  151. package/dist/preview/internals/highlight.d.ts.map +0 -1
  152. package/dist/preview/internals/highlight.js +0 -184
  153. package/dist/preview/internals/highlight.js.map +0 -1
  154. package/dist/preview/internals/interactions.d.ts +0 -15
  155. package/dist/preview/internals/interactions.d.ts.map +0 -1
  156. package/dist/preview/internals/interactions.js +0 -38
  157. package/dist/preview/internals/interactions.js.map +0 -1
  158. package/dist/preview/internals/interactive.d.ts +0 -14
  159. package/dist/preview/internals/interactive.d.ts.map +0 -1
  160. package/dist/preview/internals/interactive.js +0 -122
  161. package/dist/preview/internals/interactive.js.map +0 -1
  162. package/dist/preview/internals/locales.d.ts +0 -9
  163. package/dist/preview/internals/locales.d.ts.map +0 -1
  164. package/dist/preview/internals/locales.js +0 -24
  165. package/dist/preview/internals/locales.js.map +0 -1
  166. package/dist/preview/internals/state.d.ts +0 -37
  167. package/dist/preview/internals/state.d.ts.map +0 -1
  168. package/dist/preview/internals/state.js +0 -74
  169. package/dist/preview/internals/state.js.map +0 -1
  170. package/dist/preview/internals/styles.d.ts +0 -8
  171. package/dist/preview/internals/styles.d.ts.map +0 -1
  172. package/dist/preview/internals/styles.js +0 -28
  173. package/dist/preview/internals/styles.js.map +0 -1
  174. package/dist/preview/internals/types.d.ts +0 -74
  175. package/dist/preview/internals/types.d.ts.map +0 -1
  176. package/dist/preview/internals/types.js +0 -5
  177. package/dist/preview/internals/types.js.map +0 -1
  178. package/dist/preview/internals/ui-indicators.d.ts +0 -15
  179. package/dist/preview/internals/ui-indicators.d.ts.map +0 -1
  180. package/dist/preview/internals/ui-indicators.js +0 -92
  181. package/dist/preview/internals/ui-indicators.js.map +0 -1
  182. package/dist/scaffold/index.d.ts +0 -3
  183. package/dist/scaffold/index.d.ts.map +0 -1
  184. package/dist/scaffold/index.js +0 -3
  185. package/dist/scaffold/index.js.map +0 -1
  186. package/dist/scaffold/intenrals/scaffold.d.ts +0 -24
  187. package/dist/scaffold/intenrals/scaffold.d.ts.map +0 -1
  188. package/dist/scaffold/intenrals/scaffold.js +0 -53
  189. package/dist/scaffold/intenrals/scaffold.js.map +0 -1
  190. package/dist/scaffold/intenrals/templates.d.ts +0 -10
  191. package/dist/scaffold/intenrals/templates.d.ts.map +0 -1
  192. package/dist/scaffold/intenrals/templates.js +0 -344
  193. package/dist/scaffold/intenrals/templates.js.map +0 -1
  194. package/dist/scaffold/intenrals/types.d.ts +0 -14
  195. package/dist/scaffold/intenrals/types.d.ts.map +0 -1
  196. package/dist/scaffold/intenrals/types.js +0 -5
  197. package/dist/scaffold/intenrals/types.js.map +0 -1
@@ -1,122 +0,0 @@
1
- /**
2
- * Interactive preview mode: allow clicks, form interactions, navigation.
3
- * Editors can explore the app while seeing translations highlighted.
4
- */
5
- import * as state from './state.js';
6
- import { updateStateDisplay } from './ui-indicators.js';
7
- /**
8
- * Initialize interactive mode:
9
- * - Allow form interactions (typing, selecting)
10
- * - Intercept navigation to report back to CMS
11
- * - Capture/restore app state when navigating
12
- */
13
- export function initInteractiveMode() {
14
- if (!window.top || window.top === window) {
15
- // Not in an iframe — no need to intercept navigation
16
- return;
17
- }
18
- // Capture state before navigation
19
- window.addEventListener('click', handleLinkClick, true);
20
- window.addEventListener('submit', handleFormSubmit, true);
21
- // Track URL changes (for Single Page Apps)
22
- trackURLChanges();
23
- console.log('[CMS Preview] Interactive mode enabled');
24
- }
25
- /** Clean up interactive mode event listeners. */
26
- export function cleanupInteractiveMode() {
27
- window.removeEventListener('click', handleLinkClick, true);
28
- window.removeEventListener('submit', handleFormSubmit, true);
29
- }
30
- // ---------------------------------------------------------------------------
31
- // Event handlers
32
- // ---------------------------------------------------------------------------
33
- /**
34
- * Intercept link clicks to:
35
- * 1. Capture current app state
36
- * 2. Report navigation to CMS
37
- * 3. Wait for page load, then restore state
38
- */
39
- function handleLinkClick(event) {
40
- const elem = event.target;
41
- const link = elem.closest('a');
42
- if (!link || !link.href)
43
- return;
44
- // Don't intercept external links or special links
45
- if (link.target === '_blank' ||
46
- link.target === '_parent' ||
47
- link.target === '_top' ||
48
- link.hasAttribute('download')) {
49
- return;
50
- }
51
- // Check if it's a navigation link (not anchor-only)
52
- const url = new URL(link.href);
53
- const currentUrl = new URL(window.location.href);
54
- // If it's just an anchor change, don't capture state
55
- if (url.hostname === currentUrl.hostname &&
56
- url.pathname === currentUrl.pathname &&
57
- url.search === currentUrl.search &&
58
- url.hash !== currentUrl.hash) {
59
- return;
60
- }
61
- // Capture state before navigation
62
- const appState = state.stateCapture?.();
63
- // Report navigation to CMS
64
- reportNavigation(url.href, appState);
65
- // Set up state restoration after page loads
66
- if (appState && state.stateRestore) {
67
- window.addEventListener('load', () => {
68
- state.stateRestore?.(appState);
69
- });
70
- }
71
- }
72
- /**
73
- * Intercept form submissions to report to CMS.
74
- */
75
- function handleFormSubmit(event) {
76
- const form = event.target;
77
- if (!form || !form.action)
78
- return;
79
- const appState = state.stateCapture?.();
80
- reportNavigation(form.action, appState);
81
- }
82
- /**
83
- * Track URL changes in Single Page Apps (detect history pushes).
84
- */
85
- function trackURLChanges() {
86
- const originalPushState = window.history.pushState;
87
- const originalReplaceState = window.history.replaceState;
88
- window.history.pushState = function (state, unused, url) {
89
- const result = originalPushState.call(window.history, state, unused, url);
90
- if (url)
91
- reportNavigation(String(url));
92
- return result;
93
- };
94
- window.history.replaceState = function (state, unused, url) {
95
- const result = originalReplaceState.call(window.history, state, unused, url);
96
- if (url)
97
- reportNavigation(String(url));
98
- return result;
99
- };
100
- }
101
- // ---------------------------------------------------------------------------
102
- // Message reporting
103
- // ---------------------------------------------------------------------------
104
- /**
105
- * Send navigation event to CMS.
106
- * Allows the CMS to know which route/URL we're viewing.
107
- */
108
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
109
- function reportNavigation(url, appState) {
110
- if (!window.top || window.top === window)
111
- return;
112
- const message = {
113
- type: 'CMS_NAVIGATE',
114
- url,
115
- state: appState,
116
- };
117
- // Update UI displays
118
- updateStateDisplay(appState);
119
- window.top.postMessage(message, '*');
120
- console.log(`[CMS Preview] Navigated to: ${url}`);
121
- }
122
- //# sourceMappingURL=interactive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/preview/internals/interactive.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Locale switching logic for preview listener.
3
- */
4
- /**
5
- * Handle a locale switch request from the CMS.
6
- * Tries the provided callback first, then falls back to window.__cmsSetLocale.
7
- */
8
- export declare function handleLocaleSwitch(locale: string): void;
9
- //# sourceMappingURL=locales.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/preview/internals/locales.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAmBvD"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Locale switching logic for preview listener.
3
- */
4
- import * as state from './state.js';
5
- /**
6
- * Handle a locale switch request from the CMS.
7
- * Tries the provided callback first, then falls back to window.__cmsSetLocale.
8
- */
9
- export function handleLocaleSwitch(locale) {
10
- console.log(`[CMS Preview] Switching locale to: ${locale}`);
11
- if (state.opts.onLocaleSwitch) {
12
- state.opts.onLocaleSwitch(locale);
13
- return;
14
- }
15
- // Fallback: look for window.__cmsSetLocale (set by the consuming app)
16
- const globalObj = globalThis;
17
- if (typeof globalObj['__cmsSetLocale'] === 'function') {
18
- globalObj['__cmsSetLocale'](locale);
19
- return;
20
- }
21
- console.warn('[CMS Preview] No locale switch handler found. ' +
22
- 'Provide onLocaleSwitch option or expose window.__cmsSetLocale(locale).');
23
- }
24
- //# sourceMappingURL=locales.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../../src/preview/internals/locales.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC7C,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;IAE5D,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO;IACX,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAG,UAAqC,CAAC;IACxD,IAAI,OAAO,SAAS,CAAC,gBAAgB,CAAC,KAAK,UAAU,EAAE,CAAC;QACnD,SAAS,CAAC,gBAAgB,CAAyB,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO;IACX,CAAC;IAED,OAAO,CAAC,IAAI,CACR,gDAAgD;QAC5C,wEAAwE,CAC/E,CAAC;AACN,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * State management for preview listener.
3
- */
4
- import type { PreviewListenerOptions } from './types.js';
5
- export declare let isInitialized: boolean;
6
- export declare let highlightedElements: HTMLElement[];
7
- export declare let opts: PreviewListenerOptions;
8
- export declare let currentLiveValue: string | null;
9
- export declare let currentSearchValue: string | null;
10
- export declare let activeLocale: string | null;
11
- export declare let interactionBlockerOverlay: HTMLDivElement | null;
12
- export declare let pendingHighlight: {
13
- key: string;
14
- value: string;
15
- } | null;
16
- export declare let stateCapture: (() => Record<string, any>) | undefined;
17
- export declare let stateRestore: ((state: Record<string, any>) => void) | undefined;
18
- /**
19
- * Reset all state when cleaning up.
20
- */
21
- export declare function resetState(): void;
22
- /**
23
- * Initialize state with global values.
24
- */
25
- export declare function initializeState(options: PreviewListenerOptions): void;
26
- export declare function setIsInitialized(value: boolean): void;
27
- export declare function setActiveLocale(value: string | null): void;
28
- export declare function setCurrentLiveValue(value: string | null): void;
29
- export declare function setPendingHighlight(value: {
30
- key: string;
31
- value: string;
32
- } | null): void;
33
- export declare function setCurrentSearchValue(value: string | null): void;
34
- export declare function setHighlightedElements(value: HTMLElement[]): void;
35
- export declare function addHighlightedElement(el: HTMLElement): void;
36
- export declare function setInteractionBlockerOverlay(value: HTMLDivElement | null): void;
37
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/preview/internals/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,eAAO,IAAI,aAAa,SAAQ,CAAC;AACjC,eAAO,IAAI,mBAAmB,EAAE,WAAW,EAAO,CAAC;AACnD,eAAO,IAAI,IAAI,EAAE,sBAA2B,CAAC;AAC7C,eAAO,IAAI,gBAAgB,EAAE,MAAM,GAAG,IAAW,CAAC;AAClD,eAAO,IAAI,kBAAkB,EAAE,MAAM,GAAG,IAAW,CAAC;AACpD,eAAO,IAAI,YAAY,EAAE,MAAM,GAAG,IAAW,CAAC;AAC9C,eAAO,IAAI,yBAAyB,EAAE,cAAc,GAAG,IAAW,CAAC;AACnE,eAAO,IAAI,gBAAgB,EAAE;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB,GAAG,IAAW,CAAC;AAIhB,eAAO,IAAI,YAAY,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;AAEjE,eAAO,IAAI,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;AAE5E;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAWjC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAYrE;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAErD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE9D;AAED,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAC7C,IAAI,CAEN;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAE3D;AAED,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,cAAc,GAAG,IAAI,GAC7B,IAAI,CAEN"}
@@ -1,74 +0,0 @@
1
- /**
2
- * State management for preview listener.
3
- */
4
- export let isInitialized = false;
5
- export let highlightedElements = [];
6
- export let opts = {};
7
- export let currentLiveValue = null;
8
- export let currentSearchValue = null;
9
- export let activeLocale = null;
10
- export let interactionBlockerOverlay = null;
11
- export let pendingHighlight = null;
12
- // Interactive mode callbacks
13
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- export let stateCapture;
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
- export let stateRestore;
17
- /**
18
- * Reset all state when cleaning up.
19
- */
20
- export function resetState() {
21
- isInitialized = false;
22
- highlightedElements = [];
23
- opts = {};
24
- currentLiveValue = null;
25
- currentSearchValue = null;
26
- activeLocale = null;
27
- interactionBlockerOverlay = null;
28
- pendingHighlight = null;
29
- stateCapture = undefined;
30
- stateRestore = undefined;
31
- }
32
- /**
33
- * Initialize state with global values.
34
- */
35
- export function initializeState(options) {
36
- opts = options;
37
- stateCapture = options.stateCapture;
38
- stateRestore = options.stateRestore;
39
- // Seed activeLocale from the URL's ?locale= param so that the first
40
- // CMS_HIGHLIGHT_KEY doesn't needlessly trigger a locale switch (and
41
- // re-render) when the iframe already loaded with the correct locale.
42
- try {
43
- activeLocale = new URL(window.location.href).searchParams.get('locale');
44
- }
45
- catch {
46
- activeLocale = null;
47
- }
48
- }
49
- // Setter functions for accessing from different modules
50
- export function setIsInitialized(value) {
51
- isInitialized = value;
52
- }
53
- export function setActiveLocale(value) {
54
- activeLocale = value;
55
- }
56
- export function setCurrentLiveValue(value) {
57
- currentLiveValue = value;
58
- }
59
- export function setPendingHighlight(value) {
60
- pendingHighlight = value;
61
- }
62
- export function setCurrentSearchValue(value) {
63
- currentSearchValue = value;
64
- }
65
- export function setHighlightedElements(value) {
66
- highlightedElements = value;
67
- }
68
- export function addHighlightedElement(el) {
69
- highlightedElements.push(el);
70
- }
71
- export function setInteractionBlockerOverlay(value) {
72
- interactionBlockerOverlay = value;
73
- }
74
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/preview/internals/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,IAAI,aAAa,GAAG,KAAK,CAAC;AACjC,MAAM,CAAC,IAAI,mBAAmB,GAAkB,EAAE,CAAC;AACnD,MAAM,CAAC,IAAI,IAAI,GAA2B,EAAE,CAAC;AAC7C,MAAM,CAAC,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAClD,MAAM,CAAC,IAAI,kBAAkB,GAAkB,IAAI,CAAC;AACpD,MAAM,CAAC,IAAI,YAAY,GAAkB,IAAI,CAAC;AAC9C,MAAM,CAAC,IAAI,yBAAyB,GAA0B,IAAI,CAAC;AACnE,MAAM,CAAC,IAAI,gBAAgB,GAGhB,IAAI,CAAC;AAEhB,6BAA6B;AAC7B,8DAA8D;AAC9D,MAAM,CAAC,IAAI,YAAqD,CAAC;AACjE,8DAA8D;AAC9D,MAAM,CAAC,IAAI,YAAgE,CAAC;AAE5E;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,aAAa,GAAG,KAAK,CAAC;IACtB,mBAAmB,GAAG,EAAE,CAAC;IACzB,IAAI,GAAG,EAAE,CAAC;IACV,gBAAgB,GAAG,IAAI,CAAC;IACxB,kBAAkB,GAAG,IAAI,CAAC;IAC1B,YAAY,GAAG,IAAI,CAAC;IACpB,yBAAyB,GAAG,IAAI,CAAC;IACjC,gBAAgB,GAAG,IAAI,CAAC;IACxB,YAAY,GAAG,SAAS,CAAC;IACzB,YAAY,GAAG,SAAS,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC3D,IAAI,GAAG,OAAO,CAAC;IACf,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IACpC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IACpC,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,IAAI,CAAC;QACD,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACL,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC;AACL,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC3C,aAAa,GAAG,KAAK,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAoB;IAChD,YAAY,GAAG,KAAK,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACpD,gBAAgB,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,KAA4C;IAE5C,gBAAgB,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAoB;IACtD,kBAAkB,GAAG,KAAK,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAoB;IACvD,mBAAmB,GAAG,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAe;IACjD,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,4BAA4B,CACxC,KAA4B;IAE5B,yBAAyB,GAAG,KAAK,CAAC;AACtC,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * CSS styles for preview highlight elements.
3
- */
4
- /**
5
- * Inject highlight styles into the document.
6
- */
7
- export declare function injectStyles(): void;
8
- //# sourceMappingURL=styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/preview/internals/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAoBnC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * CSS styles for preview highlight elements.
3
- */
4
- import * as state from './state.js';
5
- /**
6
- * Inject highlight styles into the document.
7
- */
8
- export function injectStyles() {
9
- const custom = state.opts.highlightStyles ?? {};
10
- const outline = custom.outline ?? '2px solid #3B82F6';
11
- const outlineOffset = custom.outlineOffset ?? '3px';
12
- const borderRadius = custom.borderRadius ?? '3px';
13
- const backgroundColor = custom.backgroundColor ?? 'transparent';
14
- const style = document.createElement('style');
15
- style.textContent = `
16
- .cms-preview-highlight {
17
- outline: ${outline} !important;
18
- outline-offset: ${outlineOffset} !important;
19
- border-radius: ${borderRadius};
20
- background-color: ${backgroundColor};
21
- position: relative;
22
- z-index: 9999;
23
- transition: outline 0.15s ease;
24
- }
25
- `;
26
- document.head.appendChild(style);
27
- }
28
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/preview/internals/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,YAAY;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,mBAAmB,CAAC;IACtD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;IAClD,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,aAAa,CAAC;IAEhE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,WAAW,GAAG;;uBAED,OAAO;8BACA,aAAa;6BACd,YAAY;gCACT,eAAe;;;;;KAK1C,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC"}
@@ -1,74 +0,0 @@
1
- /**
2
- * Message types and public API types for preview listener.
3
- */
4
- export interface CMSHighlightMessage {
5
- type: 'CMS_HIGHLIGHT_KEY';
6
- key: string;
7
- value: string;
8
- locale: string;
9
- }
10
- export interface CMSLiveUpdateMessage {
11
- type: 'CMS_LIVE_UPDATE';
12
- oldValue: string;
13
- newValue: string;
14
- }
15
- /**
16
- * Switch the active locale without reloading the page.
17
- * Requires your app to expose a `window.__cmsSetLocale(locale)` callback.
18
- * The CMS sends this when the user changes locale in the preview toolbar.
19
- */
20
- export interface CMSSwitchLocaleMessage {
21
- type: 'CMS_SWITCH_LOCALE';
22
- locale: string;
23
- }
24
- /**
25
- * Sent from app to CMS when user navigates in interactive mode.
26
- * Allows CMS to track which route the editor is viewing.
27
- */
28
- export interface CMSNavigateMessage {
29
- type: 'CMS_NAVIGATE';
30
- url: string;
31
- state?: Record<string, any>;
32
- }
33
- export interface PreviewListenerOptions {
34
- /**
35
- * Custom CSS to apply to highlighted elements.
36
- * If not provided, uses default blue outline.
37
- */
38
- highlightStyles?: {
39
- outline?: string;
40
- outlineOffset?: string;
41
- borderRadius?: string;
42
- backgroundColor?: string;
43
- };
44
- /**
45
- * Called when the CMS requests a locale switch.
46
- * Use this to integrate with your i18n library:
47
- *
48
- * ```ts
49
- * initPreviewListener({
50
- * onLocaleSwitch: (locale) => i18n.changeLanguage(locale),
51
- * });
52
- * ```
53
- *
54
- * When omitted, the listener looks for `window.__cmsSetLocale(locale)`.
55
- */
56
- onLocaleSwitch?: (locale: string) => void;
57
- /**
58
- * Enable interactive mode: allow clicks, form interactions, navigation.
59
- * When enabled, the preview is fully interactive instead of read-only.
60
- * @default false
61
- */
62
- interactiveMode?: boolean;
63
- /**
64
- * Capture the current app state (e.g., open dialogs, form values).
65
- * Called before navigation to preserve context.
66
- */
67
- stateCapture?: () => Record<string, any>;
68
- /**
69
- * Restore app state after navigation (e.g., reopen dialogs).
70
- * Allows editors to maintain their position when clicking through.
71
- */
72
- stateRestore?: (state: Record<string, any>) => void;
73
- }
74
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/preview/internals/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAMD,MAAM,WAAW,sBAAsB;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IAEH,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC;;;OAGG;IAEH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CACvD"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Message types and public API types for preview listener.
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/preview/internals/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,15 +0,0 @@
1
- /**
2
- * UI Indicators for interactive preview mode.
3
- * Shows current URL, state, and navigation feedback.
4
- */
5
- /**
6
- * Create and inject the UI breadcrumb bar showing current URL/state.
7
- */
8
- export declare function injectUIIndicators(): void;
9
- /** Remove UI indicators. */
10
- export declare function removeUIIndicators(): void;
11
- /**
12
- * Update the state display (e.g., showing captured state summary).
13
- */
14
- export declare function updateStateDisplay(state: Record<string, any> | undefined): void;
15
- //# sourceMappingURL=ui-indicators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-indicators.d.ts","sourceRoot":"","sources":["../../../src/preview/internals/ui-indicators.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAkDzC;AAED,4BAA4B;AAC5B,wBAAgB,kBAAkB,IAAI,IAAI,CAOzC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GACvC,IAAI,CAqBN"}
@@ -1,92 +0,0 @@
1
- /**
2
- * UI Indicators for interactive preview mode.
3
- * Shows current URL, state, and navigation feedback.
4
- */
5
- /**
6
- * Create and inject the UI breadcrumb bar showing current URL/state.
7
- */
8
- export function injectUIIndicators() {
9
- // Create container
10
- const container = document.createElement('div');
11
- container.id = 'cms-preview-ui-indicators';
12
- container.setAttribute('data-cms-ui', 'true');
13
- container.innerHTML = `
14
- <div style="
15
- position: fixed;
16
- top: 0;
17
- left: 0;
18
- right: 0;
19
- height: 40px;
20
- background: #3b82f6;
21
- color: white;
22
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
23
- font-size: 12px;
24
- padding: 8px 16px;
25
- display: flex;
26
- align-items: center;
27
- justify-content: space-between;
28
- box-shadow: 0 2px 8px rgba(0,0,0,0.15);
29
- z-index: 2147483647;
30
- gap: 16px;
31
- ">
32
- <div style="flex: 1; display: flex; align-items: center; gap: 8px;">
33
- <span style="
34
- font-weight: 600;
35
- padding: 2px 8px;
36
- background: rgba(255,255,255,0.2);
37
- border-radius: 4px;
38
- white-space: nowrap;
39
- ">CMS Preview</span>
40
- </div>
41
- <div id="cms-ui-state" style="
42
- font-size: 10px;
43
- padding: 2px 8px;
44
- background: rgba(0,0,0,0.1);
45
- border-radius: 4px;
46
- max-width: 200px;
47
- overflow: hidden;
48
- text-overflow: ellipsis;
49
- "></div>
50
- </div>
51
- `;
52
- document.body?.insertBefore(container, document.body.firstChild);
53
- // Adjust body padding to make room for the indicator
54
- document.body.style.paddingTop = '40px';
55
- console.log('[CMS Preview] UI indicators injected');
56
- }
57
- /** Remove UI indicators. */
58
- export function removeUIIndicators() {
59
- const container = document.getElementById('cms-preview-ui-indicators');
60
- if (container) {
61
- container.remove();
62
- // Restore body padding
63
- document.body.style.paddingTop = '0px';
64
- }
65
- }
66
- /**
67
- * Update the state display (e.g., showing captured state summary).
68
- */
69
- export function updateStateDisplay(state) {
70
- const stateEl = document.getElementById('cms-ui-state');
71
- if (!stateEl)
72
- return;
73
- if (!state || Object.keys(state).length === 0) {
74
- stateEl.textContent = '';
75
- return;
76
- }
77
- // Show a summary of captured state
78
- const summary = Object.entries(state)
79
- .map(([key, val]) => {
80
- if (typeof val === 'number')
81
- return `${key}: ${val}`;
82
- if (typeof val === 'boolean')
83
- return `${key}: ${val}`;
84
- if (typeof val === 'string')
85
- return `${key}: "${val.slice(0, 10)}"`;
86
- return `${key}: …`;
87
- })
88
- .slice(0, 3)
89
- .join(', ');
90
- stateEl.textContent = `State: ${summary}${Object.keys(state).length > 3 ? '…' : ''}`;
91
- }
92
- //# sourceMappingURL=ui-indicators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-indicators.js","sourceRoot":"","sources":["../../../src/preview/internals/ui-indicators.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAC9B,mBAAmB;IACnB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,GAAG,2BAA2B,CAAC;IAC3C,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC9C,SAAS,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCrB,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjE,qDAAqD;IACrD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACxD,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,kBAAkB;IAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;IACvE,IAAI,SAAS,EAAE,CAAC;QACZ,SAAS,CAAC,MAAM,EAAE,CAAC;QACnB,uBAAuB;QACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IAC3C,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAC9B,KAAsC;IAEtC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;QACzB,OAAO;IACX,CAAC;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAChB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;QACrD,IAAI,OAAO,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;QACtD,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;QACpE,OAAO,GAAG,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,CAAC,WAAW,GAAG,UAAU,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACzF,CAAC"}
@@ -1,3 +0,0 @@
1
- export { scaffoldI18n } from './intenrals/scaffold.js';
2
- export type { ScaffoldOptions, ScaffoldResult } from './intenrals/types.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,3 +0,0 @@
1
- // Re-export public API
2
- export { scaffoldI18n } from './intenrals/scaffold.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * i18n scaffolding logic.
3
- * Creates i18n configuration files and dictionary placeholders.
4
- */
5
- import { ScaffoldOptions, ScaffoldResult } from './types.js';
6
- /**
7
- * Generate the i18n boilerplate inside `opts.i18nDir` (e.g. `src/lib/i18n/`).
8
- *
9
- * Writes five TypeScript modules and two placeholder JSON dictionaries:
10
- * - `settings.ts` — locale list, default locale, namespace config
11
- * - `types.ts` — shared `I18nKey` type and locale type
12
- * - `client.ts` — `useTranslation` re-export for client components
13
- * - `server.ts` — `getTranslation` helper for server components
14
- * - `provider.tsx` — `<I18nProvider>` wrapper component
15
- * - `dictionaries/en.json` — empty English dictionary placeholder
16
- * - `dictionaries/nl.json` — empty Dutch dictionary placeholder
17
- *
18
- * Existing files are skipped unless `overwrite: true` is set, so re-running
19
- * the command after the user has edited their i18n setup is safe by default.
20
- *
21
- * @returns Lists of written and skipped relative paths for CLI reporting.
22
- */
23
- export declare function scaffoldI18n(opts: ScaffoldOptions): ScaffoldResult;
24
- //# sourceMappingURL=scaffold.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/scaffold/intenrals/scaffold.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CAgClE"}
@@ -1,53 +0,0 @@
1
- /**
2
- * i18n scaffolding logic.
3
- * Creates i18n configuration files and dictionary placeholders.
4
- */
5
- import fs from 'fs';
6
- import path from 'path';
7
- import { SETTINGS_TS, TYPES_TS, CLIENT_TS, SERVER_TS, PROVIDER_TSX, PLACEHOLDER_DICT, } from './templates.js';
8
- /**
9
- * Generate the i18n boilerplate inside `opts.i18nDir` (e.g. `src/lib/i18n/`).
10
- *
11
- * Writes five TypeScript modules and two placeholder JSON dictionaries:
12
- * - `settings.ts` — locale list, default locale, namespace config
13
- * - `types.ts` — shared `I18nKey` type and locale type
14
- * - `client.ts` — `useTranslation` re-export for client components
15
- * - `server.ts` — `getTranslation` helper for server components
16
- * - `provider.tsx` — `<I18nProvider>` wrapper component
17
- * - `dictionaries/en.json` — empty English dictionary placeholder
18
- * - `dictionaries/nl.json` — empty Dutch dictionary placeholder
19
- *
20
- * Existing files are skipped unless `overwrite: true` is set, so re-running
21
- * the command after the user has edited their i18n setup is safe by default.
22
- *
23
- * @returns Lists of written and skipped relative paths for CLI reporting.
24
- */
25
- export function scaffoldI18n(opts) {
26
- const { i18nDir, overwrite = false } = opts;
27
- const dictsDir = path.join(i18nDir, 'dictionaries');
28
- // Ensure both the i18n root and the dictionaries sub-directory exist
29
- fs.mkdirSync(dictsDir, { recursive: true });
30
- const files = [
31
- { rel: 'settings.ts', content: SETTINGS_TS },
32
- { rel: 'types.ts', content: TYPES_TS },
33
- { rel: 'client.ts', content: CLIENT_TS },
34
- { rel: 'server.ts', content: SERVER_TS },
35
- { rel: 'provider.tsx', content: PROVIDER_TSX },
36
- { rel: 'dictionaries/en.json', content: PLACEHOLDER_DICT },
37
- { rel: 'dictionaries/nl.json', content: PLACEHOLDER_DICT },
38
- ];
39
- const written = [];
40
- const skipped = [];
41
- for (const { rel, content } of files) {
42
- const abs = path.join(i18nDir, rel);
43
- // Skip files that already exist unless the caller explicitly asked to overwrite
44
- if (fs.existsSync(abs) && !overwrite) {
45
- skipped.push(rel);
46
- continue;
47
- }
48
- fs.writeFileSync(abs, content, 'utf-8');
49
- written.push(rel);
50
- }
51
- return { written, skipped };
52
- }
53
- //# sourceMappingURL=scaffold.js.map