@translation-cms/sync 1.1.99 → 1.2.3

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 (161) hide show
  1. package/dist/bin.d.ts +25 -0
  2. package/dist/bin.d.ts.map +1 -0
  3. package/dist/bin.js +173 -0
  4. package/dist/bin.js.map +1 -0
  5. package/dist/commands/init.d.ts +2 -0
  6. package/dist/commands/init.d.ts.map +1 -0
  7. package/dist/commands/init.js +68 -0
  8. package/dist/commands/init.js.map +1 -0
  9. package/dist/commands/pull.d.ts +3 -0
  10. package/dist/commands/pull.d.ts.map +1 -0
  11. package/dist/commands/pull.js +22 -0
  12. package/dist/commands/pull.js.map +1 -0
  13. package/dist/commands/status.d.ts +3 -0
  14. package/dist/commands/status.d.ts.map +1 -0
  15. package/dist/commands/status.js +46 -0
  16. package/dist/commands/status.js.map +1 -0
  17. package/dist/commands/sync.d.ts +10 -0
  18. package/dist/commands/sync.d.ts.map +1 -0
  19. package/dist/commands/sync.js +20 -0
  20. package/dist/commands/sync.js.map +1 -0
  21. package/dist/commands/watch.d.ts +4 -0
  22. package/dist/commands/watch.d.ts.map +1 -0
  23. package/dist/commands/watch.js +51 -0
  24. package/dist/commands/watch.js.map +1 -0
  25. package/dist/{load-config.d.ts → config/resolve-config.d.ts} +13 -10
  26. package/dist/config/resolve-config.d.ts.map +1 -0
  27. package/dist/{resolve-config.js → config/resolve-config.js} +21 -0
  28. package/dist/config/resolve-config.js.map +1 -0
  29. package/dist/core/api-internals/helpers.d.ts +9 -0
  30. package/dist/core/api-internals/helpers.d.ts.map +1 -0
  31. package/dist/core/api-internals/helpers.js +14 -0
  32. package/dist/core/api-internals/helpers.js.map +1 -0
  33. package/dist/core/api-internals/pull.d.ts +11 -0
  34. package/dist/core/api-internals/pull.d.ts.map +1 -0
  35. package/dist/core/api-internals/pull.js +124 -0
  36. package/dist/core/api-internals/pull.js.map +1 -0
  37. package/dist/core/api-internals/route-config.d.ts +13 -0
  38. package/dist/core/api-internals/route-config.d.ts.map +1 -0
  39. package/dist/core/api-internals/route-config.js +34 -0
  40. package/dist/core/api-internals/route-config.js.map +1 -0
  41. package/dist/core/api-internals/sync.d.ts +12 -0
  42. package/dist/core/api-internals/sync.d.ts.map +1 -0
  43. package/dist/core/api-internals/sync.js +95 -0
  44. package/dist/core/api-internals/sync.js.map +1 -0
  45. package/dist/core/api-internals/types.d.ts +25 -0
  46. package/dist/core/api-internals/types.d.ts.map +1 -0
  47. package/dist/core/api-internals/types.js +5 -0
  48. package/dist/core/api-internals/types.js.map +1 -0
  49. package/dist/core/api.d.ts +11 -0
  50. package/dist/core/api.d.ts.map +1 -0
  51. package/dist/core/api.js +11 -0
  52. package/dist/core/api.js.map +1 -0
  53. package/dist/{sync.d.ts → core/cache.d.ts} +5 -25
  54. package/dist/core/cache.d.ts.map +1 -0
  55. package/dist/core/cache.js +143 -0
  56. package/dist/core/cache.js.map +1 -0
  57. package/dist/core/scanner-internals/ast.d.ts +22 -0
  58. package/dist/core/scanner-internals/ast.d.ts.map +1 -0
  59. package/dist/core/scanner-internals/ast.js +80 -0
  60. package/dist/core/scanner-internals/ast.js.map +1 -0
  61. package/dist/core/scanner-internals/file-walker.d.ts +9 -0
  62. package/dist/core/scanner-internals/file-walker.d.ts.map +1 -0
  63. package/dist/core/scanner-internals/file-walker.js +25 -0
  64. package/dist/core/scanner-internals/file-walker.js.map +1 -0
  65. package/dist/core/scanner-internals/import-resolver.d.ts +13 -0
  66. package/dist/core/scanner-internals/import-resolver.d.ts.map +1 -0
  67. package/dist/core/scanner-internals/import-resolver.js +124 -0
  68. package/dist/core/scanner-internals/import-resolver.js.map +1 -0
  69. package/dist/core/scanner-internals/key-extractor.d.ts +16 -0
  70. package/dist/core/scanner-internals/key-extractor.d.ts.map +1 -0
  71. package/dist/core/scanner-internals/key-extractor.js +168 -0
  72. package/dist/core/scanner-internals/key-extractor.js.map +1 -0
  73. package/dist/core/scanner-internals/route-detector.d.ts +19 -0
  74. package/dist/core/scanner-internals/route-detector.d.ts.map +1 -0
  75. package/dist/core/scanner-internals/route-detector.js +74 -0
  76. package/dist/core/scanner-internals/route-detector.js.map +1 -0
  77. package/dist/core/scanner-internals/types.d.ts +53 -0
  78. package/dist/core/scanner-internals/types.d.ts.map +1 -0
  79. package/dist/core/scanner-internals/types.js +29 -0
  80. package/dist/core/scanner-internals/types.js.map +1 -0
  81. package/dist/core/scanner.d.ts +20 -0
  82. package/dist/core/scanner.d.ts.map +1 -0
  83. package/dist/core/scanner.js +113 -0
  84. package/dist/core/scanner.js.map +1 -0
  85. package/dist/index.d.ts +2 -2
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +2 -2
  88. package/dist/index.js.map +1 -1
  89. package/dist/preview/index.d.ts +38 -0
  90. package/dist/preview/index.d.ts.map +1 -0
  91. package/dist/preview/index.js +114 -0
  92. package/dist/preview/index.js.map +1 -0
  93. package/dist/preview/internals/highlight.d.ts +22 -0
  94. package/dist/preview/internals/highlight.d.ts.map +1 -0
  95. package/dist/preview/internals/highlight.js +153 -0
  96. package/dist/preview/internals/highlight.js.map +1 -0
  97. package/dist/preview/internals/interactions.d.ts +15 -0
  98. package/dist/preview/internals/interactions.d.ts.map +1 -0
  99. package/dist/preview/internals/interactions.js +38 -0
  100. package/dist/preview/internals/interactions.js.map +1 -0
  101. package/dist/preview/internals/locales.d.ts +9 -0
  102. package/dist/preview/internals/locales.d.ts.map +1 -0
  103. package/dist/preview/internals/locales.js +24 -0
  104. package/dist/preview/internals/locales.js.map +1 -0
  105. package/dist/preview/internals/state.d.ts +35 -0
  106. package/dist/preview/internals/state.d.ts.map +1 -0
  107. package/dist/preview/internals/state.js +65 -0
  108. package/dist/preview/internals/state.js.map +1 -0
  109. package/dist/preview/internals/styles.d.ts +8 -0
  110. package/dist/preview/internals/styles.d.ts.map +1 -0
  111. package/dist/preview/internals/styles.js +28 -0
  112. package/dist/preview/internals/styles.js.map +1 -0
  113. package/dist/preview/internals/types.d.ts +49 -0
  114. package/dist/preview/internals/types.d.ts.map +1 -0
  115. package/dist/preview/internals/types.js +5 -0
  116. package/dist/preview/internals/types.js.map +1 -0
  117. package/dist/scaffold/index.d.ts +3 -0
  118. package/dist/scaffold/index.d.ts.map +1 -0
  119. package/dist/scaffold/index.js +3 -0
  120. package/dist/scaffold/index.js.map +1 -0
  121. package/dist/scaffold/intenrals/scaffold.d.ts +7 -0
  122. package/dist/scaffold/intenrals/scaffold.d.ts.map +1 -0
  123. package/dist/scaffold/intenrals/scaffold.js +34 -0
  124. package/dist/scaffold/intenrals/scaffold.js.map +1 -0
  125. package/dist/scaffold/intenrals/templates.d.ts +10 -0
  126. package/dist/scaffold/intenrals/templates.d.ts.map +1 -0
  127. package/dist/{scaffold.js → scaffold/intenrals/templates.js} +10 -38
  128. package/dist/scaffold/intenrals/templates.js.map +1 -0
  129. package/dist/{scaffold.d.ts → scaffold/intenrals/types.d.ts} +4 -2
  130. package/dist/scaffold/intenrals/types.d.ts.map +1 -0
  131. package/dist/scaffold/intenrals/types.js +5 -0
  132. package/dist/scaffold/intenrals/types.js.map +1 -0
  133. package/package.json +7 -7
  134. package/schema.json +64 -0
  135. package/dist/cli-entry.d.ts +0 -3
  136. package/dist/cli-entry.d.ts.map +0 -1
  137. package/dist/cli-entry.js +0 -382
  138. package/dist/cli-entry.js.map +0 -1
  139. package/dist/cli.d.ts +0 -16
  140. package/dist/cli.d.ts.map +0 -1
  141. package/dist/cli.js +0 -16
  142. package/dist/cli.js.map +0 -1
  143. package/dist/load-config.d.ts.map +0 -1
  144. package/dist/load-config.js +0 -24
  145. package/dist/load-config.js.map +0 -1
  146. package/dist/preview.d.ts +0 -88
  147. package/dist/preview.d.ts.map +0 -1
  148. package/dist/preview.js +0 -461
  149. package/dist/preview.js.map +0 -1
  150. package/dist/resolve-config.d.ts +0 -15
  151. package/dist/resolve-config.d.ts.map +0 -1
  152. package/dist/resolve-config.js.map +0 -1
  153. package/dist/scaffold.d.ts.map +0 -1
  154. package/dist/scaffold.js.map +0 -1
  155. package/dist/scanner.d.ts +0 -77
  156. package/dist/scanner.d.ts.map +0 -1
  157. package/dist/scanner.js +0 -555
  158. package/dist/scanner.js.map +0 -1
  159. package/dist/sync.d.ts.map +0 -1
  160. package/dist/sync.js +0 -340
  161. package/dist/sync.js.map +0 -1
