@nordcraft/search 1.0.46 → 1.0.47

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.
@@ -10,6 +10,7 @@ import { unknownApiInputRule } from './rules/apis/unknownApiInputRule';
10
10
  import { unknownApiRule } from './rules/apis/unknownApiRule';
11
11
  import { noReferenceAttributeRule } from './rules/attributes/noReferenceAttributeRule';
12
12
  import { unknownAttributeRule } from './rules/attributes/unknownAttributeRule';
13
+ import { unknownComponentAttributeRule } from './rules/attributes/unknownComponentAttributeRule';
13
14
  import { noReferenceComponentRule } from './rules/components/noReferenceComponentRule';
14
15
  import { unknownComponentRule } from './rules/components/unknownComponentRule';
15
16
  import { noContextConsumersRule } from './rules/context/noContextConsumersRule';
@@ -131,6 +132,7 @@ const RULES = [
131
132
  unknownContextProviderWorkflowRule,
132
133
  unknownContextWorkflowRule,
133
134
  unknownCookieRule,
135
+ unknownComponentAttributeRule,
134
136
  unknownEventRule,
135
137
  unknownFormulaRule,
136
138
  unknownProjectActionRule,
@@ -1 +1 @@
1
- {"version":3,"file":"problems.worker.js","sourceRoot":"","sources":["../src/problems.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"problems.worker.js","sourceRoot":"","sources":["../src/problems.worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { isDefined } from '@nordcraft/core/dist/utils/util';
2
+ import { removeFromPathFix } from '../../util/removeUnused.fix';
3
+ export const unknownComponentAttributeRule = {
4
+ code: 'unknown component attribute',
5
+ level: 'error',
6
+ category: 'Unknown Reference',
7
+ visit: (report, { path, files, value, nodeType }) => {
8
+ if (nodeType !== 'component-node' ||
9
+ value.type !== 'component' ||
10
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
11
+ Object.keys(value.attrs ?? {}).length === 0) {
12
+ return;
13
+ }
14
+ const component = value.package
15
+ ? files.packages?.[value.package].components?.[value.name]
16
+ : files.components[value.name];
17
+ if (!component) {
18
+ return;
19
+ }
20
+ for (const attrKey of Object.keys(value.attrs)) {
21
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
22
+ if (!isDefined(component.attributes?.[attrKey])) {
23
+ report([...path, 'attrs', attrKey], { name: attrKey }, [
24
+ 'delete-component-attribute',
25
+ ]);
26
+ }
27
+ }
28
+ },
29
+ fixes: {
30
+ 'delete-component-attribute': removeFromPathFix,
31
+ },
32
+ };
33
+ //# sourceMappingURL=unknownComponentAttributeRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownComponentAttributeRule.js","sourceRoot":"","sources":["../../../src/rules/attributes/unknownComponentAttributeRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,MAAM,CAAC,MAAM,6BAA6B,GAErC;IACH,IAAI,EAAE,6BAA6B;IACnC,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAClD,IACE,QAAQ,KAAK,gBAAgB;YAC7B,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1B,uEAAuE;YACvE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAC3C,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO;YAC7B,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1D,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,uEAAuE;YACvE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;oBACrD,4BAA4B;iBAC7B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,EAAE;QACL,4BAA4B,EAAE,iBAAiB;KAChD;CACF,CAAA"}
@@ -0,0 +1,145 @@
1
+ import { valueFormula } from '@nordcraft/core/dist/formula/formulaUtils';
2
+ import { describe, expect, test } from 'bun:test';
3
+ import { fixProject } from '../../fixProject';
4
+ import { searchProject } from '../../searchProject';
5
+ import { unknownComponentAttributeRule } from './unknownComponentAttributeRule';
6
+ describe('find unknownComponentAttribute', () => {
7
+ test('should report unknown component attributes', () => {
8
+ const problems = Array.from(searchProject({
9
+ files: {
10
+ components: {
11
+ referenced: {
12
+ name: 'referenced',
13
+ nodes: {},
14
+ attributes: {
15
+ first: {
16
+ name: 'first',
17
+ testValue: valueFormula(null),
18
+ },
19
+ second: {
20
+ name: 'second',
21
+ testValue: valueFormula(null),
22
+ },
23
+ },
24
+ apis: {},
25
+ formulas: {},
26
+ variables: {},
27
+ },
28
+ test: {
29
+ name: 'test',
30
+ nodes: {
31
+ root: {
32
+ type: 'component',
33
+ name: 'referenced',
34
+ events: {},
35
+ children: [],
36
+ style: {},
37
+ attrs: {
38
+ first: valueFormula('exists'),
39
+ third: valueFormula('does not exist'),
40
+ },
41
+ },
42
+ },
43
+ formulas: {},
44
+ apis: {},
45
+ attributes: {},
46
+ variables: {},
47
+ },
48
+ },
49
+ },
50
+ rules: [unknownComponentAttributeRule],
51
+ }));
52
+ expect(problems).toHaveLength(1);
53
+ expect(problems[0].code).toBe('unknown component attribute');
54
+ expect(problems[0].details).toEqual({ name: 'third' });
55
+ });
56
+ test('should not report component attributes that exist', () => {
57
+ const problems = Array.from(searchProject({
58
+ files: {
59
+ components: {
60
+ test: {
61
+ name: 'test',
62
+ nodes: {
63
+ root: {
64
+ type: 'element',
65
+ attrs: {
66
+ known: valueFormula('exists'),
67
+ },
68
+ classes: {},
69
+ events: {},
70
+ tag: 'div',
71
+ children: [],
72
+ style: {},
73
+ },
74
+ },
75
+ formulas: {},
76
+ apis: {},
77
+ variables: {},
78
+ attributes: {
79
+ known: {
80
+ name: 'known',
81
+ testValue: { type: 'value', value: null },
82
+ },
83
+ },
84
+ },
85
+ },
86
+ },
87
+ rules: [unknownComponentAttributeRule],
88
+ }));
89
+ expect(problems).toEqual([]);
90
+ });
91
+ });
92
+ describe('fix unknownComponentAttribute', () => {
93
+ test('should remove unknown component attributes', () => {
94
+ const files = {
95
+ components: {
96
+ referenced: {
97
+ name: 'referenced',
98
+ nodes: {},
99
+ attributes: {
100
+ first: {
101
+ name: 'first',
102
+ testValue: valueFormula(null),
103
+ },
104
+ second: {
105
+ name: 'second',
106
+ testValue: valueFormula(null),
107
+ },
108
+ },
109
+ apis: {},
110
+ formulas: {},
111
+ variables: {},
112
+ },
113
+ test: {
114
+ name: 'test',
115
+ nodes: {
116
+ root: {
117
+ type: 'component',
118
+ name: 'referenced',
119
+ events: {},
120
+ children: [],
121
+ style: {},
122
+ attrs: {
123
+ first: valueFormula('exists'),
124
+ third: valueFormula('does not exist'),
125
+ },
126
+ },
127
+ },
128
+ formulas: {},
129
+ apis: {},
130
+ attributes: {},
131
+ variables: {},
132
+ },
133
+ },
134
+ };
135
+ const fixedProject = fixProject({
136
+ files,
137
+ rule: unknownComponentAttributeRule,
138
+ fixType: 'delete-component-attribute',
139
+ });
140
+ expect(fixedProject.components.test.nodes.root.attrs).toEqual({
141
+ first: valueFormula('exists'),
142
+ });
143
+ });
144
+ });
145
+ //# sourceMappingURL=unknownComponentAttributeRule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownComponentAttributeRule.test.js","sourceRoot":"","sources":["../../../src/rules/attributes/unknownComponentAttributeRule.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { get } from '@nordcraft/core/dist/utils/collections';
1
+ import { get, set } from '@nordcraft/core/dist/utils/collections';
2
2
  export const noPostNavigateAction = {
3
3
  code: 'no post navigate action',
4
4
  level: 'warning',
@@ -21,8 +21,19 @@ export const noPostNavigateAction = {
21
21
  const actionIndex = Number(_actionIndex);
22
22
  if (actionIndex < actions.length - 1) {
23
23
  // If the action is not the last one in the array, report it
24
- report(path);
24
+ report(path, undefined, ['delete-following-actions']);
25
25
  }
26
26
  },
27
+ fixes: {
28
+ 'delete-following-actions': ({ path, files }) => {
29
+ const actionsArrayPath = path.slice(0, -1).map((p) => String(p));
30
+ const actions = get(files, actionsArrayPath);
31
+ const actionIndex = path.at(-1);
32
+ if (actionIndex === undefined || !Array.isArray(actions)) {
33
+ return;
34
+ }
35
+ return set(files, actionsArrayPath, actions.slice(0, Number(actionIndex) + 1));
36
+ },
37
+ },
27
38
  };
28
39
  //# sourceMappingURL=noPostNavigateAction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"noPostNavigateAction.js","sourceRoot":"","sources":["../../../src/rules/workflows/noPostNavigateAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,wCAAwC,CAAA;AAG5D,MAAM,CAAC,MAAM,oBAAoB,GAAgC;IAC/D,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAClD,IACE,QAAQ,KAAK,cAAc;YAC3B,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,IAAI,KAAK,kBAAkB,EACjC,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;QACxC,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,4DAA4D;YAC5D,MAAM,CAAC,IAAI,CAAC,CAAA;QACd,CAAC;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"noPostNavigateAction.js","sourceRoot":"","sources":["../../../src/rules/workflows/noPostNavigateAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,wCAAwC,CAAA;AAGjE,MAAM,CAAC,MAAM,oBAAoB,GAAgC;IAC/D,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAClD,IACE,QAAQ,KAAK,cAAc;YAC3B,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,IAAI,KAAK,kBAAkB,EACjC,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;QACxC,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,4DAA4D;YAC5D,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IACD,KAAK,EAAE;QACL,0BAA0B,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAmB,EAAE,EAAE;YAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAChE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzD,OAAM;YACR,CAAC;YACD,OAAO,GAAG,CACR,KAAK,EACL,gBAAgB,EAChB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC1C,CAAA;QACH,CAAC;KACF;CACF,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { describe, expect, test } from 'bun:test';
2
+ import { fixProject } from '../../fixProject';
2
3
  import { searchProject } from '../../searchProject';
3
4
  import { noPostNavigateAction } from './noPostNavigateAction';
4
- describe('noPostNavigateAction', () => {
5
+ describe('find noPostNavigateAction', () => {
5
6
  test('should detect actions after a url navigate action', () => {
6
7
  const problems = Array.from(searchProject({
7
8
  files: {
@@ -444,4 +445,104 @@ describe('noPostNavigateAction', () => {
444
445
  expect(problems).toHaveLength(0);
445
446
  });
446
447
  });
448
+ describe('fix noPostNavigateAction', () => {
449
+ test('should remove actions after a url navigate action', () => {
450
+ const files = {
451
+ formulas: {},
452
+ components: {
453
+ nav: {
454
+ attributes: {},
455
+ events: [],
456
+ formulas: {},
457
+ nodes: {
458
+ root: {
459
+ type: 'element',
460
+ tag: 'div',
461
+ attrs: {},
462
+ classes: {},
463
+ events: {},
464
+ children: ['wkPXF99C3qdRgZmUcnHO_'],
465
+ style: {},
466
+ },
467
+ wkPXF99C3qdRgZmUcnHO_: {
468
+ tag: 'button',
469
+ type: 'element',
470
+ attrs: {},
471
+ style: {
472
+ color: 'var(--grey-200, #E5E5E5)',
473
+ 'border-radius': '6px',
474
+ 'background-color': 'var(--blue-600, #2563EB)',
475
+ 'padding-left': '8px',
476
+ 'padding-right': '8px',
477
+ 'padding-top': '8px',
478
+ 'padding-bottom': '8px',
479
+ width: 'fit-content',
480
+ cursor: 'pointer',
481
+ },
482
+ events: {
483
+ click: {
484
+ trigger: 'click',
485
+ actions: [
486
+ {
487
+ name: '@toddle/gotToURL',
488
+ arguments: [
489
+ {
490
+ name: 'URL',
491
+ formula: {
492
+ type: 'value',
493
+ value: 'https://example.com',
494
+ },
495
+ },
496
+ ],
497
+ label: 'Go to URL',
498
+ },
499
+ {
500
+ name: '@toddle/logToConsole',
501
+ arguments: [
502
+ {
503
+ name: 'Label',
504
+ formula: {
505
+ type: 'value',
506
+ value: '',
507
+ },
508
+ },
509
+ {
510
+ name: 'Data',
511
+ formula: {
512
+ type: 'value',
513
+ value: '<Data>',
514
+ },
515
+ },
516
+ ],
517
+ label: 'Log to console',
518
+ },
519
+ ],
520
+ },
521
+ },
522
+ classes: {},
523
+ children: ['zFhmZR6YnLy089HmlK-Yn'],
524
+ variants: [],
525
+ },
526
+ 'zFhmZR6YnLy089HmlK-Yn': {
527
+ type: 'text',
528
+ value: {
529
+ type: 'value',
530
+ value: 'Button',
531
+ },
532
+ },
533
+ },
534
+ variables: {},
535
+ apis: {},
536
+ name: 'nav',
537
+ },
538
+ },
539
+ };
540
+ const fixedProject = fixProject({
541
+ files,
542
+ rule: noPostNavigateAction,
543
+ fixType: 'delete-following-actions',
544
+ });
545
+ expect(fixedProject.components.nav?.nodes['wkPXF99C3qdRgZmUcnHO_']?.events?.click?.actions).toHaveLength(1);
546
+ });
547
+ });
447
548
  //# sourceMappingURL=noPostNavigateAction.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"noPostNavigateAction.test.js","sourceRoot":"","sources":["../../../src/rules/workflows/noPostNavigateAction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"noPostNavigateAction.test.js","sourceRoot":"","sources":["../../../src/rules/workflows/noPostNavigateAction.test.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ describe('shouldSearchPath', () => {
38
38
  });
39
39
  });
40
40
  describe('shouldSearchExactPath', () => {
41
- test.only('should only return true for exact matches', () => {
41
+ test('should only return true for exact matches', () => {
42
42
  const pathsToVisit = [
43
43
  ['components', 'Button'],
44
44
  ['components', 'Input'],
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../src/util/helpers.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../src/util/helpers.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/nordcraftengine/nordcraft",
7
7
  "dependencies": {
8
- "@nordcraft/ssr": "1.0.46",
8
+ "@nordcraft/ssr": "1.0.47",
9
9
  "jsondiffpatch": "0.7.3",
10
10
  "postcss": "8.5.6"
11
11
  },
@@ -19,5 +19,5 @@
19
19
  "test:watch:only": "bun test --watch --only"
20
20
  },
21
21
  "files": ["dist", "src"],
22
- "version": "1.0.46"
22
+ "version": "1.0.47"
23
23
  }
@@ -12,6 +12,7 @@ import { unknownApiInputRule } from './rules/apis/unknownApiInputRule'
12
12
  import { unknownApiRule } from './rules/apis/unknownApiRule'
13
13
  import { noReferenceAttributeRule } from './rules/attributes/noReferenceAttributeRule'
14
14
  import { unknownAttributeRule } from './rules/attributes/unknownAttributeRule'
15
+ import { unknownComponentAttributeRule } from './rules/attributes/unknownComponentAttributeRule'
15
16
  import { noReferenceComponentRule } from './rules/components/noReferenceComponentRule'
16
17
  import { unknownComponentRule } from './rules/components/unknownComponentRule'
17
18
  import { noContextConsumersRule } from './rules/context/noContextConsumersRule'
@@ -180,6 +181,7 @@ const RULES = [
180
181
  unknownContextProviderWorkflowRule,
181
182
  unknownContextWorkflowRule,
182
183
  unknownCookieRule,
184
+ unknownComponentAttributeRule,
183
185
  unknownEventRule,
184
186
  unknownFormulaRule,
185
187
  unknownProjectActionRule,
@@ -0,0 +1,156 @@
1
+ import type { ComponentNodeModel } from '@nordcraft/core/dist/component/component.types'
2
+ import { valueFormula } from '@nordcraft/core/dist/formula/formulaUtils'
3
+ import type { ProjectFiles } from '@nordcraft/ssr/dist/ssr.types'
4
+ import { describe, expect, test } from 'bun:test'
5
+ import { fixProject } from '../../fixProject'
6
+ import { searchProject } from '../../searchProject'
7
+ import { unknownComponentAttributeRule } from './unknownComponentAttributeRule'
8
+
9
+ describe('find unknownComponentAttribute', () => {
10
+ test('should report unknown component attributes', () => {
11
+ const problems = Array.from(
12
+ searchProject({
13
+ files: {
14
+ components: {
15
+ referenced: {
16
+ name: 'referenced',
17
+ nodes: {},
18
+ attributes: {
19
+ first: {
20
+ name: 'first',
21
+ testValue: valueFormula(null),
22
+ },
23
+ second: {
24
+ name: 'second',
25
+ testValue: valueFormula(null),
26
+ },
27
+ },
28
+ apis: {},
29
+ formulas: {},
30
+ variables: {},
31
+ },
32
+ test: {
33
+ name: 'test',
34
+ nodes: {
35
+ root: {
36
+ type: 'component',
37
+ name: 'referenced',
38
+ events: {},
39
+ children: [],
40
+ style: {},
41
+ attrs: {
42
+ first: valueFormula('exists'),
43
+ third: valueFormula('does not exist'),
44
+ },
45
+ },
46
+ },
47
+ formulas: {},
48
+ apis: {},
49
+ attributes: {},
50
+ variables: {},
51
+ },
52
+ },
53
+ },
54
+ rules: [unknownComponentAttributeRule],
55
+ }),
56
+ )
57
+
58
+ expect(problems).toHaveLength(1)
59
+ expect(problems[0].code).toBe('unknown component attribute')
60
+ expect(problems[0].details).toEqual({ name: 'third' })
61
+ })
62
+
63
+ test('should not report component attributes that exist', () => {
64
+ const problems = Array.from(
65
+ searchProject({
66
+ files: {
67
+ components: {
68
+ test: {
69
+ name: 'test',
70
+ nodes: {
71
+ root: {
72
+ type: 'element',
73
+ attrs: {
74
+ known: valueFormula('exists'),
75
+ },
76
+ classes: {},
77
+ events: {},
78
+ tag: 'div',
79
+ children: [],
80
+ style: {},
81
+ },
82
+ },
83
+ formulas: {},
84
+ apis: {},
85
+ variables: {},
86
+ attributes: {
87
+ known: {
88
+ name: 'known',
89
+ testValue: { type: 'value', value: null },
90
+ },
91
+ },
92
+ },
93
+ },
94
+ },
95
+ rules: [unknownComponentAttributeRule],
96
+ }),
97
+ )
98
+ expect(problems).toEqual([])
99
+ })
100
+ })
101
+
102
+ describe('fix unknownComponentAttribute', () => {
103
+ test('should remove unknown component attributes', () => {
104
+ const files: ProjectFiles = {
105
+ components: {
106
+ referenced: {
107
+ name: 'referenced',
108
+ nodes: {},
109
+ attributes: {
110
+ first: {
111
+ name: 'first',
112
+ testValue: valueFormula(null),
113
+ },
114
+ second: {
115
+ name: 'second',
116
+ testValue: valueFormula(null),
117
+ },
118
+ },
119
+ apis: {},
120
+ formulas: {},
121
+ variables: {},
122
+ },
123
+ test: {
124
+ name: 'test',
125
+ nodes: {
126
+ root: {
127
+ type: 'component',
128
+ name: 'referenced',
129
+ events: {},
130
+ children: [],
131
+ style: {},
132
+ attrs: {
133
+ first: valueFormula('exists'),
134
+ third: valueFormula('does not exist'),
135
+ },
136
+ },
137
+ },
138
+ formulas: {},
139
+ apis: {},
140
+ attributes: {},
141
+ variables: {},
142
+ },
143
+ },
144
+ }
145
+ const fixedProject = fixProject({
146
+ files,
147
+ rule: unknownComponentAttributeRule,
148
+ fixType: 'delete-component-attribute',
149
+ })
150
+ expect(
151
+ (fixedProject.components.test!.nodes.root as ComponentNodeModel).attrs,
152
+ ).toEqual({
153
+ first: valueFormula('exists'),
154
+ })
155
+ })
156
+ })
@@ -0,0 +1,40 @@
1
+ import { isDefined } from '@nordcraft/core/dist/utils/util'
2
+ import type { Rule } from '../../types'
3
+ import { removeFromPathFix } from '../../util/removeUnused.fix'
4
+
5
+ export const unknownComponentAttributeRule: Rule<{
6
+ name: string
7
+ }> = {
8
+ code: 'unknown component attribute',
9
+ level: 'error',
10
+ category: 'Unknown Reference',
11
+ visit: (report, { path, files, value, nodeType }) => {
12
+ if (
13
+ nodeType !== 'component-node' ||
14
+ value.type !== 'component' ||
15
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
16
+ Object.keys(value.attrs ?? {}).length === 0
17
+ ) {
18
+ return
19
+ }
20
+ const component = value.package
21
+ ? files.packages?.[value.package].components?.[value.name]
22
+ : files.components[value.name]
23
+ if (!component) {
24
+ return
25
+ }
26
+ for (const attrKey of Object.keys(value.attrs)) {
27
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
28
+ if (!isDefined(component.attributes?.[attrKey])) {
29
+ report([...path, 'attrs', attrKey], { name: attrKey }, [
30
+ 'delete-component-attribute',
31
+ ])
32
+ }
33
+ }
34
+ },
35
+ fixes: {
36
+ 'delete-component-attribute': removeFromPathFix,
37
+ },
38
+ }
39
+
40
+ export type UnknownComponentAttributeRuleFix = 'delete-component-attribute'
@@ -1,8 +1,11 @@
1
+ import type { ElementNodeModel } from '@nordcraft/core/dist/component/component.types'
2
+ import type { ProjectFiles } from '@nordcraft/ssr/dist/ssr.types'
1
3
  import { describe, expect, test } from 'bun:test'
4
+ import { fixProject } from '../../fixProject'
2
5
  import { searchProject } from '../../searchProject'
3
6
  import { noPostNavigateAction } from './noPostNavigateAction'
4
7
 
5
- describe('noPostNavigateAction', () => {
8
+ describe('find noPostNavigateAction', () => {
6
9
  test('should detect actions after a url navigate action', () => {
7
10
  const problems = Array.from(
8
11
  searchProject({
@@ -457,3 +460,110 @@ describe('noPostNavigateAction', () => {
457
460
  expect(problems).toHaveLength(0)
458
461
  })
459
462
  })
463
+
464
+ describe('fix noPostNavigateAction', () => {
465
+ test('should remove actions after a url navigate action', () => {
466
+ const files: ProjectFiles = {
467
+ formulas: {},
468
+ components: {
469
+ nav: {
470
+ attributes: {},
471
+ events: [],
472
+ formulas: {},
473
+ nodes: {
474
+ root: {
475
+ type: 'element',
476
+ tag: 'div',
477
+ attrs: {},
478
+ classes: {},
479
+ events: {},
480
+ children: ['wkPXF99C3qdRgZmUcnHO_'],
481
+ style: {},
482
+ },
483
+ wkPXF99C3qdRgZmUcnHO_: {
484
+ tag: 'button',
485
+ type: 'element',
486
+ attrs: {},
487
+ style: {
488
+ color: 'var(--grey-200, #E5E5E5)',
489
+ 'border-radius': '6px',
490
+ 'background-color': 'var(--blue-600, #2563EB)',
491
+ 'padding-left': '8px',
492
+ 'padding-right': '8px',
493
+ 'padding-top': '8px',
494
+ 'padding-bottom': '8px',
495
+ width: 'fit-content',
496
+ cursor: 'pointer',
497
+ },
498
+ events: {
499
+ click: {
500
+ trigger: 'click',
501
+ actions: [
502
+ {
503
+ name: '@toddle/gotToURL',
504
+ arguments: [
505
+ {
506
+ name: 'URL',
507
+ formula: {
508
+ type: 'value',
509
+ value: 'https://example.com',
510
+ },
511
+ },
512
+ ],
513
+ label: 'Go to URL',
514
+ },
515
+ {
516
+ name: '@toddle/logToConsole',
517
+ arguments: [
518
+ {
519
+ name: 'Label',
520
+ formula: {
521
+ type: 'value',
522
+ value: '',
523
+ },
524
+ },
525
+ {
526
+ name: 'Data',
527
+ formula: {
528
+ type: 'value',
529
+ value: '<Data>',
530
+ },
531
+ },
532
+ ],
533
+ label: 'Log to console',
534
+ },
535
+ ],
536
+ },
537
+ },
538
+ classes: {},
539
+ children: ['zFhmZR6YnLy089HmlK-Yn'],
540
+ variants: [],
541
+ },
542
+ 'zFhmZR6YnLy089HmlK-Yn': {
543
+ type: 'text',
544
+ value: {
545
+ type: 'value',
546
+ value: 'Button',
547
+ },
548
+ },
549
+ },
550
+ variables: {},
551
+ apis: {},
552
+ name: 'nav',
553
+ },
554
+ },
555
+ }
556
+ const fixedProject = fixProject({
557
+ files,
558
+ rule: noPostNavigateAction,
559
+ fixType: 'delete-following-actions',
560
+ })
561
+ expect(
562
+ (
563
+ fixedProject.components.nav?.nodes[
564
+ 'wkPXF99C3qdRgZmUcnHO_'
565
+ ] as ElementNodeModel
566
+ )?.events?.click?.actions,
567
+ ).toHaveLength(1)
568
+ })
569
+ })
@@ -1,5 +1,5 @@
1
- import { get } from '@nordcraft/core/dist/utils/collections'
2
- import type { Rule } from '../../types'
1
+ import { get, set } from '@nordcraft/core/dist/utils/collections'
2
+ import type { ActionModelNode, Rule } from '../../types'
3
3
 
4
4
  export const noPostNavigateAction: Rule<{ parameter: string }> = {
5
5
  code: 'no post navigate action',
@@ -25,7 +25,24 @@ export const noPostNavigateAction: Rule<{ parameter: string }> = {
25
25
  const actionIndex = Number(_actionIndex)
26
26
  if (actionIndex < actions.length - 1) {
27
27
  // If the action is not the last one in the array, report it
28
- report(path)
28
+ report(path, undefined, ['delete-following-actions'])
29
29
  }
30
30
  },
31
+ fixes: {
32
+ 'delete-following-actions': ({ path, files }: ActionModelNode) => {
33
+ const actionsArrayPath = path.slice(0, -1).map((p) => String(p))
34
+ const actions = get(files, actionsArrayPath)
35
+ const actionIndex = path.at(-1)
36
+ if (actionIndex === undefined || !Array.isArray(actions)) {
37
+ return
38
+ }
39
+ return set(
40
+ files,
41
+ actionsArrayPath,
42
+ actions.slice(0, Number(actionIndex) + 1),
43
+ )
44
+ },
45
+ },
31
46
  }
47
+
48
+ export type NoPostNavigateActionRuleFix = 'delete-following-actions'
package/src/types.d.ts CHANGED
@@ -25,14 +25,16 @@ import type { LegacyActionRuleFix } from './rules/actions/legacyActionRule'
25
25
  import type { NoReferenceProjectActionRuleFix } from './rules/actions/noReferenceProjectActionRule'
26
26
  import type { NoReferenceApiRuleFix } from './rules/apis/noReferenceApiRule'
27
27
  import type { NoReferenceAttributeRuleFix } from './rules/attributes/noReferenceAttributeRule'
28
+ import type { UnknownComponentAttributeRuleFix } from './rules/attributes/unknownComponentAttributeRule'
28
29
  import type { NoReferenceComponentRuleFix } from './rules/components/noReferenceComponentRule'
29
30
  import type { NoReferenceEventRuleFix } from './rules/events/noReferenceEventRule'
30
31
  import type { LegacyFormulaRuleFix } from './rules/formulas/legacyFormulaRule'
31
32
  import type { NoReferenceComponentFormulaRuleFix } from './rules/formulas/noReferenceComponentFormulaRule'
32
33
  import type { NoReferenceProjectFormulaRuleFix } from './rules/formulas/noReferenceProjectFormulaRule'
33
- import type { NoStaticNodeConditionRuleFix } from './rules/logic/noStaticNodeConditionRule'
34
+ import type { NoStaticNodeConditionRuleFix } from './rules/logic/noStaticNodeCondition'
34
35
  import type { NoReferenceNodeRuleFix } from './rules/noReferenceNodeRule'
35
36
  import type { InvalidStyleSyntaxRuleFix } from './rules/style/invalidStyleSyntaxRule'
37
+ import type { NoPostNavigateActionRuleFix } from './rules/workflows/noPostNavigateAction'
36
38
 
37
39
  type Code =
38
40
  | 'duplicate event trigger'
@@ -75,6 +77,7 @@ type Code =
75
77
  | 'unknown api'
76
78
  | 'unknown attribute'
77
79
  | 'unknown classname'
80
+ | 'unknown component attribute'
78
81
  | 'unknown component formula input'
79
82
  | 'unknown component slot'
80
83
  | 'unknown context formula'
@@ -219,6 +222,10 @@ type ComponentWorkflowNode = {
219
222
  testValue: any
220
223
  }[]
221
224
  | null
225
+ callbacks?: {
226
+ name: string
227
+ testValue: any
228
+ }[]
222
229
  actions: ActionModel[]
223
230
  exposeInContext?: boolean | undefined
224
231
  }
@@ -346,6 +353,8 @@ type FixType =
346
353
  | NoReferenceNodeRuleFix
347
354
  | InvalidStyleSyntaxRuleFix
348
355
  | NoStaticNodeConditionRuleFix
356
+ | NoPostNavigateActionRuleFix
357
+ | UnknownComponentAttributeRuleFix
349
358
 
350
359
  export interface Rule<T = unknown, V = NodeType> {
351
360
  category: Category
@@ -53,7 +53,7 @@ describe('shouldSearchPath', () => {
53
53
  })
54
54
 
55
55
  describe('shouldSearchExactPath', () => {
56
- test.only('should only return true for exact matches', () => {
56
+ test('should only return true for exact matches', () => {
57
57
  const pathsToVisit = [
58
58
  ['components', 'Button'],
59
59
  ['components', 'Input'],