@nordcraft/search 1.0.38 → 1.0.40

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 (41) hide show
  1. package/dist/fixProject.js +32 -0
  2. package/dist/fixProject.js.map +1 -0
  3. package/dist/problems.worker.js +45 -8
  4. package/dist/problems.worker.js.map +1 -1
  5. package/dist/rules/actions/legacyActionRule.js +144 -2
  6. package/dist/rules/actions/legacyActionRule.js.map +1 -1
  7. package/dist/rules/actions/legacyActionRule.test.js +235 -1
  8. package/dist/rules/actions/legacyActionRule.test.js.map +1 -1
  9. package/dist/rules/components/noReferenceComponentRule.js +31 -17
  10. package/dist/rules/components/noReferenceComponentRule.js.map +1 -1
  11. package/dist/rules/components/noReferenceComponentRule.test.js +86 -1
  12. package/dist/rules/components/noReferenceComponentRule.test.js.map +1 -1
  13. package/dist/rules/formulas/legacyFormulaRule.js +602 -6
  14. package/dist/rules/formulas/legacyFormulaRule.js.map +1 -1
  15. package/dist/rules/formulas/legacyFormulaRule.test.js +232 -1
  16. package/dist/rules/formulas/legacyFormulaRule.test.js.map +1 -1
  17. package/dist/rules/formulas/noReferenceProjectFormulaRule.js +73 -58
  18. package/dist/rules/formulas/noReferenceProjectFormulaRule.js.map +1 -1
  19. package/dist/rules/formulas/noReferenceProjectFormulaRule.test.js +34 -1
  20. package/dist/rules/formulas/noReferenceProjectFormulaRule.test.js.map +1 -1
  21. package/dist/searchProject.js +338 -217
  22. package/dist/searchProject.js.map +1 -1
  23. package/dist/util/helpers.js +31 -5
  24. package/dist/util/helpers.js.map +1 -1
  25. package/dist/util/helpers.test.js +58 -0
  26. package/dist/util/helpers.test.js.map +1 -0
  27. package/package.json +3 -2
  28. package/src/fixProject.ts +47 -0
  29. package/src/problems.worker.ts +90 -12
  30. package/src/rules/actions/legacyActionRule.test.ts +245 -1
  31. package/src/rules/actions/legacyActionRule.ts +166 -4
  32. package/src/rules/components/noReferenceComponentRule.test.ts +87 -1
  33. package/src/rules/components/noReferenceComponentRule.ts +38 -23
  34. package/src/rules/formulas/legacyFormulaRule.test.ts +242 -1
  35. package/src/rules/formulas/legacyFormulaRule.ts +697 -10
  36. package/src/rules/formulas/noReferenceProjectFormulaRule.test.ts +36 -1
  37. package/src/rules/formulas/noReferenceProjectFormulaRule.ts +78 -64
  38. package/src/searchProject.ts +217 -98
  39. package/src/types.d.ts +20 -3
  40. package/src/util/helpers.test.ts +80 -0
  41. package/src/util/helpers.ts +61 -9