package/dist/preview.js DELETED
@@ -1,461 +0,0 @@
1
- /**
2
- * Translation CMS — Preview Listener
3
- *
4
- * Add this to your client app in development mode to enable live in-context
5
- * preview of translations from the CMS.
6
- *
7
- * Usage in Next.js:
8
- * ```tsx
9
- * import { initPreviewListener } from '@translation-cms/sync/preview';
10
- *
11
- * // In a useEffect or root layout (development only)
12
- * if (process.env.NODE_ENV === 'development') {
13
- * initPreviewListener();
14
- * }
15
- * ```
16
- *
17
- * Precise highlighting (recommended):
18
- * Add `data-cms-key="namespace:key"` to elements that render a translation.
19
- * The listener will target those elements directly, bypassing text-search heuristics.
20
- * ```tsx
21
- * <h1 data-cms-key="blog:post.title">{t('blog:post.title')}</h1>
22
- * ```
23
- */
24
- // ---------------------------------------------------------------------------
25
- // State
26
- // ---------------------------------------------------------------------------
27
- let isInitialized = false;
28
- let highlightedElements = [];
29
- let opts = {};
30
- let currentLiveValue = null;
31
- let currentSearchValue = null;
32
- let activeLocale = null;
33
- let interactionBlockerOverlay = null;
34
- let pendingHighlight = null;
35
- /** Registry of action IDs to callbacks. Used by triggerPreviewAction() and the CMS. */
36
- const actionRegistry = new Map();
37
- // ---------------------------------------------------------------------------
38
- // Public functions
39
- // ---------------------------------------------------------------------------
40
- /**
41
- * Initialize the preview listener.
42
- * Safe to call multiple times — only initialises once.
43
- */
44
- export function initPreviewListener(options) {
45
- if (isInitialized)
46
- return;
47
- const isDev = typeof window !== 'undefined' &&
48
- (window.location.hostname === 'localhost' ||
49
- window.location.hostname === '127.0.0.1' ||
50
- window.location.search.includes('preview=true'));
51
- if (!isDev) {
52
- console.log('[CMS Preview] Not in development mode, skipping...');
53
- return;
54
- }
55
- opts = options ?? {};
56
- // Seed activeLocale from the URL's ?locale= param so that the first
57
- // CMS_HIGHLIGHT_KEY doesn't needlessly trigger a locale switch (and
58
- // re-render) when the iframe already loaded with the correct locale.
59
- try {
60
- activeLocale = new URL(window.location.href).searchParams.get('locale');
61
- }
62
- catch {
63
- activeLocale = null;
64
- }
65
- window.addEventListener('message', handleMessage);
66
- injectStyles();
67
- // Only inject the interaction blocker when running inside an iframe
68
- // (i.e. the CMS preview context). Opening the page directly on localhost
69
- // should never have interactions blocked.
70
- if (window.top !== window) {
71
- injectInteractionBlocker();
72
- }
73
- isInitialized = true;
74
- console.log('%c[CMS Preview] Ready', 'color: #10b981; font-weight: bold;');
75
- }
76
- /** Remove the preview listener and clear all highlights. */
77
- export function cleanupPreviewListener() {
78
- if (!isInitialized)
79
- return;
80
- window.removeEventListener('message', handleMessage);
81
- document.removeEventListener('click', blockInteraction, true);
82
- document.removeEventListener('submit', blockInteraction, true);
83
- interactionBlockerOverlay?.remove();
84
- interactionBlockerOverlay = null;
85
- clearHighlights();
86
- actionRegistry.clear();
87
- isInitialized = false;
88
- activeLocale = null;
89
- pendingHighlight = null;
90
- console.log('[CMS Preview] Listener cleaned up');
91
- }
92
- /**
93
- * Register an action that can be triggered by the CMS.
94
- * Useful for opening dialogs, menus, or other UI interactions.
95
- *
96
- * Usage in your app:
97
- * ```tsx
98
- * import { registerPreviewAction } from '@translation-cms/sync';
99
- *
100
- * function MyDialog() {
101
- * const [open, setOpen] = useState(false);
102
- *
103
- * useEffect(() => {
104
- * if (process.env.NODE_ENV === 'development') {
105
- * registerPreviewAction('nav.menu', () => setOpen(true));
106
- * }
107
- * }, []);
108
- *
109
- * return <Dialog open={open} onOpenChange={setOpen}>...</Dialog>;
110
- * }
111
- * ```
112
- *
113
- * When the editor clicks "Show in app" in the CMS for a key inside this menu,
114
- * the CMS notifies the preview and this callback is triggered.
115
- */
116
- export function registerPreviewAction(actionId, callback) {
117
- actionRegistry.set(actionId, callback);
118
- console.log(`[CMS Preview] Registered action: ${actionId}`);
119
- }
120
- /**
121
- * Unregister a previously registered action.
122
- */
123
- export function unregisterPreviewAction(actionId) {
124
- actionRegistry.delete(actionId);
125
- console.log(`[CMS Preview] Unregistered action: ${actionId}`);
126
- }
127
- // ---------------------------------------------------------------------------
128
- // Message handler
129
- // ---------------------------------------------------------------------------
130
- function handleMessage(event) {
131
- const { type } = (event.data ?? {});
132
- if (type === 'CMS_HIGHLIGHT_KEY') {
133
- const { key, value, locale } = event.data;
134
- console.log(`[CMS Preview] Highlighting: ${key} (${locale}) = "${value}"`);
135
- // Only switch locale when it actually changed. Switching unconditionally
136
- // triggers a re-render in the consuming app, which replaces DOM nodes
137
- // and immediately removes the highlight class we just applied.
138
- if (locale && locale !== activeLocale) {
139
- activeLocale = locale;
140
- handleLocaleSwitch(locale);
141
- }
142
- currentLiveValue = null;
143
- pendingHighlight = { key, value };
144
- highlightTranslationKey(value, key);
145
- // If no elements were found (e.g. dialog still animating open), schedule
146
- // a backup retry after the animation should have settled.
147
- if (highlightedElements.length === 0) {
148
- setTimeout(() => {
149
- if (pendingHighlight?.key === key) {
150
- console.log(`[CMS Preview] Retrying highlight for: ${key}`);
151
- highlightTranslationKey(value, key);
152
- }
153
- }, 600);
154
- }
155
- }
156
- else if (type === 'CMS_LIVE_UPDATE') {
157
- const { oldValue, newValue } = event.data;
158
- updateLiveText(oldValue, newValue);
159
- }
160
- else if (type === 'CMS_SWITCH_LOCALE') {
161
- const { locale } = event.data;
162
- activeLocale = locale;
163
- handleLocaleSwitch(locale);
164
- }
165
- else if (type === 'CMS_TRIGGER_ACTION') {
166
- const { actionId } = event.data;
167
- void handleTriggerAction(actionId);
168
- }
169
- }
170
- // ---------------------------------------------------------------------------
171
- // Locale switching
172
- // ---------------------------------------------------------------------------
173
- function handleLocaleSwitch(locale) {
174
- console.log(`[CMS Preview] Switching locale to: ${locale}`);
175
- if (opts.onLocaleSwitch) {
176
- opts.onLocaleSwitch(locale);
177
- return;
178
- }
179
- // Fallback: look for window.__cmsSetLocale (set by the consuming app)
180
- const globalObj = globalThis;
181
- if (typeof globalObj['__cmsSetLocale'] === 'function') {
182
- globalObj['__cmsSetLocale'](locale);
183
- return;
184
- }
185
- console.warn('[CMS Preview] No locale switch handler found. ' +
186
- 'Provide onLocaleSwitch option or expose window.__cmsSetLocale(locale).');
187
- }
188
- // ---------------------------------------------------------------------------
189
- // Action triggering
190
- // ---------------------------------------------------------------------------
191
- function handleTriggerAction(actionId) {
192
- const callback = actionRegistry.get(actionId);
193
- if (callback) {
194
- console.log(`[CMS Preview] Triggering action: ${actionId}`);
195
- try {
196
- Promise.resolve(callback())
197
- .then(waitForDomPaint)
198
- .then(() => {
199
- retryPendingHighlight();
200
- })
201
- .catch(err => {
202
- console.error(`[CMS Preview] Error in action callback for "${actionId}":`, err);
203
- });
204
- return;
205
- }
206
- catch (err) {
207
- console.error(`[CMS Preview] Error triggering action "${actionId}":`, err);
208
- return;
209
- }
210
- }
211
- const globalObj = window;
212
- if (typeof globalObj.__cmsTriggerPreviewAction !== 'function') {
213
- console.warn(`[CMS Preview] No action registered for: "${actionId}".`);
214
- return;
215
- }
216
- console.log(`[CMS Preview] Triggering action via window bridge: ${actionId}`);
217
- try {
218
- Promise.resolve(globalObj.__cmsTriggerPreviewAction(actionId))
219
- .then(waitForDomPaint)
220
- .then(() => {
221
- retryPendingHighlight();
222
- })
223
- .catch(err => {
224
- console.error(`[CMS Preview] Error in bridged action callback for "${actionId}":`, err);
225
- });
226
- }
227
- catch (err) {
228
- console.error(`[CMS Preview] Error triggering bridged action "${actionId}":`, err);
229
- }
230
- }
231
- // ---------------------------------------------------------------------------
232
- // Live text update
233
- // ---------------------------------------------------------------------------
234
- function updateLiveText(oldValue, newValue) {
235
- if (highlightedElements.length === 0)
236
- return;
237
- const searchFor = currentLiveValue ?? (oldValue || currentSearchValue) ?? oldValue;
238
- for (const el of highlightedElements) {
239
- const walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null);
240
- let node;
241
- while ((node = walker.nextNode())) {
242
- if (node.nodeValue?.includes(searchFor)) {
243
- node.nodeValue = node.nodeValue.replace(searchFor, newValue);
244
- }
245
- }
246
- }
247
- currentLiveValue = newValue;
248
- }
249
- // ---------------------------------------------------------------------------
250
- // Highlight logic
251
- // ---------------------------------------------------------------------------
252
- function normalizeForSearch(value) {
253
- return value
254
- .replace(/\{\{[^}]+\}\}/g, '')
255
- .replace(/\{[^}]+\}/g, '')
256
- .replace(/\s+/g, ' ')
257
- .trim();
258
- }
259
- /**
260
- * Strategy 0 (precise): find elements with data-cms-key="key" attribute.
261
- * When present, this is always preferred over text-content heuristics.
262
- */
263
- function findByDataAttribute(key) {
264
- return Array.from(document.querySelectorAll(`[data-cms-key="${CSS.escape(key)}"]`));
265
- }
266
- /** Strategy 1: walk text nodes, return parent elements whose text includes value. */
267
- function findByTextNodes(searchValue) {
268
- const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null);
269
- const results = [];
270
- let node;
271
- while ((node = walker.nextNode())) {
272
- if (node.textContent?.includes(searchValue)) {
273
- const el = node.parentElement;
274
- if (el && !el.classList.contains('cms-preview-highlight')) {
275
- results.push(el);
276
- }
277
- }
278
- }
279
- return results;
280
- }
281
- /**
282
- * Strategy 2: find the most specific element whose combined textContent
283
- * includes the value. Works when text is split across siblings.
284
- */
285
- function findByElementContent(searchValue) {
286
- const all = Array.from(document.body.querySelectorAll('*'));
287
- let best = null;
288
- let bestLen = Infinity;
289
- for (const el of all) {
290
- if (el.textContent?.includes(searchValue) &&
291
- !el.classList.contains('cms-preview-highlight')) {
292
- const len = el.textContent.length;
293
- if (len < bestLen) {
294
- bestLen = len;
295
- best = el;
296
- }
297
- }
298
- }
299
- return best ? [best] : [];
300
- }
301
- /**
302
- * Find and highlight DOM elements that display the given translation.
303
- *
304
- * Search order:
305
- * 0. data-cms-key attribute match (precise — skips all heuristics)
306
- * 1. Exact text node match
307
- * 2. Element content match (handles split siblings)
308
- * 3. Normalized text node match (strips {{interpolation}} placeholders)
309
- * 4. Normalized element match
310
- * 5. Key fallback (when value is empty — i18next renders the key as text)
311
- */
312
- function highlightTranslationKey(value, key) {
313
- clearHighlights();
314
- // --- Strategy 0: data-cms-key attribute (precise) -----------------------
315
- const byAttr = findByDataAttribute(key);
316
- if (byAttr.length > 0) {
317
- applyHighlights(byAttr, 'data-cms-key attribute');
318
- return;
319
- }
320
- // --- Heuristic fallback strategies --------------------------------------
321
- const normalized = value ? normalizeForSearch(value) : '';
322
- const hasInterpolation = value ? normalized !== value : false;
323
- const candidates = [];
324
- if (value && value.trim() !== '') {
325
- candidates.push({ label: 'exact text node', search: value, fn: findByTextNodes }, {
326
- label: 'element content',
327
- search: value,
328
- fn: findByElementContent,
329
- });
330
- if (hasInterpolation && normalized) {
331
- candidates.push({
332
- label: 'normalized text node',
333
- search: normalized,
334
- fn: findByTextNodes,
335
- }, {
336
- label: 'normalized element',
337
- search: normalized,
338
- fn: findByElementContent,
339
- });
340
- }
341
- }
342
- else {
343
- const keyWithoutNs = key.includes(':')
344
- ? key.split(':').slice(1).join(':')
345
- : key;
346
- candidates.push({ label: 'key (full)', search: key, fn: findByTextNodes }, { label: 'key (no ns)', search: keyWithoutNs, fn: findByTextNodes }, { label: 'key element', search: key, fn: findByElementContent }, {
347
- label: 'key element (no ns)',
348
- search: keyWithoutNs,
349
- fn: findByElementContent,
350
- });
351
- }
352
- for (const { label, search, fn } of candidates) {
353
- const found = fn(search);
354
- if (found.length > 0) {
355
- currentSearchValue = search;
356
- applyHighlights(found, label);
357
- return;
358
- }
359
- }
360
- console.warn(`[CMS Preview] No elements found for key: "${key}" value: "${value}"`);
361
- }
362
- function retryPendingHighlight() {
363
- if (!pendingHighlight) {
364
- return;
365
- }
366
- const { key, value } = pendingHighlight;
367
- let attempts = 0;
368
- const maxAttempts = 20;
369
- const run = () => {
370
- const byAttr = findByDataAttribute(key);
371
- if (byAttr.length > 0) {
372
- highlightTranslationKey(value, key);
373
- pendingHighlight = null;
374
- return;
375
- }
376
- attempts += 1;
377
- if (attempts >= maxAttempts) {
378
- highlightTranslationKey(value, key);
379
- pendingHighlight = null;
380
- return;
381
- }
382
- requestAnimationFrame(run);
383
- };
384
- requestAnimationFrame(run);
385
- }
386
- function applyHighlights(elements, matchLabel) {
387
- console.log(`[CMS Preview] Highlighting ${elements.length} element(s) via ${matchLabel}`);
388
- elements.forEach((el, i) => {
389
- el.classList.add('cms-preview-highlight');
390
- highlightedElements.push(el);
391
- if (i === 0) {
392
- el.scrollIntoView({ behavior: 'smooth', block: 'center' });
393
- }
394
- });
395
- }
396
- function clearHighlights() {
397
- for (const el of highlightedElements) {
398
- el.classList.remove('cms-preview-highlight');
399
- }
400
- highlightedElements = [];
401
- currentSearchValue = null;
402
- }
403
- // ---------------------------------------------------------------------------
404
- // Interaction blocking
405
- // ---------------------------------------------------------------------------
406
- /**
407
- * Capture-phase handler that swallows all clicks and form submits.
408
- * Prevents links from navigating and buttons from firing actions.
409
- */
410
- function blockInteraction(e) {
411
- e.preventDefault();
412
- e.stopPropagation();
413
- }
414
- /**
415
- * Inject a transparent full-page overlay that absorbs pointer events,
416
- * and register capture-phase listeners for belt-and-suspenders blocking
417
- * (covers keyboard-activated links/buttons the overlay doesn't intercept).
418
- */
419
- function injectInteractionBlocker() {
420
- const overlay = document.createElement('div');
421
- overlay.id = 'cms-preview-blocker';
422
- overlay.style.cssText =
423
- 'position:fixed;inset:0;z-index:9997;pointer-events:all;cursor:default;';
424
- document.body.appendChild(overlay);
425
- interactionBlockerOverlay = overlay;
426
- document.addEventListener('click', blockInteraction, true);
427
- document.addEventListener('submit', blockInteraction, true);
428
- }
429
- // ---------------------------------------------------------------------------
430
- // Styles
431
- // ---------------------------------------------------------------------------
432
- function injectStyles() {
433
- const custom = opts.highlightStyles ?? {};
434
- const outline = custom.outline ?? '2px solid #3B82F6';
435
- const outlineOffset = custom.outlineOffset ?? '3px';
436
- const borderRadius = custom.borderRadius ?? '3px';
437
- const backgroundColor = custom.backgroundColor ?? 'transparent';
438
- const style = document.createElement('style');
439
- style.textContent = `
440
- .cms-preview-highlight {
441
- outline: ${outline} !important;
442
- outline-offset: ${outlineOffset} !important;
443
- border-radius: ${borderRadius};
444
- background-color: ${backgroundColor};
445
- position: relative;
446
- z-index: 9999;
447
- transition: outline 0.15s ease;
448
- }
449
- `;
450
- document.head.appendChild(style);
451
- }
452
- function waitForDomPaint() {
453
- return new Promise(resolve => {
454
- requestAnimationFrame(() => {
455
- requestAnimationFrame(() => {
456
- resolve();
457
- });
458
- });
459
- });
460
- }
461
- //# sourceMappingURL=preview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { TranslationsConfig } from './load-config.js';
2
- /**
3
- * Runtime config passed to all CLI operations.
4
- * Resolved from CLI args > env vars > config file (priority order).
5
- */
6
- export interface Config {
7
- projectId: string;
8
- apiKey: string;
9
- cmsUrl: string;
10
- }
11
- export declare function loadEnvLocal(root: string): Record<string, string>;
12
- export declare function parseArgs(): Partial<Config>;
13
- export declare function findProjectRoot(): string;
14
- export declare function resolveConfig(cwd?: string, fileConfig?: TranslationsConfig): Config;
15
- //# sourceMappingURL=resolve-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../src/resolve-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,MAAM;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBjE;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAU3C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAaxC;AAED,wBAAgB,aAAa,CACzB,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,kBAAkB,GAChC,MAAM,CA4CR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-config.js","sourceRoot":"","sources":["../src/resolve-config.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAqWA,MAAM,WAAW,eAAe;IAC5B,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CA8BlE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CnB,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ChB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFjB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GjB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DpB,CAAC;AAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAkBjE,MAAM,UAAU,YAAY,CAAC,IAAqB;IAC9C,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAEpD,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,KAAK,GAA4C;QACnD,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE;QAC5C,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE;QACxC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE;QACxC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE;QAC9C,EAAE,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC1D,EAAE,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,EAAE;KAC7D,CAAC;IAEF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,SAAS;QACb,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC"}
package/dist/scanner.d.ts DELETED
@@ -1,77 +0,0 @@
1
- export declare const DEFAULT_EXCLUDED_DIRS: Set<string>;
2
- export declare const DEFAULT_SOURCE_EXTENSIONS: Set<string>;
3
- export declare const DEFAULT_RESERVED_CSS_NAMESPACES: Set<string>;
4
- /** Options that control the file-system scan behaviour. */
5
- export interface ScanOptions {
6
- /**
7
- * Extra directories to exclude on top of the built-in defaults.
8
- * @example ["e2e", "fixtures"]
9
- */
10
- excludedDirs?: string[];
11
- /**
12
- * Override the full set of file extensions to scan.
13
- * When omitted the defaults (.ts .tsx .js .jsx) are used.
14
- */
15
- sourceExtensions?: string[];
16
- /**
17
- * Extra CSS/Tailwind namespace keywords that must never be treated as
18
- * translation namespaces. Merged with the built-in reserved set.
19
- */
20
- reservedCssNamespaces?: string[];
21
- /**
22
- * External preview routes from database or config (namespace:key → routes[])
23
- * These are applied in Pass 3.
24
- * Keys are route patterns, values are mock params for dynamic segments.
25
- * @example
26
- * {
27
- * "/[locale]/blog/[slug]": { "slug": "first-post" },
28
- * "/[locale]/products/[slug]": { "slug": "product-a" }
29
- * }
30
- */
31
- routeParams?: Record<string, Record<string, string>>;
32
- /**
33
- * TypeScript path mappings from tsconfig.json (for resolving aliased imports).
34
- * @example { "@/*": ["./src/*"] }
35
- */
36
- pathMappings?: Record<string, string[]>;
37
- /**
38
- * Project root directory (used for resolving path aliases).
39
- * Defaults to the root directory passed to scanProject.
40
- */
41
- projectRoot?: string;
42
- }
43
- /** A preview route — either a plain path string or an object with per-route params. */
44
- export type PreviewRoute = string | {
45
- route: string;
46
- params?: Record<string, string>;
47
- };
48
- /** namespace → (key → previewRoutes[]) */
49
- export type NamespaceMap = Record<string, Map<string, PreviewRoute[]>>;
50
- /** Return the route string key used for deduplication. */
51
- export declare function routeKey(r: PreviewRoute): string;
52
- export declare function walkFiles(dir: string, excludedDirs: Set<string>, sourceExtensions: Set<string>): Generator<string>;
53
- /**
54
- * Returns true when a page file only calls redirect() without rendering any JSX.
55
- * Such pages are skipped from the preview route list because they have no UI to preview.
56
- */
57
- export declare function isRedirectOnlyPage(filePath: string): boolean;
58
- /**
59
- * Maps a source file path to Next.js route string(s).
60
- * - page.tsx → the route template it represents (e.g. /blog/[slug], /[locale]/about)
61
- * - layout.tsx → the route template of its directory
62
- * - Dynamic segments are kept as-is — resolved at preview time via project preview_params
63
- * - Redirect-only pages (no JSX, just redirect()) → []
64
- * - All other files (components, hooks, …) → []
65
- */
66
- export declare function filePathToRoute(root: string, filePath: string): string[];
67
- export declare function extractKeysFromFile(filePath: string, routes: string[], result: NamespaceMap, additionalReservedCssNamespaces?: string[]): void;
68
- /**
69
- * Scans the project for translation keys and optionally merges external preview routes.
70
- *
71
- * Pass 1: Scan all files, extracting keys and associating them with page/layout routes.
72
- * Pass 2: For each page/layout, walk its import tree to assign keys in deeply-nested
73
- * components to the correct preview route.
74
- * Pass 3: Merge external preview routes from database or config.
75
- */
76
- export declare function scanProject(root: string, opts?: ScanOptions): NamespaceMap;
77
- //# sourceMappingURL=scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,qBAAqB,aAWhC,CAAC;AAEH,eAAO,MAAM,yBAAyB,aAKpC,CAAC;AAEH,eAAO,MAAM,+BAA+B,aA2B1C,CAAC;AAMH,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uFAAuF;AACvF,MAAM,MAAM,YAAY,GAClB,MAAM,GACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAEvE,0DAA0D;AAC1D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAEhD;AAsGD,wBAAiB,SAAS,CACtB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC9B,SAAS,CAAC,MAAM,CAAC,CAgBnB;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAkB5D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBxE;AA6BD,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,YAAY,EACpB,+BAA+B,CAAC,EAAE,MAAM,EAAE,GAC3C,IAAI,CAiIN;AA6JD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,CAuH1E"}