@clearlydev/nx-archweave 0.1.0 → 0.2.0

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 (59) hide show
  1. package/README.md +2 -2
  2. package/dist/eslint/fsd-boundaries.d.ts +27 -10
  3. package/dist/eslint/fsd-policy.d.ts +38 -0
  4. package/dist/eslint/index.d.ts +10 -9
  5. package/dist/eslint/index.js +227 -34
  6. package/dist/eslint/slice-groups.d.ts +12 -0
  7. package/dist/generators/add-agent-rules/generator.js +1175 -23
  8. package/dist/generators/add-backend/generator.js +1127 -75
  9. package/dist/generators/add-fsd-lite/generator.js +1274 -96
  10. package/dist/generators/add-integration/generator.js +4 -35
  11. package/dist/generators/add-review/files/dependabot.yml +7 -0
  12. package/dist/generators/add-review/generator.js +1100 -46
  13. package/dist/generators/doctor/generator.js +784 -131
  14. package/dist/generators/entity/generator.js +251 -32
  15. package/dist/generators/feature/generator.js +251 -32
  16. package/dist/generators/init/generator.js +1955 -549
  17. package/dist/generators/install-integration/generator.js +5 -37
  18. package/dist/generators/page/generator.js +251 -32
  19. package/dist/generators/record-integration/generator.js +5 -36
  20. package/dist/generators/shared/generator.js +251 -32
  21. package/dist/generators/widget/generator.js +251 -32
  22. package/dist/index.js +4 -35
  23. package/package.json +5 -3
  24. package/src/generators/add-agent-rules/schema.json +5 -0
  25. package/src/generators/add-fsd-lite/schema.json +2 -2
  26. package/src/generators/add-integration/schema.json +1 -1
  27. package/src/generators/entity/schema.json +11 -1
  28. package/src/generators/feature/schema.json +11 -1
  29. package/src/generators/init/schema.json +13 -2
  30. package/src/generators/page/schema.json +15 -3
  31. package/src/generators/shared/schema.json +7 -1
  32. package/src/generators/widget/schema.json +11 -1
  33. package/dist/eslint/fsd-boundaries.js +0 -144
  34. package/dist/eslint/tsconfig-aliases.js +0 -114
  35. package/dist/generators/add-agent-rules/render.js +0 -46
  36. package/dist/generators/add-backend/render.js +0 -102
  37. package/dist/generators/add-fsd-lite/render.js +0 -72
  38. package/dist/generators/add-github-templates/render.js +0 -26
  39. package/dist/generators/add-integration/render.js +0 -34
  40. package/dist/generators/add-review/render.js +0 -96
  41. package/dist/generators/allow-builds/render.js +0 -82
  42. package/dist/generators/doctor/integration-report.js +0 -70
  43. package/dist/generators/doctor/render.js +0 -10
  44. package/dist/generators/init/render.js +0 -125
  45. package/dist/generators/init/validation.js +0 -74
  46. package/dist/generators/install-integration/render.js +0 -128
  47. package/dist/generators/record-integration/render.js +0 -31
  48. package/dist/generators/shared/dry-run.js +0 -12
  49. package/dist/generators/shared/frontend-app.js +0 -57
  50. package/dist/generators/shared/project-type.js +0 -39
  51. package/dist/generators/shared/record-pipeline.js +0 -34
  52. package/dist/generators/shared/run-nx.js +0 -24
  53. package/dist/generators/shared/template-files.js +0 -38
  54. package/dist/generators/shared/toolkit-config-file.js +0 -110
  55. package/dist/generators/slice/core.js +0 -185
  56. package/dist/generators/slice/render.js +0 -70
  57. package/dist/lib/nx-plugin.js +0 -7
  58. package/dist/runtime/integrations-composition-root.js +0 -20
  59. package/dist/runtime/node-command-runner.js +0 -81
@@ -1,81 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import { spawnableCommand } from '@nx-archweave/shared';
3
- // SIGTERM is not guaranteed to actually end a process — a child that traps
4
- // or ignores it would otherwise keep this runner's promise pending forever,
5
- // silently defeating the fixed timeout/output-limit guarantees. SIGKILL
6
- // cannot be caught or ignored, so it is the backstop once a process has had
7
- // a short grace period to exit cleanly on its own.
8
- const KILL_GRACE_MS = 500;
9
- // The one place node:child_process is imported — packages/integrations never
10
- // imports it directly. Uses spawn (never a shell) so stdout/stderr can be bounded
11
- // independently at the exact approved limits, and so the child process can be
12
- // terminated on timeout or overflow without waiting for it to finish producing output.
13
- export class NodeCommandRunner {
14
- run(input) {
15
- return new Promise((resolve, reject) => {
16
- let stdout = '';
17
- let stderr = '';
18
- let timedOut = false;
19
- let outputExceeded = false;
20
- let settled = false;
21
- let killTimer;
22
- // An npm-installed claude is a .cmd shim on Windows: it runs through cmd.exe with every
23
- // argument escaped — still never a shell string built from raw input.
24
- const spawnable = spawnableCommand(input.executable, input.argv);
25
- const child = spawn(spawnable.command, spawnable.args, {
26
- cwd: input.cwd,
27
- shell: false,
28
- windowsVerbatimArguments: spawnable.windowsVerbatimArguments,
29
- windowsHide: true,
30
- // No stdin: nothing here ever answers a prompt (a command that wants
31
- // confirmation must fail fast instead of waiting on an open pipe).
32
- stdio: ['ignore', 'pipe', 'pipe'],
33
- });
34
- // SIGTERM first (lets a well-behaved process clean up); SIGKILL after a
35
- // short grace period as a backstop against one that ignores it.
36
- const terminate = () => {
37
- child.kill('SIGTERM');
38
- killTimer = setTimeout(() => {
39
- child.kill('SIGKILL');
40
- }, KILL_GRACE_MS);
41
- };
42
- const timer = setTimeout(() => {
43
- timedOut = true;
44
- terminate();
45
- }, input.timeoutMs);
46
- child.stdout.on('data', (chunk) => {
47
- stdout += chunk.toString('utf8');
48
- if (Buffer.byteLength(stdout, 'utf8') > input.stdoutLimitBytes) {
49
- outputExceeded = true;
50
- terminate();
51
- }
52
- });
53
- child.stderr.on('data', (chunk) => {
54
- stderr += chunk.toString('utf8');
55
- if (Buffer.byteLength(stderr, 'utf8') > input.stderrLimitBytes) {
56
- outputExceeded = true;
57
- terminate();
58
- }
59
- });
60
- // Spawn-level failure (e.g. ENOENT — executable not found) is distinct
61
- // from a completed process with a non-zero exit code. Only this case
62
- // rejects the promise.
63
- child.on('error', (error) => {
64
- if (settled)
65
- return;
66
- settled = true;
67
- clearTimeout(timer);
68
- clearTimeout(killTimer);
69
- reject(error);
70
- });
71
- child.on('close', (code) => {
72
- if (settled)
73
- return;
74
- settled = true;
75
- clearTimeout(timer);
76
- clearTimeout(killTimer);
77
- resolve({ stdout, stderr, exitCode: code, timedOut, outputExceeded });
78
- });
79
- });
80
- }
81
- }