@craft-ts/dev-tools 0.7.0-beta.13 → 0.7.0-beta.16

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 (89) hide show
  1. package/README.md +60 -10
  2. package/package.json +8 -2
  3. package/src/bin/agent-selector.d.ts +22 -0
  4. package/src/bin/agent-selector.js +100 -0
  5. package/src/bin/agent-selector.js.map +1 -0
  6. package/src/bin/craft-graph.js +74 -8
  7. package/src/bin/craft-graph.js.map +1 -1
  8. package/src/bin/craft.d.ts +22 -0
  9. package/src/bin/craft.js +231 -28
  10. package/src/bin/craft.js.map +1 -1
  11. package/src/eslint-rules/anchor-has-href.cjs +37 -3
  12. package/src/eslint-rules/craft-computed-name-match.cjs +26 -5
  13. package/src/eslint-rules/craft-name-match-utils.cjs +18 -9
  14. package/src/eslint-rules/hyperscript-walk.cjs +3 -3
  15. package/src/eslint-rules/index.cjs +46 -1
  16. package/src/eslint-rules/no-auth-token-in-local-storage.cjs +17 -0
  17. package/src/eslint-rules/no-craft-computed-side-effects.cjs +12 -5
  18. package/src/eslint-rules/no-craft-service-component-same-file.cjs +138 -0
  19. package/src/eslint-rules/no-effect-import-in-frontend.cjs +52 -0
  20. package/src/eslint-rules/no-effect-in-params.cjs +31 -1
  21. package/src/eslint-rules/no-explicit-effect-type.cjs +137 -0
  22. package/src/eslint-rules/no-free-has.cjs +47 -0
  23. package/src/eslint-rules/no-heading-level-skip.cjs +6 -6
  24. package/src/eslint-rules/no-raw-class.cjs +76 -0
  25. package/src/eslint-rules/no-raw-css-value.cjs +163 -0
  26. package/src/eslint-rules/no-raw-user-url.cjs +114 -0
  27. package/src/eslint-rules/no-trust-forwarded-headers.cjs +43 -0
  28. package/src/eslint-rules/no-unsafe-html.cjs +93 -0
  29. package/src/eslint-rules/no-unsafe-transfer-state.cjs +54 -0
  30. package/src/eslint-rules/prefer-craft-template-blocks.cjs +8 -8
  31. package/src/eslint-rules/prefer-direct-yieldable-callback.cjs +57 -14
  32. package/src/eslint-rules/prefer-inline-effect-insertion.cjs +263 -0
  33. package/src/eslint-rules/prefer-inline-route-providers.cjs +138 -0
  34. package/src/eslint-rules/recommended-config.cjs +6 -0
  35. package/src/eslint-rules/require-reactive-template-bindings.cjs +8 -8
  36. package/src/eslint-rules/require-route-security-policy.cjs +87 -0
  37. package/src/eslint-rules/require-server-function-timeout.cjs +39 -0
  38. package/src/eslint-rules/security-config.cjs +14 -0
  39. package/src/eslint-rules/security-rule-utils.cjs +21 -0
  40. package/src/eslint-rules/style-file-boundary.cjs +75 -0
  41. package/src/eslint-rules/sync-effect-body.cjs +343 -0
  42. package/src/index.d.ts +4 -0
  43. package/src/index.js +4 -0
  44. package/src/index.js.map +1 -1
  45. package/src/scripts/architecture-graph.js +8 -2
  46. package/src/scripts/architecture-graph.js.map +1 -1
  47. package/src/scripts/create/create-project.d.ts +60 -1
  48. package/src/scripts/create/create-project.js +2082 -184
  49. package/src/scripts/create/create-project.js.map +1 -1
  50. package/src/scripts/data-flow-graph.d.ts +1 -1
  51. package/src/scripts/effect-dependency-graph.d.ts +1 -1
  52. package/src/scripts/security-check.d.ts +30 -0
  53. package/src/scripts/security-check.js +223 -0
  54. package/src/scripts/security-check.js.map +1 -0
  55. package/src/scripts/style-architecture.d.ts +56 -0
  56. package/src/scripts/style-architecture.js +142 -0
  57. package/src/scripts/style-architecture.js.map +1 -0
  58. package/src/scripts/style-graph.d.ts +99 -0
  59. package/src/scripts/style-graph.js +179 -0
  60. package/src/scripts/style-graph.js.map +1 -0
  61. package/src/scripts/style-report.d.ts +55 -0
  62. package/src/scripts/style-report.js +67 -0
  63. package/src/scripts/style-report.js.map +1 -0
  64. package/src/scripts/template/migrate-template.js +1 -1
  65. package/src/scripts/template/migrate-template.js.map +1 -1
  66. package/src/scripts/angular-brand-codemod.ts +0 -3985
  67. package/src/scripts/architecture/migrate-architecture.ts +0 -653
  68. package/src/scripts/architecture-graph.ts +0 -3136
  69. package/src/scripts/components/migrate-components.ts +0 -227
  70. package/src/scripts/components/migration-diagnostic.ts +0 -8
  71. package/src/scripts/create/create-project.ts +0 -849
  72. package/src/scripts/data-flow-graph.ts +0 -240
  73. package/src/scripts/dependency-graph.ts +0 -5908
  74. package/src/scripts/effect-dependency-graph.ts +0 -630
  75. package/src/scripts/migrate.ts +0 -162
  76. package/src/scripts/migration-workspace.ts +0 -93
  77. package/src/scripts/primitives/migrate-named-primitives.ts +0 -627
  78. package/src/scripts/primitives/migrate-primitive-generators.ts +0 -410
  79. package/src/scripts/primitives/migrate-primitives.ts +0 -655
  80. package/src/scripts/primitives/migrate-yieldable-reactive-reads.ts +0 -499
  81. package/src/scripts/primitives/migration-diagnostic.ts +0 -15
  82. package/src/scripts/routes/migrate-routes.ts +0 -895
  83. package/src/scripts/routes/migration-diagnostic.ts +0 -25
  84. package/src/scripts/routes/route-command.ts +0 -1807
  85. package/src/scripts/routes/verify-routes.ts +0 -1511
  86. package/src/scripts/services/config.ts +0 -60
  87. package/src/scripts/services/migrate-services.ts +0 -1348
  88. package/src/scripts/services/migration-diagnostic.ts +0 -28
  89. package/src/scripts/template/migrate-template.ts +0 -418
