@embeddables/cli 0.6.7 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/commands/save.d.ts +22 -0
- package/dist/commands/save.d.ts.map +1 -1
- package/dist/commands/save.js +65 -3
- package/dist/compiler/parsePage.js +27 -6
- package/dist/compiler/reverse.d.ts.map +1 -1
- package/dist/compiler/reverse.js +14 -5
- package/dist/helpers/TEMP helpers file.d.ts +1 -0
- package/dist/helpers/TEMP helpers file.d.ts.map +1 -0
- package/dist/helpers/TEMP helpers file.js +1 -0
- package/dist/helpers/json.d.ts +47 -0
- package/dist/helpers/json.d.ts.map +1 -0
- package/dist/helpers/json.js +622 -0
- package/dist/helpers/utils.d.ts +2 -0
- package/dist/helpers/utils.d.ts.map +1 -0
- package/dist/helpers/utils.js +4 -0
- package/dist/logger.d.ts +10 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +17 -0
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/server.js +10 -4
- package/dist/stdout.d.ts +17 -0
- package/dist/stdout.d.ts.map +1 -0
- package/dist/stdout.js +23 -0
- package/dist/types-builder.d.ts +1 -1
- package/dist/types-builder.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,6 +51,20 @@ embeddables/
|
|
|
51
51
|
.generated/ # Compiled JSON output
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
## Upgrading the CLI
|
|
55
|
+
|
|
56
|
+
When a new CLI version is released, update with:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
embeddables upgrade
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
You can check your currently installed version with:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
embeddables -v
|
|
66
|
+
```
|
|
67
|
+
|
|
54
68
|
## Commands
|
|
55
69
|
|
|
56
70
|
### `embeddables init`
|
package/dist/commands/save.d.ts
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
import type { HistoryCommand } from '../types-builder.js';
|
|
2
|
+
export type EditHistoryDescription = {
|
|
3
|
+
origin: string;
|
|
4
|
+
description: string;
|
|
5
|
+
} | {
|
|
6
|
+
overflowed: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type SaveEmbeddableVersionParams = {
|
|
9
|
+
embeddableId: string;
|
|
10
|
+
jsonString: string;
|
|
11
|
+
userId: string;
|
|
12
|
+
projectId: string;
|
|
13
|
+
label?: string;
|
|
14
|
+
fromVersionNumber: number;
|
|
15
|
+
editHistoryLength?: number;
|
|
16
|
+
editHistoryDescriptions?: EditHistoryDescription[];
|
|
17
|
+
workingDraftId?: string;
|
|
18
|
+
editHistoryStorageKey?: string;
|
|
19
|
+
editHistory?: HistoryCommand[];
|
|
20
|
+
branchId?: string | null;
|
|
21
|
+
branchMergedId?: string | null;
|
|
22
|
+
};
|
|
1
23
|
export declare function runSave(opts: {
|
|
2
24
|
id?: string;
|
|
3
25
|
label?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,qBAAqB,CAAA;AAgC5B,MAAM,MAAM,sBAAsB,GAC9B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,CAAA;AAE3B,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAkND,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,iBAoBA"}
|
package/dist/commands/save.js
CHANGED
|
@@ -8,6 +8,8 @@ import { compileAllPages } from '../compiler/index.js';
|
|
|
8
8
|
import { formatError } from '../compiler/errors.js';
|
|
9
9
|
import { promptForLocalEmbeddable, promptForProject } from '../prompts/index.js';
|
|
10
10
|
import { WEB_APP_BASE_URL } from '../constants.js';
|
|
11
|
+
import { translateJsonDiffToEditCommands } from '../helpers/json.js';
|
|
12
|
+
import { generateId } from '../helpers/utils.js';
|
|
11
13
|
/** Error with optional gray detail line (hint/next step) for the user. */
|
|
12
14
|
class SaveError extends Error {
|
|
13
15
|
detail;
|
|
@@ -90,7 +92,9 @@ function getBranchFromConfig(embeddableId) {
|
|
|
90
92
|
}
|
|
91
93
|
/** Slug for branch name/id for versioned filenames (e.g. "my branch" -> "my_branch"). */
|
|
92
94
|
function slugForBranch(nameOrId) {
|
|
93
|
-
return String(nameOrId)
|
|
95
|
+
return (String(nameOrId)
|
|
96
|
+
.replace(/[^a-zA-Z0-9_.-]/g, '_')
|
|
97
|
+
.replace(/_+/g, '_') || 'main');
|
|
94
98
|
}
|
|
95
99
|
/** Get branch slug from config (_branch_name preferred, else _branch_id, else main). */
|
|
96
100
|
function getBranchSlugFromConfig(embeddableId) {
|
|
@@ -320,10 +324,11 @@ async function runSaveInner(opts) {
|
|
|
320
324
|
fromVersionNumber = detectedVersion;
|
|
321
325
|
}
|
|
322
326
|
// 7b. Check for other users' drafts on this version; warn and optionally abort
|
|
327
|
+
let currentUserId = null;
|
|
323
328
|
const supabase = await getAuthenticatedSupabaseClient();
|
|
324
329
|
if (supabase) {
|
|
325
330
|
const { data: { user }, } = await supabase.auth.getUser();
|
|
326
|
-
|
|
331
|
+
currentUserId = user?.id ?? null;
|
|
327
332
|
if (currentUserId) {
|
|
328
333
|
const branchIdForDrafts = effectiveBranch ?? null;
|
|
329
334
|
const otherDrafts = await fetchOtherUsersDrafts(supabase, embeddableId, fromVersionNumber, branchIdForDrafts, currentUserId);
|
|
@@ -331,7 +336,9 @@ async function runSaveInner(opts) {
|
|
|
331
336
|
const names = otherDrafts
|
|
332
337
|
.map((d) => d.author_name?.trim() || d.author_id || 'Someone')
|
|
333
338
|
.filter((n, i, a) => a.indexOf(n) === i);
|
|
334
|
-
const namesText = names.length === 1
|
|
339
|
+
const namesText = names.length === 1
|
|
340
|
+
? names[0]
|
|
341
|
+
: `${names.slice(0, -1).join(', ')} and ${names[names.length - 1]}`;
|
|
335
342
|
console.log('');
|
|
336
343
|
console.warn(pc.yellow(`⚠ ${namesText} ${names.length === 1 ? 'has' : 'have'} unsaved edits on version ${fromVersionNumber}. Saving may cause conflicts.`));
|
|
337
344
|
const { proceed } = await prompts({
|
|
@@ -354,11 +361,44 @@ async function runSaveInner(opts) {
|
|
|
354
361
|
}
|
|
355
362
|
// 8. POST to save-version API
|
|
356
363
|
console.log(pc.cyan(`Saving embeddable (based on v${fromVersionNumber})...`));
|
|
364
|
+
// Resolve current user id (required by API)
|
|
365
|
+
if (!currentUserId && supabase) {
|
|
366
|
+
const { data: { user }, } = await supabase.auth.getUser();
|
|
367
|
+
currentUserId = user?.id ?? null;
|
|
368
|
+
}
|
|
369
|
+
if (!currentUserId) {
|
|
370
|
+
throw new SaveError('You must be logged in to save.', 'Run "embeddables login" to authenticate.');
|
|
371
|
+
}
|
|
372
|
+
// Previous version JSON: from versioned snapshot file, or {} if not found (e.g. --from-version without pull)
|
|
373
|
+
const previousVersionPath = path.join(generatedDir, `embeddable-${getBranchSlugFromConfig(embeddableId)}@${fromVersionNumber}.json`);
|
|
374
|
+
const legacyVersionPath = path.join(generatedDir, `embeddable-v${fromVersionNumber}.json`);
|
|
375
|
+
const previousJsonContent = fs.existsSync(previousVersionPath)
|
|
376
|
+
? fs.readFileSync(previousVersionPath, 'utf8')
|
|
377
|
+
: fs.existsSync(legacyVersionPath)
|
|
378
|
+
? fs.readFileSync(legacyVersionPath, 'utf8')
|
|
379
|
+
: '{}';
|
|
380
|
+
const commands = translateJsonDiffToEditCommands({
|
|
381
|
+
previousObject: JSON.parse(previousJsonContent),
|
|
382
|
+
currentObject: JSON.parse(jsonContent),
|
|
383
|
+
basePath: [],
|
|
384
|
+
});
|
|
357
385
|
const body = {
|
|
386
|
+
userId: currentUserId,
|
|
358
387
|
embeddableId,
|
|
359
388
|
jsonString: JSON.stringify(embeddableJson),
|
|
360
389
|
projectId,
|
|
361
390
|
fromVersionNumber,
|
|
391
|
+
editHistoryLength: 1,
|
|
392
|
+
editHistoryDescriptions: [{ origin: 'CLI', description: 'Saved version from CLI' }],
|
|
393
|
+
editHistory: [
|
|
394
|
+
setMultipleFlowUpdates({
|
|
395
|
+
commands,
|
|
396
|
+
metadata: {
|
|
397
|
+
description: 'Saved version from CLI',
|
|
398
|
+
trigger: { origin: 'CLI', editor: 'CLI' },
|
|
399
|
+
},
|
|
400
|
+
}),
|
|
401
|
+
],
|
|
362
402
|
};
|
|
363
403
|
if (opts.label) {
|
|
364
404
|
body.label = opts.label;
|
|
@@ -476,3 +516,25 @@ async function runSaveInner(opts) {
|
|
|
476
516
|
fs.writeFileSync(versionedPath, jsonContent, 'utf8');
|
|
477
517
|
console.log(pc.cyan(`✓ Saved version file to ${versionedPath}`));
|
|
478
518
|
}
|
|
519
|
+
function setMultipleFlowUpdates({ commands, metadata, }) {
|
|
520
|
+
const type = 'set_multiple_embeddable_updates';
|
|
521
|
+
const simpleCommandTypes = {
|
|
522
|
+
add: 'add_embeddable_property',
|
|
523
|
+
remove: 'remove_embeddable_property',
|
|
524
|
+
set: 'update_embeddable_property',
|
|
525
|
+
move: 'move_embeddable_property',
|
|
526
|
+
};
|
|
527
|
+
//* Map the commands to the correct type and data
|
|
528
|
+
const mappedCommands = commands.map((command) => ({
|
|
529
|
+
type: command.type in Object.keys(simpleCommandTypes)
|
|
530
|
+
? simpleCommandTypes[command.type]
|
|
531
|
+
: command.type,
|
|
532
|
+
data: command.data,
|
|
533
|
+
}));
|
|
534
|
+
return {
|
|
535
|
+
id: generateId('edit'),
|
|
536
|
+
type,
|
|
537
|
+
data: { commands: mappedCommands },
|
|
538
|
+
metadata,
|
|
539
|
+
};
|
|
540
|
+
}
|
|
@@ -426,6 +426,10 @@ function attrsToProps(attrs, constEnv, filePath, validationFunctionSource) {
|
|
|
426
426
|
}
|
|
427
427
|
throw new CompileError(`Unsupported JSX attribute value for "${name}".`, loc(filePath, a));
|
|
428
428
|
}
|
|
429
|
+
// When validation_formula is not "custom", custom_validation_function is ignored and omitted (removed on save).
|
|
430
|
+
if (out.validation_formula != null && out.validation_formula !== 'custom' && 'custom_validation_function' in out) {
|
|
431
|
+
delete out.custom_validation_function;
|
|
432
|
+
}
|
|
429
433
|
return out;
|
|
430
434
|
}
|
|
431
435
|
function getJsxTagName(n) {
|
|
@@ -506,25 +510,42 @@ const HTML_VOID_ELEMENTS = new Set([
|
|
|
506
510
|
'track',
|
|
507
511
|
'wbr',
|
|
508
512
|
]);
|
|
513
|
+
/**
|
|
514
|
+
* Map React/JSX attribute names to HTML attribute names so serialized HTML
|
|
515
|
+
* uses valid attributes (e.g. class for CSS, not className).
|
|
516
|
+
*/
|
|
517
|
+
function jsxAttrNameToHTMLAttrName(jsxName) {
|
|
518
|
+
switch (jsxName) {
|
|
519
|
+
case 'className':
|
|
520
|
+
return 'class';
|
|
521
|
+
case 'htmlFor':
|
|
522
|
+
return 'for';
|
|
523
|
+
case 'tabIndex':
|
|
524
|
+
return 'tabindex';
|
|
525
|
+
default:
|
|
526
|
+
return jsxName;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
509
529
|
/**
|
|
510
530
|
* Converts a JSX element to HTML string.
|
|
511
531
|
*/
|
|
512
532
|
function jsxElementToHTML(el, constEnv, filePath) {
|
|
513
533
|
const opening = el.openingElement;
|
|
514
534
|
const tagName = getJsxTagName(opening.name);
|
|
515
|
-
// Build attributes string
|
|
535
|
+
// Build attributes string (use HTML attribute names so class selectors work)
|
|
516
536
|
const attrs = [];
|
|
517
537
|
for (const attr of opening.attributes) {
|
|
518
538
|
if (attr.type === 'JSXAttribute') {
|
|
519
539
|
const name = attr.name.type === 'JSXIdentifier'
|
|
520
540
|
? attr.name.name
|
|
521
541
|
: `${attr.name.namespace.name}:${attr.name.name.name}`;
|
|
542
|
+
const htmlName = jsxAttrNameToHTMLAttrName(name);
|
|
522
543
|
if (!attr.value) {
|
|
523
544
|
// Boolean attribute
|
|
524
|
-
attrs.push(
|
|
545
|
+
attrs.push(htmlName);
|
|
525
546
|
}
|
|
526
547
|
else if (attr.value.type === 'StringLiteral') {
|
|
527
|
-
attrs.push(`${
|
|
548
|
+
attrs.push(`${htmlName}="${escapeHTMLAttribute(attr.value.value)}"`);
|
|
528
549
|
}
|
|
529
550
|
else if (attr.value.type === 'JSXExpressionContainer') {
|
|
530
551
|
try {
|
|
@@ -532,13 +553,13 @@ function jsxElementToHTML(el, constEnv, filePath) {
|
|
|
532
553
|
if (name === 'style' && typeof value === 'object' && value !== null) {
|
|
533
554
|
// Convert style object to CSS string
|
|
534
555
|
const cssString = styleObjectToCSS(value);
|
|
535
|
-
attrs.push(`${
|
|
556
|
+
attrs.push(`${htmlName}="${escapeHTMLAttribute(cssString)}"`);
|
|
536
557
|
}
|
|
537
558
|
else if (typeof value === 'string') {
|
|
538
|
-
attrs.push(`${
|
|
559
|
+
attrs.push(`${htmlName}="${escapeHTMLAttribute(value)}"`);
|
|
539
560
|
}
|
|
540
561
|
else if (typeof value === 'number' || typeof value === 'boolean') {
|
|
541
|
-
attrs.push(`${
|
|
562
|
+
attrs.push(`${htmlName}="${String(value)}"`);
|
|
542
563
|
}
|
|
543
564
|
}
|
|
544
565
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reverse.d.ts","sourceRoot":"","sources":["../../src/compiler/reverse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAA;AAqlBzD,wBAAsB,cAAc,CAClC,UAAU,EAAE;IACV,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,cAAc,CAAC,EAAE,GAAG,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,EACD,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE;IACL,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5E,iBAoFF;
|
|
1
|
+
{"version":3,"file":"reverse.d.ts","sourceRoot":"","sources":["../../src/compiler/reverse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAA;AAqlBzD,wBAAsB,cAAc,CAClC,UAAU,EAAE;IACV,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,cAAc,CAAC,EAAE,GAAG,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,EACD,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE;IACL,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5E,iBAoFF;AAgiDD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD"}
|
package/dist/compiler/reverse.js
CHANGED
|
@@ -770,6 +770,11 @@ function generateCustomValidationFunctions(node) {
|
|
|
770
770
|
}
|
|
771
771
|
function collect(n) {
|
|
772
772
|
if (n.component.type === 'InputBox') {
|
|
773
|
+
if (n.component.validation_formula !== 'custom') {
|
|
774
|
+
for (const child of n.children)
|
|
775
|
+
collect(child);
|
|
776
|
+
return;
|
|
777
|
+
}
|
|
773
778
|
const value = n.component.custom_validation_function;
|
|
774
779
|
if (typeof value !== 'string' || !value)
|
|
775
780
|
return;
|
|
@@ -968,8 +973,10 @@ function generateJSX(node, indent = 4, pageKey, componentId, nameMap, validation
|
|
|
968
973
|
if (value === null || value === undefined)
|
|
969
974
|
continue;
|
|
970
975
|
if (typeof value === 'string') {
|
|
971
|
-
// custom_validation_function: emit
|
|
976
|
+
// custom_validation_function: only emit when validation_formula is "custom"; otherwise ignore (removed on save).
|
|
972
977
|
if (key === 'custom_validation_function') {
|
|
978
|
+
if (comp.validation_formula !== 'custom')
|
|
979
|
+
continue;
|
|
973
980
|
const fnName = validationFunctionNameMap?.get(comp.id) ?? identifierToGeneratedName?.get(value) ?? value;
|
|
974
981
|
props.push(`custom_validation_function={${fnName}}`);
|
|
975
982
|
continue;
|
|
@@ -1210,13 +1217,15 @@ function htmlToJSXChildren(html, indent) {
|
|
|
1210
1217
|
if (!attrMatch[0].includes('=')) {
|
|
1211
1218
|
continue;
|
|
1212
1219
|
}
|
|
1213
|
-
// Convert HTML attribute names to JSX (e.g., class -> className, for -> htmlFor)
|
|
1220
|
+
// Convert HTML attribute names to JSX (e.g., class -> className, for -> htmlFor).
|
|
1221
|
+
// Normalize classname (wrong serialization) to className so round-trip fixes bad HTML.
|
|
1214
1222
|
let jsxAttrName = attrName;
|
|
1215
|
-
|
|
1223
|
+
const attrLower = attrName.toLowerCase();
|
|
1224
|
+
if (attrLower === 'class' || attrLower === 'classname')
|
|
1216
1225
|
jsxAttrName = 'className';
|
|
1217
|
-
else if (
|
|
1226
|
+
else if (attrLower === 'for')
|
|
1218
1227
|
jsxAttrName = 'htmlFor';
|
|
1219
|
-
else if (
|
|
1228
|
+
else if (attrLower === 'tabindex')
|
|
1220
1229
|
jsxAttrName = 'tabIndex';
|
|
1221
1230
|
// Handle style attribute: convert CSS string to JSX object
|
|
1222
1231
|
if (attrName === 'style' && attrValue) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=TEMP%20helpers%20file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TEMP helpers file.d.ts","sourceRoot":"","sources":["../../src/helpers/TEMP helpers file.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Component, type GlobalComponentLocation, type InsertPosition, SetMultipleEmbeddableUpdateCommands } from '../types-builder';
|
|
2
|
+
export declare function translateJsonDiffToEditCommands({ previousObject, currentObject, path, objectMatchKeys, basePath, forceObjectKeyInFirstLevelIteration, extraAlternativePathObjectMatchKeys, }: {
|
|
3
|
+
previousObject: any;
|
|
4
|
+
currentObject: any;
|
|
5
|
+
path?: string[];
|
|
6
|
+
objectMatchKeys?: {
|
|
7
|
+
[k: string]: string;
|
|
8
|
+
};
|
|
9
|
+
basePath?: string[];
|
|
10
|
+
forceObjectKeyInFirstLevelIteration?: string;
|
|
11
|
+
extraAlternativePathObjectMatchKeys?: string[];
|
|
12
|
+
}): SetMultipleEmbeddableUpdateCommands;
|
|
13
|
+
export declare function translateArrayJsonDiffToEditCommands({ previousArray, currentArray, path, objectMatchKeys, basePath, extraAlternativePathObjectMatchKeys, }: {
|
|
14
|
+
previousArray: any[];
|
|
15
|
+
currentArray: any[];
|
|
16
|
+
path?: string[];
|
|
17
|
+
objectMatchKeys?: {
|
|
18
|
+
[k: string]: string;
|
|
19
|
+
};
|
|
20
|
+
basePath?: string[];
|
|
21
|
+
extraAlternativePathObjectMatchKeys?: string[];
|
|
22
|
+
}): SetMultipleEmbeddableUpdateCommands;
|
|
23
|
+
export declare function findAncestorsOfComponent({ components, componentId, }: {
|
|
24
|
+
components: Component[];
|
|
25
|
+
componentId: string;
|
|
26
|
+
}): Component[];
|
|
27
|
+
export declare function getInsertPositionForComponent({ afterComponentId, beforeComponentId, parentComponentId, globalLocation, components, isGlobalComponents, }: {
|
|
28
|
+
afterComponentId?: string;
|
|
29
|
+
beforeComponentId?: string;
|
|
30
|
+
parentComponentId?: string;
|
|
31
|
+
globalLocation?: GlobalComponentLocation;
|
|
32
|
+
components: Component[];
|
|
33
|
+
isGlobalComponents?: boolean;
|
|
34
|
+
}): InsertPosition | undefined;
|
|
35
|
+
export declare function deepEqual(obj1: any, obj2: any): boolean;
|
|
36
|
+
export declare function findUniqueKey(arr: {
|
|
37
|
+
[key: string]: any;
|
|
38
|
+
}[]): string[];
|
|
39
|
+
export declare function findDifferentPaths(obj1: any, obj2: any): Record<string, string[]>;
|
|
40
|
+
export declare function getValueByPath(obj: any, path: string[]): any;
|
|
41
|
+
export declare function getBreakLineStringFromArray(input: any): any;
|
|
42
|
+
export declare function getMultilanguageKey({ attributeKey, languageKey, }: {
|
|
43
|
+
attributeKey: string;
|
|
44
|
+
languageKey: string;
|
|
45
|
+
}): string;
|
|
46
|
+
export declare function getArrayFromBreakLineString(input: string): string[];
|
|
47
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/helpers/json.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,mCAAmC,EACpC,MAAM,kBAAkB,CAAA;AAEzB,wBAAgB,+BAA+B,CAAC,EAC9C,cAAmB,EACnB,aAAkB,EAClB,IAAS,EACT,eAAoB,EACpB,QAAa,EACb,mCAAmC,EACnC,mCAAwC,GACzC,EAAE;IACD,cAAc,EAAE,GAAG,CAAA;IACnB,aAAa,EAAE,GAAG,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,eAAe,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,mCAAmC,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/C,GAAG,mCAAmC,CA6JtC;AAED,wBAAgB,oCAAoC,CAAC,EACnD,aAAkB,EAClB,YAAiB,EACjB,IAAS,EACT,eAAoB,EACpB,QAAa,EACb,mCAAwC,GACzC,EAAE;IACD,aAAa,EAAE,GAAG,EAAE,CAAA;IACpB,YAAY,EAAE,GAAG,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,eAAe,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,mCAAmC,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/C,GAAG,mCAAmC,CA2MtC;AAGD,wBAAgB,wBAAwB,CAAC,EACvC,UAAU,EACV,WAAW,GACZ,EAAE;IACD,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,SAAS,EAAE,CAsBd;AAsDD,wBAAgB,6BAA6B,CAAC,EAC5C,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,kBAAkB,GACnB,EAAE;IACD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,uBAAuB,CAAA;IACxC,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,GAAG,cAAc,GAAG,SAAS,CAgI7B;AAKD,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,WAkB7C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,CA6BrE;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAqEjF;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAYtD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,GAAG,OAGrD;AAMD,wBAAgB,mBAAmB,CAAC,EAClC,YAAY,EACZ,WAAW,GACZ,EAAE;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,MAAM,CAIT;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,YAGxD"}
|
|
@@ -0,0 +1,622 @@
|
|
|
1
|
+
export function translateJsonDiffToEditCommands({ previousObject = {}, currentObject = {}, path = [], objectMatchKeys = {}, basePath = [], forceObjectKeyInFirstLevelIteration, extraAlternativePathObjectMatchKeys = [], }) {
|
|
2
|
+
const commands = [];
|
|
3
|
+
//* Find which key to identify objects an array by. Default is 'id', but can be overridden by objectMatchKeys
|
|
4
|
+
const defaultObjectMatchKeys = {
|
|
5
|
+
load_tags: 'url',
|
|
6
|
+
content_sources: 'key',
|
|
7
|
+
};
|
|
8
|
+
objectMatchKeys = { ...defaultObjectMatchKeys, ...objectMatchKeys };
|
|
9
|
+
let objectMatchKey = undefined; //* default value
|
|
10
|
+
//* Find the latest occurrence of a key in the path that matches objectMatchKeys
|
|
11
|
+
for (let i = path.length - 1; i >= 0; i--) {
|
|
12
|
+
const pathSegment = path[i];
|
|
13
|
+
if (objectMatchKeys[pathSegment]) {
|
|
14
|
+
objectMatchKey = objectMatchKeys[pathSegment];
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (forceObjectKeyInFirstLevelIteration)
|
|
19
|
+
objectMatchKey = forceObjectKeyInFirstLevelIteration;
|
|
20
|
+
if (!previousObject && !currentObject)
|
|
21
|
+
return commands;
|
|
22
|
+
if (Array.isArray(previousObject) && Array.isArray(currentObject)) {
|
|
23
|
+
const arrayCommands = translateArrayJsonDiffToEditCommands({
|
|
24
|
+
path,
|
|
25
|
+
previousArray: previousObject,
|
|
26
|
+
currentArray: currentObject,
|
|
27
|
+
objectMatchKeys,
|
|
28
|
+
basePath,
|
|
29
|
+
extraAlternativePathObjectMatchKeys,
|
|
30
|
+
});
|
|
31
|
+
commands.push(...arrayCommands);
|
|
32
|
+
return commands;
|
|
33
|
+
}
|
|
34
|
+
//* Get all unique keys from both objects
|
|
35
|
+
const previousKeys = new Set(Object.keys(previousObject || {}));
|
|
36
|
+
const currentKeys = new Set(Object.keys(currentObject || {}));
|
|
37
|
+
const allKeys = new Set(Array.from(previousKeys).concat(Array.from(currentKeys)));
|
|
38
|
+
allKeys.forEach((key) => {
|
|
39
|
+
const currentPath = [...path, key];
|
|
40
|
+
const previousValue = previousObject?.[key];
|
|
41
|
+
const currentValue = currentObject?.[key];
|
|
42
|
+
//* Property was removed
|
|
43
|
+
if (previousKeys.has(key) && !currentKeys.has(key)) {
|
|
44
|
+
if (currentPath[currentPath.length - 1] === key) {
|
|
45
|
+
commands.push({
|
|
46
|
+
type: 'remove',
|
|
47
|
+
data: {
|
|
48
|
+
path: [...basePath, ...currentPath.slice(0, -1)],
|
|
49
|
+
propertyToRemove: key,
|
|
50
|
+
objectMatchKey,
|
|
51
|
+
alternativePathObjectMatchKeys: objectMatchKey
|
|
52
|
+
? [...extraAlternativePathObjectMatchKeys, objectMatchKey]
|
|
53
|
+
: !!extraAlternativePathObjectMatchKeys.length
|
|
54
|
+
? extraAlternativePathObjectMatchKeys
|
|
55
|
+
: undefined,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
commands.push({
|
|
61
|
+
type: 'remove',
|
|
62
|
+
data: {
|
|
63
|
+
path: [...basePath, ...currentPath],
|
|
64
|
+
propertyToRemove: key,
|
|
65
|
+
objectMatchKey,
|
|
66
|
+
alternativePathObjectMatchKeys: objectMatchKey
|
|
67
|
+
? [...extraAlternativePathObjectMatchKeys, objectMatchKey]
|
|
68
|
+
: !!extraAlternativePathObjectMatchKeys.length
|
|
69
|
+
? extraAlternativePathObjectMatchKeys
|
|
70
|
+
: undefined,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
//* Property was added
|
|
77
|
+
if (!previousKeys.has(key) && currentKeys.has(key)) {
|
|
78
|
+
commands.push({
|
|
79
|
+
type: 'set',
|
|
80
|
+
data: {
|
|
81
|
+
path: [...basePath, ...currentPath],
|
|
82
|
+
value: currentValue,
|
|
83
|
+
objectMatchKey,
|
|
84
|
+
alternativePathObjectMatchKeys: objectMatchKey
|
|
85
|
+
? [...extraAlternativePathObjectMatchKeys, objectMatchKey]
|
|
86
|
+
: !!extraAlternativePathObjectMatchKeys.length
|
|
87
|
+
? extraAlternativePathObjectMatchKeys
|
|
88
|
+
: undefined,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
//* Property exists in both - check for changes
|
|
94
|
+
if (previousKeys.has(key) && currentKeys.has(key)) {
|
|
95
|
+
//* If both values are arrays, handle array comparison
|
|
96
|
+
if (Array.isArray(previousValue) && Array.isArray(currentValue)) {
|
|
97
|
+
const arrayCommands = translateArrayJsonDiffToEditCommands({
|
|
98
|
+
path: currentPath,
|
|
99
|
+
previousArray: previousValue,
|
|
100
|
+
currentArray: currentValue,
|
|
101
|
+
objectMatchKeys,
|
|
102
|
+
basePath,
|
|
103
|
+
extraAlternativePathObjectMatchKeys,
|
|
104
|
+
});
|
|
105
|
+
commands.push(...arrayCommands);
|
|
106
|
+
}
|
|
107
|
+
//* If both values are objects (but not arrays), recurse
|
|
108
|
+
else if (previousValue &&
|
|
109
|
+
currentValue &&
|
|
110
|
+
typeof previousValue === 'object' &&
|
|
111
|
+
typeof currentValue === 'object' &&
|
|
112
|
+
!Array.isArray(previousValue) &&
|
|
113
|
+
!Array.isArray(currentValue)) {
|
|
114
|
+
const nestedCommands = translateJsonDiffToEditCommands({
|
|
115
|
+
path: currentPath,
|
|
116
|
+
previousObject: previousValue,
|
|
117
|
+
currentObject: currentValue,
|
|
118
|
+
objectMatchKeys,
|
|
119
|
+
basePath,
|
|
120
|
+
extraAlternativePathObjectMatchKeys,
|
|
121
|
+
});
|
|
122
|
+
commands.push(...nestedCommands);
|
|
123
|
+
}
|
|
124
|
+
//* Primitive value comparison
|
|
125
|
+
else if (!deepEqual(previousValue, currentValue)) {
|
|
126
|
+
commands.push({
|
|
127
|
+
type: 'set',
|
|
128
|
+
data: {
|
|
129
|
+
path: [...basePath, ...currentPath],
|
|
130
|
+
value: currentValue,
|
|
131
|
+
objectMatchKey,
|
|
132
|
+
alternativePathObjectMatchKeys: objectMatchKey
|
|
133
|
+
? [...extraAlternativePathObjectMatchKeys, objectMatchKey]
|
|
134
|
+
: !!extraAlternativePathObjectMatchKeys.length
|
|
135
|
+
? extraAlternativePathObjectMatchKeys
|
|
136
|
+
: undefined,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return commands;
|
|
143
|
+
}
|
|
144
|
+
export function translateArrayJsonDiffToEditCommands({ previousArray = [], currentArray = [], path = [], objectMatchKeys = {}, basePath = [], extraAlternativePathObjectMatchKeys = [], }) {
|
|
145
|
+
const commands = [];
|
|
146
|
+
//* Find which key to identify objects an array by. Default is 'id', but can be overridden by objectMatchKeys
|
|
147
|
+
const defaultObjectMatchKeys = {
|
|
148
|
+
load_tags: 'url',
|
|
149
|
+
content_sources: 'key',
|
|
150
|
+
};
|
|
151
|
+
objectMatchKeys = { ...defaultObjectMatchKeys, ...objectMatchKeys };
|
|
152
|
+
const lastPathSegment = path[path.length - 1] ?? '';
|
|
153
|
+
const objectMatchKey = objectMatchKeys[lastPathSegment] ?? 'id';
|
|
154
|
+
//* Create maps for objects with 'id' field for efficient lookup
|
|
155
|
+
const previousItemsById = new Map();
|
|
156
|
+
const currentItemsById = new Map();
|
|
157
|
+
//* Separate items with and without 'id' field
|
|
158
|
+
const previousWithoutId = [];
|
|
159
|
+
const currentWithoutId = [];
|
|
160
|
+
previousArray.forEach((item, index) => {
|
|
161
|
+
if (item && typeof item === 'object' && item[objectMatchKey]) {
|
|
162
|
+
previousItemsById.set(item[objectMatchKey], { item, index });
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
previousWithoutId.push(item);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
currentArray.forEach((item, index) => {
|
|
169
|
+
if (item && typeof item === 'object' && item[objectMatchKey]) {
|
|
170
|
+
currentItemsById.set(item[objectMatchKey], { item, index });
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
currentWithoutId.push(item);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
//* Handle items with primary key field
|
|
177
|
+
//* Check for removed items
|
|
178
|
+
previousItemsById.forEach(({ item }, id) => {
|
|
179
|
+
if (!currentItemsById.has(id)) {
|
|
180
|
+
commands.push({
|
|
181
|
+
type: 'remove',
|
|
182
|
+
data: {
|
|
183
|
+
path: [...basePath, ...path, id],
|
|
184
|
+
objectMatchKey,
|
|
185
|
+
alternativePathObjectMatchKeys: [...extraAlternativePathObjectMatchKeys, objectMatchKey],
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
//* Check for added and modified items
|
|
191
|
+
currentItemsById.forEach(({ item: currentItem, index }, id) => {
|
|
192
|
+
if (!previousItemsById.has(id)) {
|
|
193
|
+
let position;
|
|
194
|
+
//* Check if the item is a component
|
|
195
|
+
if (currentItem.type && currentItem.id && currentItem.key) {
|
|
196
|
+
//* Components have a type property
|
|
197
|
+
const component = currentItem;
|
|
198
|
+
position = getInsertPositionForComponent({
|
|
199
|
+
afterComponentId: index > 0 ? currentArray[index - 1][objectMatchKey] : undefined,
|
|
200
|
+
beforeComponentId: index < currentArray.length - 1 ? currentArray[index + 1][objectMatchKey] : undefined,
|
|
201
|
+
parentComponentId: component.parent_id || undefined,
|
|
202
|
+
globalLocation: component._location || undefined,
|
|
203
|
+
components: currentArray,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
//* For non-components, use the original position logic
|
|
208
|
+
position = {
|
|
209
|
+
after: index > 0 ? currentArray[index - 1][objectMatchKey] : undefined,
|
|
210
|
+
before: index < currentArray.length - 1 ? currentArray[index + 1][objectMatchKey] : undefined,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
//* Item was added
|
|
214
|
+
commands.push({
|
|
215
|
+
type: 'add',
|
|
216
|
+
data: {
|
|
217
|
+
path: [...basePath, ...path],
|
|
218
|
+
value: currentItem,
|
|
219
|
+
position,
|
|
220
|
+
objectMatchKey,
|
|
221
|
+
alternativePathObjectMatchKeys: [...extraAlternativePathObjectMatchKeys, objectMatchKey],
|
|
222
|
+
},
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
//* Item exists, check for modifications
|
|
227
|
+
const previousItem = previousItemsById.get(id).item;
|
|
228
|
+
if (!deepEqual(previousItem, currentItem)) {
|
|
229
|
+
//* If it's an object, recurse to find specific changes
|
|
230
|
+
if (typeof currentItem === 'object' && typeof previousItem === 'object') {
|
|
231
|
+
const itemPath = [...path, id];
|
|
232
|
+
const nestedCommands = translateJsonDiffToEditCommands({
|
|
233
|
+
path: itemPath,
|
|
234
|
+
previousObject: previousItem,
|
|
235
|
+
currentObject: currentItem,
|
|
236
|
+
objectMatchKeys,
|
|
237
|
+
basePath,
|
|
238
|
+
extraAlternativePathObjectMatchKeys,
|
|
239
|
+
});
|
|
240
|
+
commands.push(...nestedCommands);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
const nestedCommands = translateJsonDiffToEditCommands({
|
|
244
|
+
path: [...path, id],
|
|
245
|
+
previousObject: previousItem,
|
|
246
|
+
currentObject: currentItem,
|
|
247
|
+
objectMatchKeys,
|
|
248
|
+
basePath,
|
|
249
|
+
extraAlternativePathObjectMatchKeys,
|
|
250
|
+
});
|
|
251
|
+
commands.push(...nestedCommands);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
//* Handle items without 'id' field (primitives or objects without id)
|
|
257
|
+
//* If it's an array of primitives, remove all items present in previousArray that are not in currentArray and vice versa.
|
|
258
|
+
const isArrayOfPrimitives = previousWithoutId.every((item) => ['string', 'number', 'boolean'].includes(typeof item)) &&
|
|
259
|
+
currentWithoutId.every((item) => ['string', 'number', 'boolean'].includes(typeof item));
|
|
260
|
+
if (isArrayOfPrimitives) {
|
|
261
|
+
const prevPrimitives = new Set(previousWithoutId);
|
|
262
|
+
const currPrimitives = new Set(currentWithoutId);
|
|
263
|
+
//* Find removed primitives
|
|
264
|
+
prevPrimitives.forEach((item) => {
|
|
265
|
+
if (!currPrimitives.has(item)) {
|
|
266
|
+
commands.push({
|
|
267
|
+
type: 'remove',
|
|
268
|
+
data: {
|
|
269
|
+
alternativePathObjectMatchKeys: [...extraAlternativePathObjectMatchKeys],
|
|
270
|
+
path: [...basePath, ...path, item],
|
|
271
|
+
isStringMatch: typeof item === 'string',
|
|
272
|
+
},
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
//* Find added primitives
|
|
277
|
+
currPrimitives.forEach((item) => {
|
|
278
|
+
if (!prevPrimitives.has(item)) {
|
|
279
|
+
commands.push({
|
|
280
|
+
type: 'add',
|
|
281
|
+
data: {
|
|
282
|
+
alternativePathObjectMatchKeys: [...extraAlternativePathObjectMatchKeys],
|
|
283
|
+
path: [...basePath, ...path],
|
|
284
|
+
value: item,
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
//* Handle array of objects without a primary key
|
|
292
|
+
//* Find a unique key in both previous and current arrays to identify items.
|
|
293
|
+
const previousUniqueKeys = findUniqueKey(previousWithoutId);
|
|
294
|
+
const currentUniqueKeys = findUniqueKey(currentWithoutId);
|
|
295
|
+
//* Find the intersection of the two arrays of keys to get common unique keys.
|
|
296
|
+
const commonUniqueKeys = previousUniqueKeys.filter((key) => currentUniqueKeys.includes(key));
|
|
297
|
+
const uniqueKey = commonUniqueKeys[0];
|
|
298
|
+
if (uniqueKey) {
|
|
299
|
+
//* Prevent infinite recursion: if both arrays without ID have only one element,
|
|
300
|
+
//* compare them directly instead of using recursion
|
|
301
|
+
if (previousWithoutId.length === 1 && currentWithoutId.length === 1) {
|
|
302
|
+
if (!deepEqual(previousWithoutId[0], currentWithoutId[0])) {
|
|
303
|
+
commands.push({
|
|
304
|
+
type: 'set',
|
|
305
|
+
data: { path: [...basePath, ...path], value: currentArray },
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
//* We can identify items in the array by a unique key, so we compare them
|
|
311
|
+
commands.push(...translateArrayJsonDiffToEditCommands({
|
|
312
|
+
previousArray,
|
|
313
|
+
currentArray,
|
|
314
|
+
path,
|
|
315
|
+
objectMatchKeys: { ...objectMatchKeys, [lastPathSegment]: uniqueKey },
|
|
316
|
+
basePath,
|
|
317
|
+
extraAlternativePathObjectMatchKeys,
|
|
318
|
+
}));
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
//* We cannot identify items in the array, as a fallback we treat it as a set of items and update the entire array if it has changed
|
|
323
|
+
if (!deepEqual(previousArray, currentArray)) {
|
|
324
|
+
commands.push({
|
|
325
|
+
type: 'set',
|
|
326
|
+
data: { path: [...basePath, ...path], value: currentArray },
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return commands;
|
|
332
|
+
}
|
|
333
|
+
//* Find ancestors of a component (containers only, from root to direct parent)
|
|
334
|
+
export function findAncestorsOfComponent({ components, componentId, }) {
|
|
335
|
+
const ancestors = [];
|
|
336
|
+
const currentComponent = components.find((c) => c.id === componentId);
|
|
337
|
+
if (!currentComponent)
|
|
338
|
+
return ancestors;
|
|
339
|
+
const parentId = currentComponent.parent_id;
|
|
340
|
+
if (parentId) {
|
|
341
|
+
const parentComponent = components.find((c) => c.id === parentId);
|
|
342
|
+
if (parentComponent && parentComponent.type === 'Container') {
|
|
343
|
+
const parentAncestors = findAncestorsOfComponent({
|
|
344
|
+
components,
|
|
345
|
+
componentId: parentComponent.id,
|
|
346
|
+
});
|
|
347
|
+
ancestors.push(...parentAncestors);
|
|
348
|
+
ancestors.push(parentComponent);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
return ancestors;
|
|
352
|
+
}
|
|
353
|
+
//* Find next sibling component
|
|
354
|
+
function getNextSiblingComponent({ components, currentComponentId, parentId, globalLocation, isGlobalComponents, }) {
|
|
355
|
+
const siblings = components.filter((c) => parentId ? c.parent_id === parentId : isGlobalComponents ? c._location === globalLocation : !c.parent_id);
|
|
356
|
+
const currentIndex = siblings.findIndex((c) => c.id === currentComponentId);
|
|
357
|
+
if (currentIndex >= 0 && currentIndex < siblings.length - 1) {
|
|
358
|
+
return siblings[currentIndex + 1];
|
|
359
|
+
}
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
//* Find previous sibling component
|
|
363
|
+
function getPreviousSiblingComponent({ components, currentComponentId, parentId, globalLocation, isGlobalComponents, }) {
|
|
364
|
+
const siblings = components.filter((c) => parentId ? c.parent_id === parentId : isGlobalComponents ? c._location === globalLocation : !c.parent_id);
|
|
365
|
+
const currentIndex = siblings.findIndex((c) => c.id === currentComponentId);
|
|
366
|
+
if (currentIndex > 0)
|
|
367
|
+
return siblings[currentIndex - 1];
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
export function getInsertPositionForComponent({ afterComponentId, beforeComponentId, parentComponentId, globalLocation, components, isGlobalComponents, }) {
|
|
371
|
+
//* Case 1: I get the afterComponentId
|
|
372
|
+
if (afterComponentId) {
|
|
373
|
+
//* Find the afterElement
|
|
374
|
+
const afterComponent = components.find((c) => c.id === afterComponentId);
|
|
375
|
+
if (afterComponent) {
|
|
376
|
+
//* Find the before compoentn (next sibling of after)
|
|
377
|
+
const beforeElement = getNextSiblingComponent({
|
|
378
|
+
components,
|
|
379
|
+
currentComponentId: afterComponentId,
|
|
380
|
+
parentId: afterComponent.parent_id,
|
|
381
|
+
globalLocation: afterComponent._location,
|
|
382
|
+
isGlobalComponents,
|
|
383
|
+
});
|
|
384
|
+
//* Get ancestors using our new function
|
|
385
|
+
const ancestors = findAncestorsOfComponent({ components, componentId: afterComponentId });
|
|
386
|
+
//* Check if it's global by looking at the last ancestor's _location
|
|
387
|
+
let isGlobal = false;
|
|
388
|
+
let detectedGlobalLocation;
|
|
389
|
+
if (ancestors.length > 0) {
|
|
390
|
+
//* Get the topmost ancestor (last in the array)
|
|
391
|
+
const topmostAncestor = ancestors[ancestors.length - 1];
|
|
392
|
+
if (topmostAncestor._location) {
|
|
393
|
+
isGlobal = true;
|
|
394
|
+
detectedGlobalLocation = topmostAncestor._location;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
else if (afterComponent._location) {
|
|
398
|
+
//* If no ancestors but the component itself has _location
|
|
399
|
+
isGlobal = true;
|
|
400
|
+
detectedGlobalLocation = afterComponent._location;
|
|
401
|
+
}
|
|
402
|
+
//* Build the position
|
|
403
|
+
const position = { after: afterComponentId };
|
|
404
|
+
if (beforeElement)
|
|
405
|
+
position.before = beforeElement.id;
|
|
406
|
+
if (ancestors.length > 0)
|
|
407
|
+
position.inside = ancestors.map((ancestor) => ancestor.id);
|
|
408
|
+
if (isGlobal && detectedGlobalLocation)
|
|
409
|
+
position.globalLocation = detectedGlobalLocation;
|
|
410
|
+
return position;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
//* Case 2: I get the beforeComponentId, but no afterComponentId
|
|
414
|
+
if (beforeComponentId) {
|
|
415
|
+
const beforeComponent = components.find((c) => c.id === beforeComponentId);
|
|
416
|
+
if (beforeComponent) {
|
|
417
|
+
//* Try to find an after component
|
|
418
|
+
const afterComponent = getPreviousSiblingComponent({
|
|
419
|
+
components,
|
|
420
|
+
currentComponentId: beforeComponentId,
|
|
421
|
+
parentId: beforeComponent.parent_id,
|
|
422
|
+
globalLocation: beforeComponent._location,
|
|
423
|
+
isGlobalComponents,
|
|
424
|
+
});
|
|
425
|
+
//* Get ancestors using our new function
|
|
426
|
+
const ancestors = findAncestorsOfComponent({ components, componentId: beforeComponentId });
|
|
427
|
+
//* Check if it's global by looking at the last ancestor's _location
|
|
428
|
+
let isGlobal = false;
|
|
429
|
+
let detectedGlobalLocation;
|
|
430
|
+
if (ancestors.length > 0) {
|
|
431
|
+
//* Get the topmost ancestor (last in the array)
|
|
432
|
+
const topmostAncestor = ancestors[ancestors.length - 1];
|
|
433
|
+
if (topmostAncestor._location) {
|
|
434
|
+
isGlobal = true;
|
|
435
|
+
detectedGlobalLocation = topmostAncestor._location;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
else if (beforeComponent._location) {
|
|
439
|
+
//* If no ancestors but the component itself has _location
|
|
440
|
+
isGlobal = true;
|
|
441
|
+
detectedGlobalLocation = beforeComponent._location;
|
|
442
|
+
}
|
|
443
|
+
//* Build the position for first position
|
|
444
|
+
const position = { before: beforeComponentId };
|
|
445
|
+
if (afterComponent)
|
|
446
|
+
position.after = afterComponent.id;
|
|
447
|
+
if (ancestors.length > 0)
|
|
448
|
+
position.inside = ancestors.map((ancestor) => ancestor.id);
|
|
449
|
+
if (isGlobal && detectedGlobalLocation)
|
|
450
|
+
position.globalLocation = detectedGlobalLocation;
|
|
451
|
+
return position;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
//* Case 3: I get the parentComponentId
|
|
455
|
+
if (parentComponentId) {
|
|
456
|
+
const parentComponent = components.find((c) => c.id === parentComponentId);
|
|
457
|
+
if (parentComponent) {
|
|
458
|
+
//* Get ancestors of the parent to construct inside and define globalLocation
|
|
459
|
+
const ancestors = findAncestorsOfComponent({ components, componentId: parentComponentId });
|
|
460
|
+
//* Check if it's global by looking at the last ancestor's _location
|
|
461
|
+
let isGlobal = false;
|
|
462
|
+
let detectedGlobalLocation;
|
|
463
|
+
if (ancestors.length > 0) {
|
|
464
|
+
//* Get the topmost ancestor (last in the array)
|
|
465
|
+
const topmostAncestor = ancestors[ancestors.length - 1];
|
|
466
|
+
if (topmostAncestor._location) {
|
|
467
|
+
isGlobal = true;
|
|
468
|
+
detectedGlobalLocation = topmostAncestor._location;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
else if (parentComponent._location) {
|
|
472
|
+
//* If no ancestors but the parent itself has _location
|
|
473
|
+
isGlobal = true;
|
|
474
|
+
detectedGlobalLocation = parentComponent._location;
|
|
475
|
+
}
|
|
476
|
+
//* Build the position for insertion inside parent
|
|
477
|
+
const position = {
|
|
478
|
+
inside: [...ancestors.map((ancestor) => ancestor.id), parentComponentId],
|
|
479
|
+
};
|
|
480
|
+
if (isGlobal && detectedGlobalLocation)
|
|
481
|
+
position.globalLocation = detectedGlobalLocation;
|
|
482
|
+
return position;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
//* Case 4: globalLocation provided
|
|
486
|
+
if (globalLocation)
|
|
487
|
+
return { globalLocation: globalLocation };
|
|
488
|
+
return undefined;
|
|
489
|
+
}
|
|
490
|
+
//* -------------------OBJECT FUNCTIONS ------------------- *//
|
|
491
|
+
//* Deep comparison function to check if two objects are equal
|
|
492
|
+
export function deepEqual(obj1, obj2) {
|
|
493
|
+
if (obj1 === obj2)
|
|
494
|
+
return true;
|
|
495
|
+
if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) {
|
|
496
|
+
return false;
|
|
497
|
+
}
|
|
498
|
+
const keys1 = Object.keys(obj1);
|
|
499
|
+
const keys2 = Object.keys(obj2);
|
|
500
|
+
if (keys1.length !== keys2.length)
|
|
501
|
+
return false;
|
|
502
|
+
for (let key of keys1) {
|
|
503
|
+
if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {
|
|
504
|
+
return false;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
return true;
|
|
508
|
+
}
|
|
509
|
+
export function findUniqueKey(arr) {
|
|
510
|
+
const uniqueKeys = [];
|
|
511
|
+
if (!arr.length || typeof arr[0] !== 'object' || arr[0] === null)
|
|
512
|
+
return uniqueKeys;
|
|
513
|
+
const keys = Object.keys(arr[0]);
|
|
514
|
+
for (const key of keys) {
|
|
515
|
+
const values = new Set();
|
|
516
|
+
let allHaveKeyAndArePrimitive = true;
|
|
517
|
+
for (const item of arr) {
|
|
518
|
+
if (item &&
|
|
519
|
+
typeof item === 'object' &&
|
|
520
|
+
key in item &&
|
|
521
|
+
['string', 'number', 'boolean'].includes(typeof item[key])) {
|
|
522
|
+
values.add(item[key]);
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
allHaveKeyAndArePrimitive = false;
|
|
526
|
+
break;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
if (allHaveKeyAndArePrimitive && values.size === arr.length)
|
|
530
|
+
uniqueKeys.push(key);
|
|
531
|
+
}
|
|
532
|
+
return uniqueKeys;
|
|
533
|
+
}
|
|
534
|
+
//* Find the different paths between two objects
|
|
535
|
+
export function findDifferentPaths(obj1, obj2) {
|
|
536
|
+
const result = {};
|
|
537
|
+
//* Helper function to add a path to results
|
|
538
|
+
function addPath(path) {
|
|
539
|
+
const topLevel = path.split('.')[0];
|
|
540
|
+
if (!result[topLevel]) {
|
|
541
|
+
result[topLevel] = [];
|
|
542
|
+
}
|
|
543
|
+
if (!result[topLevel].includes(path)) {
|
|
544
|
+
result[topLevel].push(path);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
//* Deep compare function to find all differences
|
|
548
|
+
function deepCompare(a, b, currentPath = '') {
|
|
549
|
+
//* If objects are strictly equal, no need to check further
|
|
550
|
+
if (a === b)
|
|
551
|
+
return;
|
|
552
|
+
//* Handle case when either value is not an object or is null
|
|
553
|
+
if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) {
|
|
554
|
+
addPath(currentPath);
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
//* Get all keys from both objects
|
|
558
|
+
const allKeys = Array.from(new Set([...Object.keys(a), ...Object.keys(b)]));
|
|
559
|
+
for (const key of allKeys) {
|
|
560
|
+
const newPath = currentPath ? `${currentPath}.${key}` : key;
|
|
561
|
+
//* If key exists only in one object
|
|
562
|
+
if (!(key in a) || !(key in b)) {
|
|
563
|
+
addPath(newPath);
|
|
564
|
+
//* If the key is in b but not a, and it's an object, add all nested paths
|
|
565
|
+
if (!(key in a) && typeof b[key] === 'object' && b[key] !== null) {
|
|
566
|
+
addNestedPaths(b[key], newPath);
|
|
567
|
+
}
|
|
568
|
+
//* If the key is in a but not b, and it's an object, add all nested paths
|
|
569
|
+
else if (!(key in b) && typeof a[key] === 'object' && a[key] !== null) {
|
|
570
|
+
addNestedPaths(a[key], newPath);
|
|
571
|
+
}
|
|
572
|
+
continue;
|
|
573
|
+
}
|
|
574
|
+
//* Recursively check nested properties
|
|
575
|
+
deepCompare(a[key], b[key], newPath);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
//* Helper function to add all paths in a nested object
|
|
579
|
+
function addNestedPaths(obj, basePath) {
|
|
580
|
+
if (typeof obj !== 'object' || obj === null)
|
|
581
|
+
return;
|
|
582
|
+
addPath(basePath);
|
|
583
|
+
for (const key in obj) {
|
|
584
|
+
const newPath = `${basePath}.${key}`;
|
|
585
|
+
addPath(newPath);
|
|
586
|
+
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
587
|
+
addNestedPaths(obj[key], newPath);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
deepCompare(obj1, obj2);
|
|
592
|
+
return result;
|
|
593
|
+
}
|
|
594
|
+
//* Get the value of an object by a path
|
|
595
|
+
export function getValueByPath(obj, path) {
|
|
596
|
+
let current = obj;
|
|
597
|
+
for (const key of path) {
|
|
598
|
+
if (current === undefined || current === null) {
|
|
599
|
+
return undefined;
|
|
600
|
+
}
|
|
601
|
+
current = current[key];
|
|
602
|
+
}
|
|
603
|
+
return current;
|
|
604
|
+
}
|
|
605
|
+
export function getBreakLineStringFromArray(input) {
|
|
606
|
+
if (Array.isArray(input))
|
|
607
|
+
return input.join('\n');
|
|
608
|
+
return input;
|
|
609
|
+
}
|
|
610
|
+
const DEFAULT_CONTENT_LANGUAGE_KEY = 'en';
|
|
611
|
+
//* Builds a language-prefixed key for multilanguage properties
|
|
612
|
+
//* For default language, returns the base key; for others, returns `lang--{languageKey}--{attributeKey}`
|
|
613
|
+
export function getMultilanguageKey({ attributeKey, languageKey, }) {
|
|
614
|
+
return languageKey === DEFAULT_CONTENT_LANGUAGE_KEY
|
|
615
|
+
? attributeKey
|
|
616
|
+
: `lang--${languageKey}--${attributeKey}`;
|
|
617
|
+
}
|
|
618
|
+
export function getArrayFromBreakLineString(input) {
|
|
619
|
+
if (typeof input === 'string')
|
|
620
|
+
return input.split('\n');
|
|
621
|
+
return input;
|
|
622
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,UAIxC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type LogContext = Record<string, string | number | boolean | null | undefined>;
|
|
2
|
+
export interface Logger {
|
|
3
|
+
info(message: string, ctx?: LogContext): void;
|
|
4
|
+
warn(message: string, ctx?: LogContext): void;
|
|
5
|
+
error(message: string, ctx?: LogContext): void;
|
|
6
|
+
}
|
|
7
|
+
export declare function createLogger(fn: string): Logger;
|
|
8
|
+
export declare function captureException(error: unknown): void;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;AAE9E,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC/C;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAY/C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAErD"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Sentry from '@sentry/node';
|
|
2
|
+
export function createLogger(fn) {
|
|
3
|
+
return {
|
|
4
|
+
info(message, ctx) {
|
|
5
|
+
Sentry.logger.info(message, { fn, ...ctx });
|
|
6
|
+
},
|
|
7
|
+
warn(message, ctx) {
|
|
8
|
+
Sentry.logger.warn(message, { fn, ...ctx });
|
|
9
|
+
},
|
|
10
|
+
error(message, ctx) {
|
|
11
|
+
Sentry.logger.error(message, { fn, ...ctx });
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function captureException(error) {
|
|
16
|
+
Sentry.captureException(error);
|
|
17
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAmCA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAmCA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;;GAyTA"}
|
package/dist/proxy/server.js
CHANGED
|
@@ -238,10 +238,16 @@ export async function startProxyServer(opts) {
|
|
|
238
238
|
console.log(`[Workbench] Injected API interceptor for ${opts.engineOrigin}`);
|
|
239
239
|
}
|
|
240
240
|
modifiedHtml = injectReloadScript(modifiedHtml);
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
241
|
+
const includeWorkbench = req.query?.workbench !== 'false';
|
|
242
|
+
if (includeWorkbench) {
|
|
243
|
+
modifiedHtml = injectWorkbenchHtml(modifiedHtml, {
|
|
244
|
+
embeddableId: opts.embeddableId,
|
|
245
|
+
workbenchOrigin,
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
console.log('[Workbench] Skipping workbench (workbench=false in URL)');
|
|
250
|
+
}
|
|
245
251
|
console.log(`[Workbench] Injection complete (${modifiedHtml.length} chars), sending response`);
|
|
246
252
|
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
247
253
|
res.setHeader('Cache-Control', engineRes.headers.get('cache-control') ?? 'no-store');
|
package/dist/stdout.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Write a line to stdout. Use this for all user-facing CLI terminal output.
|
|
3
|
+
* Replaces console.log so that user-facing output and observability logging
|
|
4
|
+
* (logger.info → Sentry) are clearly distinct in the code.
|
|
5
|
+
*/
|
|
6
|
+
export declare function print(message?: string): void;
|
|
7
|
+
/**
|
|
8
|
+
* Write a warning line to stdout with a yellow WARN badge.
|
|
9
|
+
* Replaces console.warn.
|
|
10
|
+
*/
|
|
11
|
+
export declare function warn(message: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Write an error line to stderr with a red ERROR badge.
|
|
14
|
+
* Replaces console.error.
|
|
15
|
+
*/
|
|
16
|
+
export declare function error(message: string): void;
|
|
17
|
+
//# sourceMappingURL=stdout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdout.d.ts","sourceRoot":"","sources":["../src/stdout.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,SAAK,GAAG,IAAI,CAExC;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C"}
|
package/dist/stdout.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import pc from 'picocolors';
|
|
2
|
+
/**
|
|
3
|
+
* Write a line to stdout. Use this for all user-facing CLI terminal output.
|
|
4
|
+
* Replaces console.log so that user-facing output and observability logging
|
|
5
|
+
* (logger.info → Sentry) are clearly distinct in the code.
|
|
6
|
+
*/
|
|
7
|
+
export function print(message = '') {
|
|
8
|
+
process.stdout.write(message + '\n');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Write a warning line to stdout with a yellow WARN badge.
|
|
12
|
+
* Replaces console.warn.
|
|
13
|
+
*/
|
|
14
|
+
export function warn(message) {
|
|
15
|
+
process.stdout.write(`${pc.bold(pc.bgYellow(' WARN '))} ${message}\n`);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Write an error line to stderr with a red ERROR badge.
|
|
19
|
+
* Replaces console.error.
|
|
20
|
+
*/
|
|
21
|
+
export function error(message) {
|
|
22
|
+
process.stderr.write(`${pc.bold(pc.bgRed(' ERROR '))} ${message}\n`);
|
|
23
|
+
}
|
package/dist/types-builder.d.ts
CHANGED
|
@@ -689,7 +689,7 @@ export type HistoryCommandExecutionResult = {
|
|
|
689
689
|
export type HistoryCommandMetadata = {
|
|
690
690
|
description: string;
|
|
691
691
|
trigger: {
|
|
692
|
-
origin: 'Layers' | 'Pages' | 'Assets' | 'Designer' | 'Options' | 'Add' | 'Logic' | 'AI' | 'DOM' | 'Shortcut' | 'Draft';
|
|
692
|
+
origin: 'Layers' | 'Pages' | 'Assets' | 'Designer' | 'Options' | 'Add' | 'Logic' | 'AI' | 'DOM' | 'Shortcut' | 'Draft' | 'CLI';
|
|
693
693
|
editor: string;
|
|
694
694
|
};
|
|
695
695
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-builder.d.ts","sourceRoot":"","sources":["../src/types-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types-builder.d.ts","sourceRoot":"","sources":["../src/types-builder.ts"],"names":[],"mappings":"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"}
|