pipecraft 0.0.0-releaseit

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 (176) hide show
  1. package/.claude/settings.local.json +35 -0
  2. package/.github/actions/calculate-version/action.yml +106 -0
  3. package/.github/actions/create-pr/action.yml +122 -0
  4. package/.github/actions/create-release/action.yml +74 -0
  5. package/.github/actions/create-tag/action.yml +94 -0
  6. package/.github/actions/detect-changes/action.yml +62 -0
  7. package/.github/actions/manage-branch/action.yml +113 -0
  8. package/.github/actions/promote-branch/action.yml +352 -0
  9. package/.github/example/workflows/job.analyze.code.yml +26 -0
  10. package/.github/example/workflows/job.analyze.docker.yml +32 -0
  11. package/.github/example/workflows/job.app.api.deploy.yml +127 -0
  12. package/.github/example/workflows/job.app.api.test.yml +102 -0
  13. package/.github/example/workflows/job.app.docs.deploy.yml +40 -0
  14. package/.github/example/workflows/job.app.docs.test.yml +50 -0
  15. package/.github/example/workflows/job.app.web.deploy.yml +96 -0
  16. package/.github/example/workflows/job.app.web.test.yml +49 -0
  17. package/.github/example/workflows/job.changes.yml +82 -0
  18. package/.github/example/workflows/job.create-pr.yml +96 -0
  19. package/.github/example/workflows/job.env-check.yml +43 -0
  20. package/.github/example/workflows/job.fast-forward.yml +103 -0
  21. package/.github/example/workflows/job.lint.yml +64 -0
  22. package/.github/example/workflows/job.pr-name.yml +70 -0
  23. package/.github/example/workflows/job.pr-squash-name.yml +27 -0
  24. package/.github/example/workflows/job.tag.yml +38 -0
  25. package/.github/example/workflows/job.version.yml +99 -0
  26. package/.github/example/workflows/lib.plugin-base.publish.yml +59 -0
  27. package/.github/example/workflows/pipe.yml +178 -0
  28. package/.github/example/workflows/scripts/fastforward.sh +51 -0
  29. package/.github/example/workflows/scripts/pipe-cleaner.sh +70 -0
  30. package/.github/scripts/fastforward.sh +51 -0
  31. package/.github/scripts/pipe-cleaner.sh +70 -0
  32. package/.github/workflows/pipeline.yml +220 -0
  33. package/.github/workflows/pr-title-check.yml +70 -0
  34. package/.github/workflows/publish.yml +39 -0
  35. package/.pipecraftrc.json +78 -0
  36. package/.release-it.cjs +71 -0
  37. package/PIPELINE_TESTING_PLAN.md +499 -0
  38. package/README.md +1101 -0
  39. package/TRUNK_FLOW_PLAN.md +401 -0
  40. package/assets/logo_banner.png +0 -0
  41. package/assets/logo_banner.webp +0 -0
  42. package/dist/cli/index.d.ts +3 -0
  43. package/dist/cli/index.d.ts.map +1 -0
  44. package/dist/cli/index.js +364 -0
  45. package/dist/cli/index.js.map +1 -0
  46. package/dist/generators/init.tpl.d.ts +3 -0
  47. package/dist/generators/init.tpl.d.ts.map +1 -0
  48. package/dist/generators/init.tpl.js +117 -0
  49. package/dist/generators/init.tpl.js.map +1 -0
  50. package/dist/generators/workflows.tpl.d.ts +7 -0
  51. package/dist/generators/workflows.tpl.d.ts.map +1 -0
  52. package/dist/generators/workflows.tpl.js +73 -0
  53. package/dist/generators/workflows.tpl.js.map +1 -0
  54. package/dist/templates/actions/calculate-version.yml.tpl.d.ts +3 -0
  55. package/dist/templates/actions/calculate-version.yml.tpl.d.ts.map +1 -0
  56. package/dist/templates/actions/calculate-version.yml.tpl.js +122 -0
  57. package/dist/templates/actions/calculate-version.yml.tpl.js.map +1 -0
  58. package/dist/templates/actions/create-pr.yml.tpl.d.ts +3 -0
  59. package/dist/templates/actions/create-pr.yml.tpl.d.ts.map +1 -0
  60. package/dist/templates/actions/create-pr.yml.tpl.js +145 -0
  61. package/dist/templates/actions/create-pr.yml.tpl.js.map +1 -0
  62. package/dist/templates/actions/create-tag.yml.tpl.d.ts +3 -0
  63. package/dist/templates/actions/create-tag.yml.tpl.d.ts.map +1 -0
  64. package/dist/templates/actions/create-tag.yml.tpl.js +111 -0
  65. package/dist/templates/actions/create-tag.yml.tpl.js.map +1 -0
  66. package/dist/templates/actions/detect-changes.yml.tpl.d.ts +3 -0
  67. package/dist/templates/actions/detect-changes.yml.tpl.d.ts.map +1 -0
  68. package/dist/templates/actions/detect-changes.yml.tpl.js +79 -0
  69. package/dist/templates/actions/detect-changes.yml.tpl.js.map +1 -0
  70. package/dist/templates/actions/manage-branch.yml.tpl.d.ts +3 -0
  71. package/dist/templates/actions/manage-branch.yml.tpl.d.ts.map +1 -0
  72. package/dist/templates/actions/manage-branch.yml.tpl.js +130 -0
  73. package/dist/templates/actions/manage-branch.yml.tpl.js.map +1 -0
  74. package/dist/templates/actions/promote-branch.yml.tpl.d.ts +3 -0
  75. package/dist/templates/actions/promote-branch.yml.tpl.d.ts.map +1 -0
  76. package/dist/templates/actions/promote-branch.yml.tpl.js +362 -0
  77. package/dist/templates/actions/promote-branch.yml.tpl.js.map +1 -0
  78. package/dist/templates/workflows/pipeline-path-based.yml.tpl.d.ts +16 -0
  79. package/dist/templates/workflows/pipeline-path-based.yml.tpl.d.ts.map +1 -0
  80. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js +652 -0
  81. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js.map +1 -0
  82. package/dist/types/index.d.ts +63 -0
  83. package/dist/types/index.d.ts.map +1 -0
  84. package/dist/types/index.js +2 -0
  85. package/dist/types/index.js.map +1 -0
  86. package/dist/utils/ast-path-operations.d.ts +287 -0
  87. package/dist/utils/ast-path-operations.d.ts.map +1 -0
  88. package/dist/utils/ast-path-operations.js +419 -0
  89. package/dist/utils/ast-path-operations.js.map +1 -0
  90. package/dist/utils/config.d.ts +3 -0
  91. package/dist/utils/config.d.ts.map +1 -0
  92. package/dist/utils/config.js +49 -0
  93. package/dist/utils/config.js.map +1 -0
  94. package/dist/utils/github-setup.d.ts +74 -0
  95. package/dist/utils/github-setup.d.ts.map +1 -0
  96. package/dist/utils/github-setup.js +418 -0
  97. package/dist/utils/github-setup.js.map +1 -0
  98. package/dist/utils/idempotency.d.ts +47 -0
  99. package/dist/utils/idempotency.d.ts.map +1 -0
  100. package/dist/utils/idempotency.js +176 -0
  101. package/dist/utils/idempotency.js.map +1 -0
  102. package/dist/utils/preflight.d.ts +55 -0
  103. package/dist/utils/preflight.d.ts.map +1 -0
  104. package/dist/utils/preflight.js +261 -0
  105. package/dist/utils/preflight.js.map +1 -0
  106. package/dist/utils/versioning.d.ts +41 -0
  107. package/dist/utils/versioning.d.ts.map +1 -0
  108. package/dist/utils/versioning.js +219 -0
  109. package/dist/utils/versioning.js.map +1 -0
  110. package/docs/USER_JOURNEY_ERRORS.md +352 -0
  111. package/eslint.config.js +77 -0
  112. package/examples/basic-config.json +41 -0
  113. package/examples/monorepo-config.json +49 -0
  114. package/examples/usage.md +289 -0
  115. package/package.json +58 -0
  116. package/scripts/debug-workflows.sh +339 -0
  117. package/scripts/parse-pipeline.js +29 -0
  118. package/scripts/test-job-order.cjs +140 -0
  119. package/scripts/validate-pipeline.cjs +379 -0
  120. package/scripts/verify-job-order.sh +30 -0
  121. package/src/cli/index.ts +414 -0
  122. package/src/generators/init.tpl.ts +126 -0
  123. package/src/generators/workflows.tpl.ts +80 -0
  124. package/src/templates/actions/calculate-version.yml.tpl.ts +124 -0
  125. package/src/templates/actions/create-pr.yml.tpl.ts +147 -0
  126. package/src/templates/actions/create-tag.yml.tpl.ts +112 -0
  127. package/src/templates/actions/detect-changes.yml.tpl.ts +87 -0
  128. package/src/templates/actions/manage-branch.yml.tpl.ts +132 -0
  129. package/src/templates/actions/promote-branch.yml.tpl.ts +364 -0
  130. package/src/templates/workflows/pipeline-path-based.yml.tpl.ts +706 -0
  131. package/src/types/index.ts +64 -0
  132. package/src/utils/README-ast-path-operations.md +390 -0
  133. package/src/utils/ast-path-operations.ts +581 -0
  134. package/src/utils/config.ts +64 -0
  135. package/src/utils/github-setup.ts +558 -0
  136. package/src/utils/idempotency.ts +215 -0
  137. package/src/utils/preflight.ts +306 -0
  138. package/src/utils/versioning.ts +244 -0
  139. package/tests/README.md +229 -0
  140. package/tests/TEST_STRUCTURE.md +256 -0
  141. package/tests/act/run-act-tests.sh +345 -0
  142. package/tests/debugging/debug-utils.ts +538 -0
  143. package/tests/debugging/debug-workflow.test.ts +339 -0
  144. package/tests/debugging/debug-workflows.sh +339 -0
  145. package/tests/debugging/iterative-debug.ts +652 -0
  146. package/tests/debugging/run-debug-tests.sh +431 -0
  147. package/tests/fixtures/basic-config.json +51 -0
  148. package/tests/fixtures/invalid-config.json +9 -0
  149. package/tests/fixtures/pipeline-generated.yml +235 -0
  150. package/tests/fixtures/pipeline-preserve-comments.yml +245 -0
  151. package/tests/fixtures/pipeline-user-modified.yml +245 -0
  152. package/tests/fixtures/test-config.json +58 -0
  153. package/tests/github-live/README.md +250 -0
  154. package/tests/github-local/JOB_WORKFLOW_TESTS.md +296 -0
  155. package/tests/github-local/README.md +240 -0
  156. package/tests/github-local/run-all-tests.sh +422 -0
  157. package/tests/github-local/test-job-workflows.sh +631 -0
  158. package/tests/github-local/test-pipeline-workflow.sh +440 -0
  159. package/tests/integration/generators.test.ts +578 -0
  160. package/tests/integration/path-based-template.test.ts +510 -0
  161. package/tests/integration/simple-path-based.test.ts +415 -0
  162. package/tests/setup.ts +56 -0
  163. package/tests/unit/ast-path-operations-extended.test.ts +302 -0
  164. package/tests/unit/cli.test.ts +541 -0
  165. package/tests/unit/config-extended.test.ts +412 -0
  166. package/tests/unit/config.test.ts +152 -0
  167. package/tests/unit/github-setup.test.ts +189 -0
  168. package/tests/unit/idempotency-isolated.test.ts +297 -0
  169. package/tests/unit/job-order.test.ts +157 -0
  170. package/tests/unit/pipeline-path-based.test.ts +511 -0
  171. package/tests/unit/validate-pipeline.test.ts +384 -0
  172. package/tests/unit/versioning-extended.test.ts +279 -0
  173. package/tests/unit/versioning.test.ts +241 -0
  174. package/tsconfig.debug.json +17 -0
  175. package/tsconfig.json +28 -0
  176. package/vitest.config.ts +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-path-based.yml.tpl.js","sourceRoot":"","sources":["../../../src/templates/workflows/pipeline-path-based.yml.tpl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ export interface DomainConfig {
2
+ paths: string[];
3
+ description: string;
4
+ testable?: boolean;
5
+ deployable?: boolean;
6
+ }
7
+ export interface PipecraftConfig {
8
+ ciProvider: 'github' | 'gitlab';
9
+ mergeStrategy: 'fast-forward' | 'merge';
10
+ requireConventionalCommits: boolean;
11
+ initialBranch: string;
12
+ finalBranch: string;
13
+ branchFlow: string[];
14
+ autoMerge?: boolean | Record<string, boolean>;
15
+ mergeMethod?: 'auto' | 'merge' | 'squash' | 'rebase' | Record<string, 'auto' | 'merge' | 'squash' | 'rebase'>;
16
+ semver: {
17
+ bumpRules: Record<string, string>;
18
+ };
19
+ actions: {
20
+ onDevelopMerge: string[];
21
+ onStagingMerge: string[];
22
+ };
23
+ domains: Record<string, DomainConfig>;
24
+ rebuild?: {
25
+ enabled: boolean;
26
+ skipIfUnchanged: boolean;
27
+ forceRegenerate: boolean;
28
+ watchMode: boolean;
29
+ hashAlgorithm: 'md5' | 'sha1' | 'sha256';
30
+ cacheFile: string;
31
+ ignorePatterns: string[];
32
+ };
33
+ versioning?: {
34
+ enabled: boolean;
35
+ releaseItConfig: string;
36
+ conventionalCommits: boolean;
37
+ autoTag: boolean;
38
+ autoPush: boolean;
39
+ changelog: boolean;
40
+ bumpRules: Record<string, string>;
41
+ };
42
+ }
43
+ export interface PipecraftContext {
44
+ projectName: string;
45
+ ciProvider: 'github' | 'gitlab';
46
+ mergeStrategy: 'fast-forward' | 'merge';
47
+ requireConventionalCommits: boolean;
48
+ initialBranch: string;
49
+ finalBranch: string;
50
+ branchFlow: string[];
51
+ domains: Record<string, {
52
+ paths: string[];
53
+ description: string;
54
+ }>;
55
+ semver: {
56
+ bumpRules: Record<string, string>;
57
+ };
58
+ actions: {
59
+ onDevelopMerge: string[];
60
+ onStagingMerge: string[];
61
+ };
62
+ }
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,aAAa,EAAE,cAAc,GAAG,OAAO,CAAA;IACvC,0BAA0B,EAAE,OAAO,CAAA;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAA;IAC7G,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAClC,CAAA;IACD,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,cAAc,EAAE,MAAM,EAAE,CAAA;KACzB,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAErC,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAA;QAChB,eAAe,EAAE,OAAO,CAAA;QACxB,eAAe,EAAE,OAAO,CAAA;QACxB,SAAS,EAAE,OAAO,CAAA;QAClB,aAAa,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;QACxC,SAAS,EAAE,MAAM,CAAA;QACjB,cAAc,EAAE,MAAM,EAAE,CAAA;KACzB,CAAA;IAED,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAA;QAChB,eAAe,EAAE,MAAM,CAAA;QACvB,mBAAmB,EAAE,OAAO,CAAA;QAC5B,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,EAAE,OAAO,CAAA;QACjB,SAAS,EAAE,OAAO,CAAA;QAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAClC,CAAA;CACF;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,aAAa,EAAE,cAAc,GAAG,OAAO,CAAA;IACvC,0BAA0B,EAAE,OAAO,CAAA;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjE,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAClC,CAAA;IACD,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,cAAc,EAAE,MAAM,EAAE,CAAA;KACzB,CAAA;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,287 @@
1
+ import { YAMLMap, Node } from 'yaml';
2
+ /**
3
+ * # AST Path Operations for YAML Manipulation
4
+ *
5
+ * This module provides a powerful and precise way to manipulate YAML documents using
6
+ * path-based operations. It allows you to target specific locations in the YAML
7
+ * structure and apply different types of operations (set, merge, overwrite, preserve).
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Path-based targeting**: Use dot notation to target specific YAML paths
12
+ * - **Multiple operation types**: Set, merge, overwrite, or preserve values
13
+ * - **Flexible value types**: Support objects, arrays, strings, YAML nodes, and parsed documents
14
+ * - **Type safety**: Full TypeScript support with proper Node types
15
+ * - **Context injection**: Dynamic values can be injected at build time
16
+ *
17
+ * ## Usage Examples
18
+ *
19
+ * ### Basic Path Operations
20
+ * ```typescript
21
+ * import { applyPathOperations, createValueFromString } from './ast-path-operations'
22
+ *
23
+ * const operations = [
24
+ * {
25
+ * path: 'on.workflow_call.inputs.version',
26
+ * operation: 'set',
27
+ * value: {
28
+ * description: 'The version to deploy',
29
+ * required: false,
30
+ * type: 'string'
31
+ * }
32
+ * }
33
+ * ]
34
+ *
35
+ * applyPathOperations(doc, operations)
36
+ * ```
37
+ *
38
+ * ### Complex Job Definitions
39
+ * ```typescript
40
+ * const jobOperation = {
41
+ * path: 'jobs.changes',
42
+ * operation: 'overwrite',
43
+ * value: createValueFromString(`
44
+ * runs-on: ubuntu-latest
45
+ * steps:
46
+ * - uses: ./.github/actions/detect-changes
47
+ * with:
48
+ * baseRef: ${{ inputs.baseRef || 'main' }}
49
+ * `)
50
+ * }
51
+ * ```
52
+ *
53
+ * ### Array Merging
54
+ * ```typescript
55
+ * const branchOperation = {
56
+ * path: 'on.pull_request.branches',
57
+ * operation: 'merge',
58
+ * value: ['develop', 'staging', 'main']
59
+ * }
60
+ * ```
61
+ *
62
+ * ## Operation Types
63
+ *
64
+ * - **`set`**: Set a value at the specified path (creates if doesn't exist)
65
+ * - **`merge`**: Merge with existing value (for objects/arrays)
66
+ * - **`overwrite`**: Replace existing value completely
67
+ * - **`preserve`**: Keep existing value, ignore template value
68
+ *
69
+ * ## Value Types Supported
70
+ *
71
+ * - **Objects**: `{ key: 'value' }` - Simple key-value pairs
72
+ * - **Arrays**: `['item1', 'item2']` - Simple arrays
73
+ * - **YAML Strings**: Multi-line YAML with proper formatting
74
+ * - **Parsed Documents**: Pre-parsed YAML nodes
75
+ * - **Primitives**: strings, numbers, booleans
76
+ *
77
+ * @fileoverview Path-based AST operations for precise YAML manipulation
78
+ * @author Pipecraft Team
79
+ * @version 1.0.0
80
+ */
81
+ /**
82
+ * Available operation types for path-based AST manipulation
83
+ *
84
+ * @typedef {('set' | 'merge' | 'overwrite' | 'preserve')} PathOperation
85
+ *
86
+ * - `set`: Set a value at the specified path (creates if doesn't exist)
87
+ * - `merge`: Merge with existing value (for objects/arrays)
88
+ * - `overwrite`: Replace existing value completely
89
+ * - `preserve`: Keep existing value, ignore template value
90
+ */
91
+ export type PathOperation = 'set' | 'merge' | 'overwrite' | 'preserve';
92
+ /**
93
+ * Supported value types for path operations
94
+ *
95
+ * @typedef {(Node | object | string | number | boolean | any[])} PathValue
96
+ *
97
+ * Supports YAML nodes, JavaScript objects, primitives, and arrays
98
+ */
99
+ export type PathValue = Node | object | string | number | boolean | any[];
100
+ /**
101
+ * Configuration for a single path operation
102
+ *
103
+ * @interface PathOperationConfig
104
+ * @property {string} path - Dot-notation path to target (e.g., 'jobs.changes.steps')
105
+ * @property {PathOperation} operation - Type of operation to perform
106
+ * @property {PathValue} value - Value to set/merge/overwrite
107
+ * @property {boolean} [required=true] - Whether the path must exist
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const config: PathOperationConfig = {
112
+ * path: 'on.workflow_call.inputs.version',
113
+ * operation: 'set',
114
+ * value: {
115
+ * description: 'The version to deploy',
116
+ * required: false,
117
+ * type: 'string'
118
+ * },
119
+ * required: true
120
+ * }
121
+ * ```
122
+ */
123
+ export interface PathOperationConfig {
124
+ path: string;
125
+ operation: PathOperation;
126
+ value: PathValue;
127
+ required?: boolean;
128
+ commentBefore?: string;
129
+ comment?: string;
130
+ spaceBefore?: boolean;
131
+ spaceBeforeComment?: boolean;
132
+ tag?: string;
133
+ }
134
+ /**
135
+ * Set a value at a specific path in the YAML AST
136
+ *
137
+ * Creates intermediate nodes as needed and sets the final value at the specified path.
138
+ * This is the core function for setting values in the YAML structure.
139
+ *
140
+ * @param {YAMLMap} doc - The YAML document to modify
141
+ * @param {string} path - Dot-notation path (e.g., 'jobs.changes.steps')
142
+ * @param {PathValue} value - Value to set at the path
143
+ *
144
+ * @throws {Error} When path navigation fails or parent is not a map
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * const doc = parseDocument('name: Pipeline')
149
+ * setPathValue(doc.contents, 'jobs.changes.runs-on', 'ubuntu-latest')
150
+ * // Results in: jobs: { changes: { 'runs-on': 'ubuntu-latest' } }
151
+ * ```
152
+ */
153
+ export declare function setPathValue(doc: YAMLMap, path: string, value: PathValue, document?: any, commentBefore?: string, spaceBeforeComment?: boolean): void;
154
+ /**
155
+ * Get a value at a specific path in the YAML AST
156
+ *
157
+ * Navigates to the specified path and returns the node if found, null otherwise.
158
+ * This is useful for checking if a path exists before applying operations.
159
+ *
160
+ * @param {YAMLMap} doc - The YAML document to read from
161
+ * @param {string} path - Dot-notation path (e.g., 'jobs.changes.steps')
162
+ * @returns {Node | null} The node at the path, or null if not found
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const doc = parseDocument('jobs: { changes: { runs-on: ubuntu-latest } }')
167
+ * const value = getPathValue(doc.contents, 'jobs.changes.runs-on')
168
+ * console.log(value) // Scalar('ubuntu-latest')
169
+ * ```
170
+ */
171
+ export declare function getPathValue(doc: YAMLMap, path: string): Node | null;
172
+ /**
173
+ * Ensure a path exists and apply the specified operation
174
+ *
175
+ * This is the main orchestration function that handles all path operations.
176
+ * It checks if the path exists, applies the appropriate operation based on
177
+ * the configuration, and handles required vs optional paths.
178
+ *
179
+ * @param {YAMLMap} doc - The YAML document to modify
180
+ * @param {PathOperationConfig} config - Operation configuration
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const config: PathOperationConfig = {
185
+ * path: 'jobs.changes.runs-on',
186
+ * operation: 'set',
187
+ * value: 'ubuntu-latest',
188
+ * required: true
189
+ * }
190
+ *
191
+ * ensurePathAndApply(doc, config)
192
+ * ```
193
+ */
194
+ export declare function ensurePathAndApply(doc: YAMLMap, config: PathOperationConfig, document?: any): void;
195
+ /**
196
+ * Apply multiple path operations to a document
197
+ *
198
+ * This is the main entry point for applying multiple operations to a YAML document.
199
+ * It processes all operations in order and applies them to the document.
200
+ *
201
+ * @param {YAMLMap} doc - The YAML document to modify
202
+ * @param {PathOperationConfig[]} operations - Array of operations to apply
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * const operations: PathOperationConfig[] = [
207
+ * {
208
+ * path: 'on.workflow_call.inputs.version',
209
+ * operation: 'set',
210
+ * value: { description: 'Version to deploy', required: false, type: 'string' }
211
+ * },
212
+ * {
213
+ * path: 'jobs.changes',
214
+ * operation: 'overwrite',
215
+ * value: createValueFromString(`
216
+ * runs-on: ubuntu-latest
217
+ * steps:
218
+ * - uses: ./.github/actions/detect-changes
219
+ * `)
220
+ * }
221
+ * ]
222
+ *
223
+ * applyPathOperations(doc, operations)
224
+ * ```
225
+ */
226
+ export declare function applyPathOperations(doc: YAMLMap, operations: PathOperationConfig[], document?: any): void;
227
+ /**
228
+ * Helper functions for creating values
229
+ *
230
+ * These convenience functions make it easier to create YAML nodes from different
231
+ * value types. They handle the parsing and conversion automatically.
232
+ */
233
+ /**
234
+ * Create a YAML node from a YAML string
235
+ *
236
+ * Parses a YAML string and returns the root node. This is useful for complex
237
+ * multi-line YAML structures like job definitions.
238
+ *
239
+ * @param {string} yamlString - YAML string to parse
240
+ * @returns {Node} The parsed YAML node
241
+ *
242
+ * @example
243
+ * ```typescript
244
+ * const node = createValueFromString(`
245
+ * runs-on: ubuntu-latest
246
+ * steps:
247
+ * - name: Checkout code
248
+ * uses: actions/checkout@v3
249
+ * - name: Run tests
250
+ * run: npm test
251
+ * `)
252
+ * ```
253
+ */
254
+ export declare function createValueFromString(yamlString: string, context?: any, document?: any): Node;
255
+ /**
256
+ * Create a YAML node from a JavaScript object
257
+ *
258
+ * Converts a plain JavaScript object to a YAML map node.
259
+ *
260
+ * @param {object} obj - JavaScript object to convert
261
+ * @returns {Node} The converted YAML map node
262
+ *
263
+ * @example
264
+ * ```typescript
265
+ * const node = createValueFromObject({
266
+ * description: 'The version to deploy',
267
+ * required: false,
268
+ * type: 'string'
269
+ * })
270
+ * ```
271
+ */
272
+ export declare function createValueFromObject(obj: object, doc?: any): Node;
273
+ /**
274
+ * Create a YAML node from a JavaScript array
275
+ *
276
+ * Converts a JavaScript array to a YAML sequence node.
277
+ *
278
+ * @param {any[]} arr - JavaScript array to convert
279
+ * @returns {Node} The converted YAML sequence node
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * const node = createValueFromArray(['develop', 'staging', 'main'])
284
+ * ```
285
+ */
286
+ export declare function createValueFromArray(arr: any[]): Node;
287
+ //# sourceMappingURL=ast-path-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-path-operations.d.ts","sourceRoot":"","sources":["../../src/utils/ast-path-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAA;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAA;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,EAAE,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,aAAa,CAAA;IACxB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,IAAI,CA+DrJ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAcpE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI,CAmCN;AAgID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,mBAAmB,EAAE,EACjC,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI,CAIN;AAED;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CA0B7F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAKlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAErD"}