n8n-decanter 0.3.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 (44) hide show
  1. package/CHANGELOG.md +369 -0
  2. package/LICENSE +21 -0
  3. package/README.md +318 -0
  4. package/dist/lib/api.mjs +79 -0
  5. package/dist/lib/compile.mjs +220 -0
  6. package/dist/lib/config.mjs +61 -0
  7. package/dist/lib/diff.mjs +74 -0
  8. package/dist/lib/executions.mjs +76 -0
  9. package/dist/lib/git.mjs +44 -0
  10. package/dist/lib/init.mjs +152 -0
  11. package/dist/lib/picker.mjs +226 -0
  12. package/dist/lib/prompt.mjs +34 -0
  13. package/dist/lib/proxy.mjs +204 -0
  14. package/dist/lib/pull.mjs +148 -0
  15. package/dist/lib/push.mjs +136 -0
  16. package/dist/lib/rename.mjs +156 -0
  17. package/dist/lib/run.mjs +208 -0
  18. package/dist/lib/state.mjs +156 -0
  19. package/dist/lib/status.mjs +102 -0
  20. package/dist/lib/style.mjs +40 -0
  21. package/dist/lib/types.mjs +2 -0
  22. package/dist/lib/util.mjs +201 -0
  23. package/dist/lib/validate.mjs +225 -0
  24. package/dist/lib/watch.mjs +296 -0
  25. package/dist/n8n-decanter.mjs +482 -0
  26. package/dist/scripts/typecheck.mjs +90 -0
  27. package/package.json +51 -0
  28. package/template/.claude/hooks/verify.mjs.example +48 -0
  29. package/template/.claude/settings.local.json.example +35 -0
  30. package/template/.cursor/rules/n8n-decanter.mdc.example +21 -0
  31. package/template/.env.example +10 -0
  32. package/template/.mcp.json.example +16 -0
  33. package/template/.vscode/settings.json.example +6 -0
  34. package/template/AGENTS.md.example +302 -0
  35. package/template/CLAUDE.md.example +20 -0
  36. package/template/decanter-ts-plugin/index.js.example +58 -0
  37. package/template/decanter-ts-plugin/package.json.example +7 -0
  38. package/template/n8n-globals.d.ts.example +190 -0
  39. package/template/opencode.json.example +19 -0
  40. package/template/package.json.example +15 -0
  41. package/template/shared/.gitkeep +0 -0
  42. package/template/shared/example-helpers.ts +13 -0
  43. package/template/tsconfig.json.example +26 -0
  44. package/template/workflows/.gitkeep +0 -0
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+
4
+ "//": "opencode reads AGENTS.md natively, so no `instructions` entry is needed for it.",
5
+ "//_enforcement": "opencode permissions are path/pattern based — they can protect whole files but can't inspect content. So the two file-level invariants (never touch .decanter.json or *.remote.js) are enforced here; the content-level ones (jsCode placeholder integrity, the sha256 marker) are enforced by the n8n-decanter CLI at push, which is the wall for every agent.",
6
+
7
+ "permission": {
8
+ "edit": {
9
+ "*": "allow",
10
+ "**/.decanter.json": "deny",
11
+ "**/*.remote.js": "deny"
12
+ },
13
+ "bash": {
14
+ "*": "allow",
15
+ "n8n-decanter push --force*": "deny",
16
+ "n8n-decanter push -f*": "deny"
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "n8n-workflows",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "description": "n8n workflows decanted into git — see AGENTS.md",
6
+ "type": "module",
7
+ "scripts": {
8
+ "typecheck": "n8n-decanter check",
9
+ "check": "n8n-decanter check"
10
+ },
11
+ "devDependencies": {
12
+ "decanter-ts-plugin": "file:./decanter-ts-plugin",
13
+ "typescript": "^5.6.0"
14
+ }
15
+ }
File without changes
@@ -0,0 +1,13 @@
1
+ // Shared code for Code nodes: import from a `.ts` node and push bundles it
2
+ // into the compiled output (see AGENTS.md "Shared code"). Keep helpers small —
3
+ // every importing node carries its own copy. Delete this example freely.
4
+
5
+ export interface OrderLine {
6
+ qty: number;
7
+ price: number;
8
+ }
9
+
10
+ /** Sum of qty × price across lines, rounded to cents. */
11
+ export function total(lines: OrderLine[]): number {
12
+ return Math.round(lines.reduce((sum, l) => sum + l.qty * l.price, 0) * 100) / 100;
13
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "CommonJS",
5
+ "moduleResolution": "Node",
6
+ "lib": ["ES2022"],
7
+ "allowJs": true,
8
+ "checkJs": true,
9
+ "noEmit": true,
10
+ "strict": true,
11
+ "noImplicitAny": false,
12
+ "useUnknownInCatchVariables": false,
13
+ "skipLibCheck": true,
14
+ "moduleDetection": "force",
15
+ "esModuleInterop": true,
16
+ "plugins": [{ "name": "decanter-ts-plugin" }]
17
+ },
18
+ "include": [
19
+ "n8n-globals.d.ts",
20
+ "shared/**/*.ts",
21
+ "shared/**/*.js",
22
+ "workflows/**/*.ts",
23
+ "workflows/**/*.js"
24
+ ],
25
+ "exclude": ["node_modules", "**/*.remote.js"]
26
+ }
File without changes