@@ -1 +1 @@
1
- {"version":3,"file":"searchProject.js","sourceRoot":"","sources":["../src/searchProject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searchProject.js","sourceRoot":"","sources":["../src/searchProject.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,23 @@
1
1
  import { isDefined } from '@nordcraft/core/dist/utils/util';
2
- export function shouldSearchPath(path, pathsToVisit = []) {
2
+ /**
3
+ * Returns true if the full path is included in any of the pathsToVisit
4
+ * This allows searching only certain sub-trees in the files
5
+ * If pathsToVisit is empty, all paths are searched
6
+ */
7
+ export function shouldVisitTree({ path, pathsToVisit = [], }) {
3
8
  return (pathsToVisit.length === 0 ||
4
- pathsToVisit.some((pathToVisit) => pathToVisit.every((p1, i) => path[i] === p1)));
9
+ pathsToVisit.some((pathToVisit) =>
10
+ // Either the index is outside the current path (we are deeper in the tree)
11
+ // or the path matches on each index
12
+ pathToVisit.every((p1, i) => i >= path.length || path[i] === p1)));
13
+ }
14
+ /**
15
+ * Returns true if the exact path is included in pathsToVisit
16
+ * This allows searching only certain nodes in the files
17
+ */
18
+ export function shouldSearchExactPath({ path, pathsToVisit, }) {
19
+ return pathsToVisit.some((pathToVisit) => path.length === pathToVisit.length &&
20
+ pathToVisit.every((p1, i) => path[i] === p1));
5
21
  }
6
22
  export const isLegacyAction = (model) => {
7
23
  switch (model.type) {
@@ -16,14 +32,11 @@ const LEGACY_CUSTOM_ACTIONS = new Set([
16
32
  'If',
17
33
  'PreventDefault',
18
34
  'StopPropagation',
19
- 'Copy To Clipboard',
20
35
  'CopyToClipboard',
21
36
  'UpdateVariable',
22
- 'Update Variable',
23
37
  'Update URL parameter',
24
38
  'updateUrlParameters',
25
39
  'UpdateQueryParam',
26
- 'Update Query',
27
40
  'Fetch',
28
41
  'SetTimeout',
29
42
  'SetInterval',
@@ -32,6 +45,7 @@ const LEGACY_CUSTOM_ACTIONS = new Set([
32
45
  'GoToURL',
33
46
  'TriggerEvent',
34
47
  'Set session cookies',
48
+ '@toddle/setSessionCookies',
35
49
  ]);
36
50
  const INTERACTIVE_CONTENT = [
37
51
  { tag: 'button' },
@@ -62,4 +76,16 @@ export const interactiveContentElementDefinition = (element) => INTERACTIVE_CONT
62
76
  }
63
77
  return true;
64
78
  });
79
+ export const ARRAY_ARGUMENT_MAPPINGS = { List: 'Array' };
80
+ export const PREDICATE_ARGUMENT_MAPPINGS = {
81
+ ...ARRAY_ARGUMENT_MAPPINGS,
82
+ 'Predicate fx': 'Formula',
83
+ };
84
+ export const renameArguments = (mappings, args) => args?.map((arg) => ({
85
+ ...arg,
86
+ // Let's adjust the names
87
+ name: typeof arg.name === 'string'
88
+ ? (mappings[arg.name] ?? arg.name)
89
+ : arg.name,
90
+ })) ?? [];
65
91
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/util/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/util/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { describe, expect, test } from 'bun:test';
2
+ import { shouldSearchExactPath, shouldVisitTree } from './helpers';
3
+ describe('shouldSearchPath', () => {
4
+ test('should return true for paths in pathsToVisit', () => {
5
+ const pathsToVisit = [
6
+ ['components', 'Button'],
7
+ ['components', 'Input'],
8
+ ];
9
+ expect(shouldVisitTree({
10
+ path: ['components', 'Button', 'attrs', 'attr1', 'testValue'],
11
+ pathsToVisit,
12
+ })).toBe(true);
13
+ expect(shouldVisitTree({ path: ['components', 'Input'], pathsToVisit })).toBe(true);
14
+ expect(shouldVisitTree({
15
+ path: ['components', 'Button', 'formulas'],
16
+ pathsToVisit,
17
+ })).toBe(true);
18
+ expect(shouldVisitTree({
19
+ path: ['components', 'project-sidebar-item'],
20
+ pathsToVisit: [
21
+ [
22
+ 'components',
23
+ 'project-sidebar-item',
24
+ 'formulas',
25
+ 'p_Z1PzOcDop79KGafQ7Lm',
26
+ 'formula',
27
+ ],
28
+ ],
29
+ })).toBe(true);
30
+ });
31
+ test('should return false for paths not in pathsToVisit', () => {
32
+ const pathsToVisit = [
33
+ ['components', 'Button'],
34
+ ['components', 'Input'],
35
+ ];
36
+ expect(shouldVisitTree({ path: ['components', 'Card'], pathsToVisit })).toBe(false);
37
+ expect(shouldVisitTree({ path: ['components', 'Form'], pathsToVisit })).toBe(false);
38
+ });
39
+ });
40
+ describe('shouldSearchExactPath', () => {
41
+ test.only('should only return true for exact matches', () => {
42
+ const pathsToVisit = [
43
+ ['components', 'Button'],
44
+ ['components', 'Input'],
45
+ ];
46
+ expect(shouldSearchExactPath({ path: ['components', 'Button'], pathsToVisit })).toBe(true);
47
+ expect(shouldSearchExactPath({ path: ['components', 'Input'], pathsToVisit })).toBe(true);
48
+ expect(shouldSearchExactPath({
49
+ path: ['components', 'Button', 'formulas'],
50
+ pathsToVisit,
51
+ })).toBe(false);
52
+ expect(shouldSearchExactPath({
53
+ path: ['components', 'project-sidebar-item'],
54
+ pathsToVisit,
55
+ })).toBe(false);
56
+ });
57
+ });
58
+ //# sourceMappingURL=helpers.test.js.map
@@ -0,0 +1 @@
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,8 @@
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/nordcraftengine/nordcraft",
7
7
  "dependencies": {
8
- "@nordcraft/ssr": "1.0.38"
8
+ "@nordcraft/ssr": "1.0.40",
9
+ "jsondiffpatch": "0.7.3"
9
10
  },
10
11
  "scripts": {
11
12
  "build": "tsc",
@@ -17,5 +18,5 @@
17
18
  "test:watch:only": "bun test --watch --only"
18
19
  },
19
20
  "files": ["dist", "src"],
20
- "version": "1.0.38"
21
+ "version": "1.0.40"
21
22
  }
@@ -0,0 +1,47 @@
1
+ import type { ProjectFiles } from '@nordcraft/ssr/dist/ssr.types'
2
+ import { searchProject } from './searchProject'
3
+ import type { ApplicationState, FixType, Rule } from './types'
4
+
5
+ /**
6
+ * Uses searchProject to apply 1 fix at a time. Finally ends up with the resulting
7
+ * ProjectFiles that are returned.
8
+ * @returns ProjectFiles - updated files after fixes have been applied (if any)
9
+ */
10
+ export const fixProject = ({
11
+ files,
12
+ rule,
13
+ fixType,
14
+ pathsToVisit = [],
15
+ useExactPaths = false,
16
+ state,
17
+ }: {
18
+ files: Omit<ProjectFiles, 'config'> & Partial<Pick<ProjectFiles, 'config'>>
19
+ rule: Rule
20
+ fixType: FixType
21
+ pathsToVisit?: string[][]
22
+ useExactPaths?: boolean
23
+ state?: ApplicationState
24
+ }) => {
25
+ let updatedFiles = files
26
+ let iterations = 0
27
+ const maxIterations = 100
28
+ // Apply 1 fix per iteration for ${maxIterations} iterations
29
+ // After every fix, the updated files are used for the next iteration
30
+ while (iterations++ < maxIterations) {
31
+ const { value: suggestedFiles } = searchProject({
32
+ files: updatedFiles,
33
+ rules: [rule],
34
+ fixOptions: { mode: 'FIX', fixType },
35
+ pathsToVisit,
36
+ useExactPaths,
37
+ state,
38
+ }).next()
39
+ if (suggestedFiles) {
40
+ updatedFiles = suggestedFiles
41
+ } else {
42
+ // No more fixes could be applied
43
+ break
44
+ }
45
+ }
46
+ return updatedFiles
47
+ }
@@ -1,4 +1,7 @@
1
1
  import type { ProjectFiles } from '@nordcraft/ssr/dist/ssr.types'
2
+ import type { Delta } from 'jsondiffpatch'
3
+ import { create } from 'jsondiffpatch'
4
+ import { fixProject } from './fixProject'
2
5
  import { createActionNameRule } from './rules/actions/createActionNameRule'
3
6
  import { legacyActionRule } from './rules/actions/legacyActionRule'
4
7
  import { noReferenceProjectActionRule } from './rules/actions/noReferenceProjectActionRule'
@@ -56,13 +59,24 @@ import { unknownTriggerWorkflowParameterRule } from './rules/workflows/unknownTr
56
59
  import { unknownTriggerWorkflowRule } from './rules/workflows/unknownTriggerWorkflowRule'
57
60
  import { unknownWorkflowParameterRule } from './rules/workflows/unknownWorkflowParameterRule'
58
61
  import { searchProject } from './searchProject'
59
- import type { ApplicationState, Category, Code, Level, Result } from './types'
62
+ import type {
63
+ ApplicationState,
64
+ Category,
65
+ Code,
66
+ FixType,
67
+ Level,
68
+ Result,
69
+ } from './types'
60
70
 
61
71
  export type Options = {
62
72
  /**
63
73
  * Useful for running search on a subset or a single file.
64
74
  */
65
75
  pathsToVisit?: string[][]
76
+ /**
77
+ * Whether to match the paths exactly (including length) or just the beginning.
78
+ */
79
+ useExactPaths?: boolean
66
80
  /**
67
81
  * Search only rules with these specific categories. If empty, all categories are shown.
68
82
  */
@@ -80,7 +94,9 @@ export type Options = {
80
94
  * Dynamic data that is used by some rules.
81
95
  */
82
96
  state?: ApplicationState
83
-
97
+ /**
98
+ * Do not run rules with these codes. Useful for feature flagged rules
99
+ */
84
100
  rulesToExclude?: Code[]
85
101
  }
86
102
 
@@ -177,13 +193,36 @@ const RULES = [
177
193
  ambiguousStyleVariableSyntaxRule,
178
194
  ]
179
195
 
180
- /**
181
- * This function is a web worker that checks for problems in the files.
182
- */
183
- onmessage = (
184
- event: MessageEvent<{ files: ProjectFiles; options?: Options }>,
185
- ) => {
186
- const { files, options = {} } = event.data
196
+ interface FindProblemsArgs {
197
+ files: ProjectFiles
198
+ options?: Options
199
+ }
200
+
201
+ interface FixProblemsArgs {
202
+ files: ProjectFiles
203
+ options?: Options
204
+ fixRule: Code
205
+ fixType: FixType
206
+ id: string
207
+ }
208
+
209
+ type Message = FindProblemsArgs | FixProblemsArgs
210
+
211
+ type FindProblemsResponse = Result[]
212
+
213
+ interface FixProblemsResponse {
214
+ id: string
215
+ patch: Delta
216
+ fixRule: Code
217
+ fixType: FixType
218
+ }
219
+
220
+ type Response = FindProblemsResponse | FixProblemsResponse
221
+
222
+ const respond = (data: Response) => postMessage(data)
223
+
224
+ const findProblems = (data: FindProblemsArgs) => {
225
+ const { files, options = {} } = data
187
226
  const rules = RULES.filter(
188
227
  (rule) =>
189
228
  (!options.categories || options.categories.includes(rule.category)) &&
@@ -198,6 +237,7 @@ onmessage = (
198
237
  files,
199
238
  rules,
200
239
  pathsToVisit: options.pathsToVisit,
240
+ useExactPaths: options.useExactPaths,
201
241
  state: options.state,
202
242
  })) {
203
243
  switch (options.batchSize) {
@@ -208,7 +248,7 @@ onmessage = (
208
248
  case 'per-file': {
209
249
  if (fileType !== problem.path[0] || fileName !== problem.path[1]) {
210
250
  if (batch.length > 0) {
211
- postMessage(batch)
251
+ respond(batch)
212
252
  }
213
253
  batch = []
214
254
  fileType = problem.path[0]
@@ -222,7 +262,7 @@ onmessage = (
222
262
  default: {
223
263
  batch.push(problem)
224
264
  if (batch.length >= (options.batchSize ?? 1)) {
225
- postMessage(batch)
265
+ respond(batch)
226
266
  batch = []
227
267
  }
228
268
  break
@@ -231,5 +271,43 @@ onmessage = (
231
271
  }
232
272
 
233
273
  // Send the remaining results
234
- postMessage(batch)
274
+ respond(batch)
275
+ }
276
+
277
+ const fixProblems = (data: FixProblemsArgs) => {
278
+ const { files, options = {}, fixRule } = data
279
+ const rule = RULES.find((r) => r.code === fixRule)
280
+ if (!rule) {
281
+ throw new Error(`Unknown fix rule: ${data.fixRule}`)
282
+ }
283
+
284
+ const updatedFiles = fixProject({
285
+ files,
286
+ rule,
287
+ fixType: data.fixType,
288
+ pathsToVisit: options.pathsToVisit,
289
+ useExactPaths: options.useExactPaths,
290
+ state: options.state,
291
+ })
292
+ // Calculate diff
293
+ const jsonDiffPatch = create({ omitRemovedValues: true })
294
+ const diff = jsonDiffPatch.diff(files, updatedFiles)
295
+ // Send diff + metadata to main thread
296
+ respond({
297
+ id: data.id,
298
+ patch: diff,
299
+ fixRule: data.fixRule,
300
+ fixType: data.fixType,
301
+ })
302
+ }
303
+
304
+ /**
305
+ * This function is a web worker that checks for problems in the files.
306
+ */
307
+ onmessage = (event: MessageEvent<Message>) => {
308
+ if ('fixRule' in event.data) {
309
+ fixProblems(event.data)
310
+ } else {
311
+ findProblems(event.data)
312
+ }
235
313
  }
@@ -1,8 +1,14 @@
1
+ import type {
2
+ ActionModel,
3
+ ElementNodeModel,
4
+ } from '@nordcraft/core/dist/component/component.types'
5
+ import type { ProjectFiles } from '@nordcraft/ssr/dist/ssr.types'
1
6
  import { describe, expect, test } from 'bun:test'
7
+ import { fixProject } from '../../fixProject'
2
8
  import { searchProject } from '../../searchProject'
3
9
  import { legacyActionRule } from './legacyActionRule'
4
10
 
5
- describe('legacyAction', () => {
11
+ describe('find legacyActions', () => {
6
12
  test('should detect legacy actions used in components', () => {
7
13
  const problems = Array.from(
8
14
  searchProject({
@@ -90,3 +96,241 @@ describe('legacyAction', () => {
90
96
  expect(problems).toHaveLength(0)
91
97
  })
92
98
  })
99
+
100
+ describe('fix legacyActions', () => {
101
+ test('should replace the If action with a Switch action', () => {
102
+ const legacyIfAction: ActionModel = {
103
+ name: 'If',
104
+ events: {
105
+ true: {
106
+ actions: [
107
+ {
108
+ name: '@toddle/logToConsole',
109
+ arguments: [
110
+ {
111
+ name: 'Label',
112
+ description: 'A label for the message.',
113
+ formula: { type: 'value', value: '' },
114
+ },
115
+ {
116
+ name: 'Data',
117
+ type: { type: 'Any' },
118
+ description: 'The data you want to log to the console.',
119
+ formula: {
120
+ type: 'value',
121
+ value: '<Data>',
122
+ },
123
+ },
124
+ ],
125
+ label: 'Log to console',
126
+ group: 'debugging',
127
+ description: 'Log a message to the browser console.',
128
+ },
129
+ ],
130
+ },
131
+ false: {
132
+ actions: [
133
+ {
134
+ name: '@toddle/logToConsole',
135
+ arguments: [
136
+ {
137
+ name: 'Label',
138
+ description: 'A label for the message.',
139
+ formula: { type: 'value', value: '' },
140
+ },
141
+ {
142
+ name: 'Data',
143
+ type: { type: 'Any' },
144
+ description: 'The data you want to log to the console.',
145
+ formula: {
146
+ type: 'value',
147
+ value: '<Data>',
148
+ },
149
+ },
150
+ ],
151
+ label: 'Log to console',
152
+ group: 'debugging',
153
+ description: 'Log a message to the browser console.',
154
+ },
155
+ ],
156
+ },
157
+ },
158
+ arguments: [
159
+ {
160
+ name: 'Condition',
161
+ formula: { type: 'value', value: true },
162
+ },
163
+ ],
164
+ }
165
+ const projectFiles: ProjectFiles = {
166
+ formulas: {},
167
+ components: {
168
+ apiComponent: {
169
+ name: 'test',
170
+ nodes: {
171
+ root: {
172
+ tag: 'p',
173
+ type: 'element',
174
+ attrs: {},
175
+ style: {},
176
+ events: {
177
+ click: {
178
+ trigger: 'click',
179
+ actions: [legacyIfAction],
180
+ },
181
+ },
182
+ classes: {},
183
+ children: [],
184
+ },
185
+ },
186
+ formulas: {},
187
+ apis: {},
188
+ attributes: {},
189
+ variables: {},
190
+ },
191
+ },
192
+ }
193
+ const fixedProject = fixProject({
194
+ files: projectFiles,
195
+ rule: legacyActionRule,
196
+ fixType: 'replace-legacy-action',
197
+ })
198
+ const fixedAction = (
199
+ fixedProject.components['apiComponent']?.nodes['root'] as ElementNodeModel
200
+ ).events['click'].actions[0]
201
+ expect(fixedAction).toMatchInlineSnapshot(`
202
+ {
203
+ "cases": [
204
+ {
205
+ "actions": [
206
+ {
207
+ "arguments": [
208
+ {
209
+ "description": "A label for the message.",
210
+ "formula": {
211
+ "type": "value",
212
+ "value": "",
213
+ },
214
+ "name": "Label",
215
+ },
216
+ {
217
+ "description": "The data you want to log to the console.",
218
+ "formula": {
219
+ "type": "value",
220
+ "value": "<Data>",
221
+ },
222
+ "name": "Data",
223
+ "type": {
224
+ "type": "Any",
225
+ },
226
+ },
227
+ ],
228
+ "description": "Log a message to the browser console.",
229
+ "group": "debugging",
230
+ "label": "Log to console",
231
+ "name": "@toddle/logToConsole",
232
+ },
233
+ ],
234
+ "condition": {
235
+ "type": "value",
236
+ "value": true,
237
+ },
238
+ },
239
+ ],
240
+ "default": {
241
+ "actions": [
242
+ {
243
+ "arguments": [
244
+ {
245
+ "description": "A label for the message.",
246
+ "formula": {
247
+ "type": "value",
248
+ "value": "",
249
+ },
250
+ "name": "Label",
251
+ },
252
+ {
253
+ "description": "The data you want to log to the console.",
254
+ "formula": {
255
+ "type": "value",
256
+ "value": "<Data>",
257
+ },
258
+ "name": "Data",
259
+ "type": {
260
+ "type": "Any",
261
+ },
262
+ },
263
+ ],
264
+ "description": "Log a message to the browser console.",
265
+ "group": "debugging",
266
+ "label": "Log to console",
267
+ "name": "@toddle/logToConsole",
268
+ },
269
+ ],
270
+ },
271
+ "type": "Switch",
272
+ }
273
+ `)
274
+ })
275
+ test('should replace the TriggerEvent action with the builtin action', () => {
276
+ const legacyAction: ActionModel = {
277
+ name: 'TriggerEvent',
278
+ arguments: [
279
+ {
280
+ name: 'name',
281
+ formula: { type: 'value', value: 'sdfsdf' },
282
+ },
283
+ {
284
+ name: 'data',
285
+ formula: { type: 'value', value: 'test' },
286
+ },
287
+ ],
288
+ }
289
+ const projectFiles: ProjectFiles = {
290
+ formulas: {},
291
+ components: {
292
+ apiComponent: {
293
+ name: 'test',
294
+ nodes: {
295
+ root: {
296
+ tag: 'p',
297
+ type: 'element',
298
+ attrs: {},
299
+ style: {},
300
+ events: {
301
+ click: {
302
+ trigger: 'click',
303
+ actions: [legacyAction],
304
+ },
305
+ },
306
+ classes: {},
307
+ children: [],
308
+ },
309
+ },
310
+ formulas: {},
311
+ apis: {},
312
+ attributes: {},
313
+ variables: {},
314
+ },
315
+ },
316
+ }
317
+ const fixedProject = fixProject({
318
+ files: projectFiles,
319
+ rule: legacyActionRule,
320
+ fixType: 'replace-legacy-action',
321
+ })
322
+ const fixedAction = (
323
+ fixedProject.components['apiComponent']?.nodes['root'] as ElementNodeModel
324
+ ).events['click'].actions[0]
325
+ expect(fixedAction).toMatchInlineSnapshot(`
326
+ {
327
+ "data": {
328
+ "type": "value",
329
+ "value": "test",
330
+ },
331
+ "event": "sdfsdf",
332
+ "type": "TriggerEvent",
333
+ }
334
+ `)
335
+ })
336
+ })