package/src/bin/craft.js CHANGED
@@ -4,6 +4,9 @@ import { stdin as input, stdout as output } from 'node:process';
4
4
  import { listAngularProjects, runRouteAdd, runRouteSplit, } from '../scripts/routes/route-command.js';
5
5
  import { runRouteVerification, } from '../scripts/routes/verify-routes.js';
6
6
  import { createCraftProject, createModeFromFlag, parseCreateAgents, } from '../scripts/create/create-project.js';
7
+ import { selectOptionInteractively, selectOptionsInteractively, selectAgentsInteractively, } from './agent-selector.js';
8
+ import { runSecurityCheck } from '../scripts/security-check.js';
9
+ import { spawnSync } from 'node:child_process';
7
10
  async function main(argv) {
8
11
  if (argv[0] === 'create') {
9
12
  return await runCreate(argv.slice(1));
@@ -20,6 +23,29 @@ async function main(argv) {
20
23
  child.on('error', () => resolve(1));
21
24
  });
22
25
  }
26
+ if (argv[0] === 'security' && argv[1] === 'check') {
27
+ const rootIndex = argv.indexOf('--root');
28
+ const rootDir = rootIndex >= 0 ? argv[rootIndex + 1] : process.cwd();
29
+ const result = runSecurityCheck({ rootDir, strict: argv.includes('--strict') });
30
+ for (const diagnostic of result.diagnostics) {
31
+ const line = `${diagnostic.file}:${diagnostic.line} ${diagnostic.code}: ${diagnostic.message}`;
32
+ if (diagnostic.severity === 'error')
33
+ console.error(line);
34
+ else
35
+ console.warn(`warning ${line}`);
36
+ }
37
+ const errors = result.diagnostics.filter((diagnostic) => diagnostic.severity === 'error').length;
38
+ if (result.passed) {
39
+ console.log(`Craft security check passed${result.diagnostics.length > 0 ? ` (${result.diagnostics.length} warning(s))` : ''}.`);
40
+ }
41
+ else {
42
+ console.error(`Craft security check failed with ${errors} error(s).`);
43
+ }
44
+ return result.passed ? 0 : 1;
45
+ }
46
+ if (argv[0] === 'i18n' && ['check', 'test'].includes(argv[1] ?? '')) {
47
+ return runI18nCommand(argv[1]);
48
+ }
23
49
  if (argv[0] !== 'route' || !['add', 'split', 'verify'].includes(argv[1] ?? '')) {
24
50
  printHelp();
25
51
  return argv.includes('--help') ? 0 : 1;
@@ -159,35 +185,96 @@ function parseArgs(argv) {
159
185
  }
160
186
  return { values, flags, positionals, help };
161
187
  }
162
- function parseCreateArgs(argv) {
188
+ const CREATE_FRONTEND_OPTIONS = [
189
+ { value: 'plain', label: 'Plain CraftTS' },
190
+ { value: 'effect', label: 'Effect v4' },
191
+ ];
192
+ const CREATE_BACKEND_OPTIONS = [
193
+ { value: 'none', label: 'No backend' },
194
+ { value: 'promise', label: 'Promise server functions' },
195
+ { value: 'effect', label: 'Effect server functions' },
196
+ ];
197
+ const CREATE_I18N_OPTIONS = [
198
+ { value: 'strict', label: 'Strict type-safe i18n' },
199
+ { value: 'loose', label: 'Loose i18n validation' },
200
+ { value: 'none', label: 'No i18n' },
201
+ ];
202
+ const CREATE_DESIGN_SYSTEM_OPTIONS = [
203
+ { value: 'basic', label: 'Basic design system' },
204
+ { value: 'none', label: 'No design system' },
205
+ ];
206
+ const CREATE_BOOLEAN_OPTIONS = [
207
+ { value: 'yes', label: 'Yes' },
208
+ { value: 'no', label: 'No' },
209
+ ];
210
+ const CREATE_WORKSPACE_OPTIONS = [
211
+ { value: 'standalone', label: 'Standalone project' },
212
+ { value: 'nx', label: 'Nx workspace' },
213
+ ];
214
+ const CREATE_LOCALE_OPTIONS = [
215
+ { value: 'en-US', label: 'English (United States)' },
216
+ { value: 'fr-FR', label: 'Français (France)' },
217
+ { value: 'de-DE', label: 'Deutsch (Deutschland)' },
218
+ { value: 'es-ES', label: 'Español (España)' },
219
+ { value: 'it-IT', label: 'Italiano (Italia)' },
220
+ { value: 'pt-BR', label: 'Português (Brasil)' },
221
+ { value: 'ja-JP', label: '日本語 (日本)' },
222
+ { value: 'zh-CN', label: '中文 (中国)' },
223
+ ];
224
+ export function parseCreateArgs(argv) {
163
225
  const result = { flags: new Set(), help: false };
226
+ const values = new Map();
227
+ const valueNames = new Set([
228
+ 'effect', 'frontend-runtime', 'backend-runtime', 'effect-scope', 'agents',
229
+ 'locales', 'default-locale', 'i18n', 'design-system', 'workspace',
230
+ 'references', 'craft-ts-ref', 'effect-ts-ref',
231
+ ]);
232
+ const setValue = (name, value) => {
233
+ values.set(name, value);
234
+ };
164
235
  for (let index = 0; index < argv.length; index += 1) {
165
236
  const argument = argv[index];
166
237
  if (argument === '--help' || argument === '-h') {
167
238
  result.help = true;
168
239
  continue;
169
240
  }
170
- if (argument === '--no-effect') {
171
- result.effect = 'none';
241
+ if (argument === '--no-effect' || argument === '--no-i18n' || argument === '--no-design-system' || argument === '--no-typed-css' || argument === '--no-clone-craft-ts' || argument === '--no-clone-effect-ts') {
242
+ if (argument === '--no-effect')
243
+ setValue('effect', 'none');
244
+ else if (argument === '--no-i18n')
245
+ setValue('i18n', 'none');
246
+ else if (argument === '--no-design-system')
247
+ setValue('design-system', 'none');
248
+ else if (argument === '--no-typed-css')
249
+ result.typedCss = false;
250
+ else if (argument === '--no-clone-craft-ts')
251
+ result.cloneCraftTs = false;
252
+ else
253
+ result.cloneEffectTs = false;
172
254
  continue;
173
255
  }
174
- if (argument === '--effect' || argument === '--agents') {
256
+ if (valueNames.has(argument.slice(2))) {
175
257
  const value = argv[++index];
176
258
  if (!value || value.startsWith('--')) {
177
259
  throw new Error(`Missing value for ${argument}.`);
178
260
  }
179
- if (argument === '--effect')
180
- result.effect = value;
181
- else
182
- result.agents = value;
261
+ setValue(argument.slice(2), value);
183
262
  continue;
184
263
  }
185
- if (argument.startsWith('--effect=')) {
186
- result.effect = argument.slice('--effect='.length);
264
+ if (argument.startsWith('--') && argument.includes('=')) {
265
+ const [name, ...parts] = argument.slice(2).split('=');
266
+ if (!valueNames.has(name))
267
+ throw new Error(`Unknown option --${name}.`);
268
+ setValue(name, parts.join('='));
187
269
  continue;
188
270
  }
189
- if (argument.startsWith('--agents=')) {
190
- result.agents = argument.slice('--agents='.length);
271
+ if (argument === '--typed-css' || argument === '--clone-craft-ts' || argument === '--clone-effect-ts') {
272
+ if (argument === '--typed-css')
273
+ result.typedCss = true;
274
+ else if (argument === '--clone-craft-ts')
275
+ result.cloneCraftTs = true;
276
+ else
277
+ result.cloneEffectTs = true;
191
278
  continue;
192
279
  }
193
280
  if (argument === '--yes' || argument === '--force' || argument === '--json') {
@@ -201,8 +288,36 @@ function parseCreateArgs(argv) {
201
288
  throw new Error('create accepts one destination directory.');
202
289
  result.directory = argument;
203
290
  }
291
+ result.effect = values.get('effect');
292
+ result.frontendRuntime = values.get('frontend-runtime');
293
+ result.backendRuntime = values.get('backend-runtime');
294
+ result.effectScope = values.get('effect-scope');
295
+ result.agents = values.get('agents');
296
+ result.locales = values.get('locales');
297
+ result.defaultLocale = values.get('default-locale');
298
+ result.i18n = values.get('i18n');
299
+ result.designSystem = values.get('design-system');
300
+ result.workspace = values.get('workspace');
301
+ result.references = values.get('references');
302
+ result.craftTsRef = values.get('craft-ts-ref');
303
+ result.effectTsRef = values.get('effect-ts-ref');
204
304
  return result;
205
305
  }
306
+ function parseLocales(value) {
307
+ const locales = value
308
+ .split(',')
309
+ .map((locale) => locale.trim())
310
+ .filter(Boolean);
311
+ return locales.length > 0 ? locales : ['en-US', 'fr-FR'];
312
+ }
313
+ async function selectCreateOption(readline, options, title, initialValue) {
314
+ readline.pause();
315
+ return selectOptionInteractively(options, title, initialValue, input, output);
316
+ }
317
+ async function selectCreateOptions(readline, options, title, initialSelection, minimumSelection = 0) {
318
+ readline.pause();
319
+ return selectOptionsInteractively(options, title, initialSelection, input, output, minimumSelection);
320
+ }
206
321
  async function runCreate(argv) {
207
322
  const parsed = parseCreateArgs(argv);
208
323
  if (parsed.help) {
@@ -211,33 +326,88 @@ async function runCreate(argv) {
211
326
  }
212
327
  const readline = createInterface({ input, output });
213
328
  try {
214
- // This is intentionally the first question in the interactive flow: the
215
- // Effect v4 choice changes both dependencies and the installed skills.
216
- const mode = createModeFromFlag(parsed.effect ??
217
- (parsed.flags.has('yes')
218
- ? 'none'
219
- : (await readline.question('Use EffectTS v4? [y/N] ')).trim().toLowerCase().startsWith('y')
220
- ? 'v4'
221
- : 'none'));
222
329
  const directory = parsed.directory ?? (await readline.question('Project directory: ')).trim();
223
330
  if (!directory)
224
331
  throw new Error('A destination directory is required.');
225
- const agentsValue = parsed.agents ??
226
- (parsed.flags.has('yes')
227
- ? undefined
228
- : await readline.question('Agent integrations [codex,cursor,claude-code,cloud-code] (empty = Codex): '));
229
- const agents = parseCreateAgents(agentsValue);
332
+ const interactive = Boolean(process.stdin.isTTY) && !parsed.flags.has('yes');
333
+ const legacyMode = parsed.effect === undefined
334
+ ? undefined
335
+ : createModeFromFlag(parsed.effect);
336
+ const frontendRuntime = parsed.frontendRuntime ?? legacyMode ?? (parsed.effectScope ? undefined : (interactive
337
+ ? await selectCreateOption(readline, CREATE_FRONTEND_OPTIONS, 'Frontend runtime (↑/↓ move, Enter confirm):', 'plain')
338
+ : 'plain'));
339
+ const backendRuntime = parsed.backendRuntime ?? (parsed.effectScope ? undefined : (interactive
340
+ ? await selectCreateOption(readline, CREATE_BACKEND_OPTIONS, 'Backend runtime (↑/↓ move, Enter confirm):', 'none')
341
+ : 'none'));
342
+ const i18n = parsed.i18n ?? (interactive
343
+ ? await selectCreateOption(readline, CREATE_I18N_OPTIONS, 'i18n (↑/↓ move, Enter confirm):', 'strict')
344
+ : 'strict');
345
+ const locales = parsed.locales !== undefined
346
+ ? parseLocales(parsed.locales)
347
+ : interactive && i18n !== 'none'
348
+ ? [...await selectCreateOptions(readline, CREATE_LOCALE_OPTIONS, 'Locales (↑/↓ move, Space toggle, Enter confirm):', ['en-US', 'fr-FR'], 1)]
349
+ : undefined;
350
+ const defaultLocale = parsed.defaultLocale ?? (interactive && i18n !== 'none'
351
+ ? await selectCreateOption(readline, (locales ?? ['en-US']).map((locale) => ({ value: locale, label: locale })), 'Default locale (↑/↓ move, Enter confirm):', locales?.[0] ?? 'en-US')
352
+ : undefined);
353
+ const designSystem = parsed.designSystem ?? (interactive
354
+ ? await selectCreateOption(readline, CREATE_DESIGN_SYSTEM_OPTIONS, 'Design system (↑/↓ move, Enter confirm):', 'basic')
355
+ : 'basic');
356
+ const typedCss = parsed.typedCss ?? (interactive
357
+ ? (await selectCreateOption(readline, CREATE_BOOLEAN_OPTIONS, 'Enable typed CSS? (↑/↓ move, Enter confirm):', 'yes')) === 'yes'
358
+ : true);
359
+ const workspace = parsed.workspace ?? (interactive
360
+ ? await selectCreateOption(readline, CREATE_WORKSPACE_OPTIONS, 'Workspace (↑/↓ move, Enter confirm):', 'standalone')
361
+ : undefined);
362
+ let references = parsed.references;
363
+ let cloneCraftTs = parsed.cloneCraftTs;
364
+ let cloneEffectTs = parsed.cloneEffectTs;
365
+ const effectEnabled = frontendRuntime === 'effect'
366
+ || backendRuntime === 'effect'
367
+ || (parsed.effectScope !== undefined && parsed.effectScope !== 'none');
368
+ if (interactive && references === undefined && cloneCraftTs === undefined && cloneEffectTs === undefined) {
369
+ cloneCraftTs = (await selectCreateOption(readline, CREATE_BOOLEAN_OPTIONS, 'Clone CraftTS sources for the AI? (↑/↓ move, Enter confirm):', 'yes')) === 'yes';
370
+ cloneEffectTs = effectEnabled
371
+ ? (await selectCreateOption(readline, CREATE_BOOLEAN_OPTIONS, 'Clone EffectTS sources for the AI? (↑/↓ move, Enter confirm):', 'yes')) === 'yes'
372
+ : false;
373
+ references = cloneEffectTs ? 'all' : cloneCraftTs ? 'craft-ts' : 'none';
374
+ }
375
+ let agents;
376
+ if (parsed.agents !== undefined) {
377
+ agents = parseCreateAgents(parsed.agents);
378
+ }
379
+ else if (interactive) {
380
+ agents = await selectAgentsInteractively(process.stdin, output);
381
+ }
382
+ else {
383
+ agents = parseCreateAgents(undefined);
384
+ }
230
385
  const result = await createCraftProject({
231
386
  directory,
232
- mode,
387
+ mode: legacyMode,
388
+ frontendRuntime,
389
+ backendRuntime,
390
+ effectScope: parsed.effectScope,
233
391
  agents,
392
+ locales,
393
+ defaultLocale,
394
+ i18n,
395
+ designSystem,
396
+ typedCss,
397
+ workspace,
398
+ references,
399
+ craftTsRef: parsed.craftTsRef,
400
+ effectTsRef: parsed.effectTsRef,
401
+ cloneCraftTs,
402
+ cloneEffectTs,
234
403
  force: parsed.flags.has('force'),
235
404
  });
236
405
  if (parsed.flags.has('json')) {
237
406
  console.log(JSON.stringify(result, null, 2));
238
407
  }
239
408
  else {
240
- console.log(`Created ${result.mode === 'effect' ? 'Effect v4' : 'plain'} CraftTS app at ${result.directory}`);
409
+ console.log(`Created ${result.frontendRuntime === 'effect' ? 'Effect v4' : 'plain'} CraftTS app at ${result.directory}`);
410
+ console.log(`Runtime: frontend=${result.frontendRuntime}, backend=${result.backendRuntime}`);
241
411
  console.log(`Agents: ${result.agents.length > 0 ? result.agents.join(', ') : 'none'}`);
242
412
  console.log(`Next: cd ${result.directory} && npm install && npm run dev`);
243
413
  }
@@ -247,6 +417,21 @@ async function runCreate(argv) {
247
417
  readline.close();
248
418
  }
249
419
  }
420
+ function runI18nCommand(command) {
421
+ const executable = command === 'check' ? 'tsc' : 'vitest';
422
+ const args = command === 'check'
423
+ ? ['-p', 'tsconfig.app.json', '--noEmit', '--pretty', 'false']
424
+ : ['run', '--config', 'vitest.config.ts'];
425
+ const result = spawnSync(`node_modules/.bin/${executable}`, args, {
426
+ cwd: process.cwd(),
427
+ stdio: 'inherit',
428
+ });
429
+ if (result.error) {
430
+ console.error(`Unable to run i18n ${command}: ${result.error.message}`);
431
+ return 1;
432
+ }
433
+ return result.status ?? 1;
434
+ }
250
435
  function printResult(result, json) {
251
436
  if (json) {
252
437
  console.log(JSON.stringify(result, null, 2));
@@ -280,7 +465,9 @@ function printVerificationResult(result, json) {
280
465
  function printHelp() {
281
466
  console.log(`Usage:
282
467
  craft create [directory] [options]
468
+ craft i18n check|test
283
469
  craft graph [options]
470
+ craft security check [--strict] [--root <dir>]
284
471
  craft route add [path] [options]
285
472
  craft route split --parent <file#collection> --prefix <path> --target <file>
286
473
  craft route verify [options]
@@ -288,7 +475,23 @@ function printHelp() {
288
475
  Options:
289
476
  --effect <v4|none> Select the Effect v4 or plain CraftTS starter
290
477
  --no-effect Alias for --effect none
291
- --agents <list> codex,cursor,claude-code,cloud-code (or none)
478
+ --frontend-runtime <plain|effect>
479
+ --backend-runtime <none|promise|effect>
480
+ --effect-scope <none|frontend|backend|both>
481
+ --agents <list> codex,cursor,claude-code,gemini (cloud-code alias; or none)
482
+ --locales <list> Comma-separated locales (default: en-US,fr-FR)
483
+ --default-locale <locale> Initial locale (must be in --locales)
484
+ --i18n <strict|loose|none> Plural/catalogue validation mode
485
+ --no-i18n Disable i18n and its files/scripts
486
+ --design-system <basic|none>
487
+ --no-design-system
488
+ --typed-css / --no-typed-css
489
+ --workspace <standalone|nx>
490
+ --references <none|craft-ts|all>
491
+ --craft-ts-ref <git-ref> CraftTS reference tag/commit
492
+ --effect-ts-ref <git-ref> EffectTS reference tag/commit
493
+ --clone-craft-ts / --no-clone-craft-ts
494
+ --clone-effect-ts / --no-clone-effect-ts
292
495
  --force Merge into a non-empty destination directory
293
496
  --json Emit the creation result as JSON
294
497
  --root <dir> Workspace root (defaults to cwd)
@@ -1 +1 @@
1
- {"version":3,"file":"craft.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/bin/craft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"craft.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/bin/craft.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,39 @@
1
1
  'use strict';
2
2
 
3
- const { parseHyperscriptCall, hasProp, staticPropString } = require('./hyperscript-walk.cjs');
3
+ const {
4
+ parseHyperscriptCall,
5
+ hasProp,
6
+ staticPropString,
7
+ } = require('./hyperscript-walk.cjs');
8
+
9
+ function hasCraftRouterLinkPipe(node) {
10
+ const pipeMember = node.parent;
11
+ if (
12
+ !pipeMember ||
13
+ pipeMember.type !== 'MemberExpression' ||
14
+ pipeMember.computed ||
15
+ pipeMember.property.type !== 'Identifier' ||
16
+ pipeMember.property.name !== 'pipe'
17
+ ) {
18
+ return false;
19
+ }
20
+
21
+ const pipeCall = pipeMember.parent;
22
+ if (
23
+ !pipeCall ||
24
+ pipeCall.type !== 'CallExpression' ||
25
+ pipeCall.arguments.length !== 1
26
+ ) {
27
+ return false;
28
+ }
29
+
30
+ const directiveCall = pipeCall.arguments[0];
31
+ return (
32
+ directiveCall.type === 'CallExpression' &&
33
+ directiveCall.callee.type === 'Identifier' &&
34
+ directiveCall.callee.name === 'CraftRouterLink'
35
+ );
36
+ }
4
37
 
5
38
  module.exports = {
6
39
  meta: {
@@ -20,9 +53,10 @@ module.exports = {
20
53
  CallExpression(node) {
21
54
  const call = parseHyperscriptCall(node);
22
55
  if (!call || call.tag !== 'a') return;
23
- if (hasProp(call.props, 'href') || hasProp(call.props, 'craftRouterLink')) return;
56
+ if (hasProp(call.props, 'href') || hasCraftRouterLinkPipe(node)) return;
24
57
  const role = staticPropString(call.props, 'role');
25
- const hasClick = hasProp(call.props, 'click') || hasProp(call.props, 'onClick');
58
+ const hasClick =
59
+ hasProp(call.props, 'click') || hasProp(call.props, 'onClick');
26
60
  const hasKey =
27
61
  hasProp(call.props, 'keydown') ||
28
62
  hasProp(call.props, 'onKeydown') ||
@@ -3,7 +3,14 @@ const { createNameMatchRule } = require('./craft-name-match-utils.cjs');
3
3
  const namedRule = createNameMatchRule({
4
4
  calleeName: 'craftComputed',
5
5
  description:
6
- 'Require a matching craftComputed name outside insertion result objects; insertion keys provide the runtime name automatically.',
6
+ 'Require a matching craftComputed or computedEffect name outside insertion result objects; insertion keys provide the runtime name automatically.',
7
+ supportsObjectConfigForm: false,
8
+ });
9
+
10
+ const computedEffectNamedRule = createNameMatchRule({
11
+ calleeName: 'computedEffect',
12
+ description:
13
+ 'Require a matching computedEffect name outside insertion result objects; insertion keys provide the runtime name automatically.',
7
14
  supportsObjectConfigForm: false,
8
15
  });
9
16
 
@@ -11,11 +18,18 @@ module.exports = {
11
18
  ...namedRule,
12
19
  create(context) {
13
20
  const listeners = namedRule.create(context);
21
+ const computedEffectListeners = computedEffectNamedRule.create(context);
14
22
  return {
15
23
  ...listeners,
16
24
  CallExpression(node) {
17
25
  if (isInsertionResultProperty(node)) return;
18
- listeners.CallExpression?.(node);
26
+ if (node.callee.type !== 'Identifier') return;
27
+ if (node.callee.name === 'craftComputed') {
28
+ listeners.CallExpression?.(node);
29
+ }
30
+ if (node.callee.name === 'computedEffect') {
31
+ computedEffectListeners.CallExpression?.(node);
32
+ }
19
33
  },
20
34
  };
21
35
  },
@@ -51,9 +65,16 @@ function isInsertionResultProperty(node) {
51
65
  name &&
52
66
  (name.startsWith('insert') ||
53
67
  name === 'craftPipe' ||
54
- ['state', 'query', 'mutation', 'asyncProcess', 'queryParams'].includes(
55
- name,
56
- )),
68
+ [
69
+ 'state',
70
+ 'query',
71
+ 'mutation',
72
+ 'asyncProcess',
73
+ 'queryParams',
74
+ 'queryEffect',
75
+ 'mutationEffect',
76
+ 'asyncProcessEffect',
77
+ ].includes(name)),
57
78
  );
58
79
  }
59
80
  if (current.type === 'Program') break;
@@ -10,8 +10,10 @@ function createNameMatchRule({
10
10
  fixable: 'code',
11
11
  schema: [],
12
12
  messages: {
13
- missingName: `${calleeName} must be called with a string literal name matching '{{declaredName}}' as the first argument.`,
14
- mismatchedName: `${calleeName} first argument '{{actual}}' must match the declared name '{{declaredName}}'.`,
13
+ missingName:
14
+ "{{calleeName}} must be called with a string literal name matching '{{declaredName}}' as the first argument.",
15
+ mismatchedName:
16
+ "{{calleeName}} first argument '{{actual}}' must match the declared name '{{declaredName}}'.",
15
17
  },
16
18
  },
17
19
  create(context) {
@@ -37,7 +39,7 @@ function createNameMatchRule({
37
39
  context.report({
38
40
  node,
39
41
  messageId: 'missingName',
40
- data: { declaredName },
42
+ data: { calleeName, declaredName },
41
43
  fix(fixer) {
42
44
  const openParen = sourceCode.getTokenAfter(
43
45
  node.callee,
@@ -50,7 +52,10 @@ function createNameMatchRule({
50
52
  return;
51
53
  }
52
54
 
53
- if (supportsObjectConfigForm && firstArg.type === 'ObjectExpression') {
55
+ if (
56
+ supportsObjectConfigForm &&
57
+ firstArg.type === 'ObjectExpression'
58
+ ) {
54
59
  const nameProp = firstArg.properties.find(
55
60
  (p) =>
56
61
  p.type === 'Property' &&
@@ -62,7 +67,7 @@ function createNameMatchRule({
62
67
  context.report({
63
68
  node: firstArg,
64
69
  messageId: 'missingName',
65
- data: { declaredName },
70
+ data: { calleeName, declaredName },
66
71
  });
67
72
  return;
68
73
  }
@@ -75,7 +80,7 @@ function createNameMatchRule({
75
80
  context.report({
76
81
  node: nameValue,
77
82
  messageId: 'mismatchedName',
78
- data: { declaredName, actual },
83
+ data: { calleeName, declaredName, actual },
79
84
  fix(fixer) {
80
85
  return fixer.replaceText(nameValue, `'${declaredName}'`);
81
86
  },
@@ -84,7 +89,11 @@ function createNameMatchRule({
84
89
  context.report({
85
90
  node: nameValue,
86
91
  messageId: 'mismatchedName',
87
- data: { declaredName, actual: sourceCode.getText(nameValue) },
92
+ data: {
93
+ calleeName,
94
+ declaredName,
95
+ actual: sourceCode.getText(nameValue),
96
+ },
88
97
  });
89
98
  }
90
99
  return;
@@ -98,7 +107,7 @@ function createNameMatchRule({
98
107
  context.report({
99
108
  node: firstArg,
100
109
  messageId: 'mismatchedName',
101
- data: { declaredName, actual },
110
+ data: { calleeName, declaredName, actual },
102
111
  fix(fixer) {
103
112
  return fixer.replaceText(firstArg, `'${declaredName}'`);
104
113
  },
@@ -109,7 +118,7 @@ function createNameMatchRule({
109
118
  context.report({
110
119
  node: firstArg,
111
120
  messageId: 'missingName',
112
- data: { declaredName },
121
+ data: { calleeName, declaredName },
113
122
  fix(fixer) {
114
123
  return fixer.insertTextBefore(firstArg, `'${declaredName}', `);
115
124
  },
@@ -191,9 +191,9 @@ function hasDynamicAccessibleName(children) {
191
191
  if (children.type === 'CallExpression') {
192
192
  if (
193
193
  children.callee.type === 'Identifier' &&
194
- (children.callee.name === 'ifBlock' ||
195
- children.callee.name === 'matchBlock' ||
196
- children.callee.name === 'each')
194
+ (children.callee.name === 'ifNode' ||
195
+ children.callee.name === 'matchNode' ||
196
+ children.callee.name === 'forNode')
197
197
  ) {
198
198
  return true;
199
199
  }