@aspruyt/xfg 4.0.0 → 4.0.2

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 (174) hide show
  1. package/README.md +1 -2
  2. package/dist/cli/index.d.ts +1 -2
  3. package/dist/cli/index.js +0 -1
  4. package/dist/cli/program.js +7 -2
  5. package/dist/cli/{settings/results-collector.d.ts → results-collector.d.ts} +1 -1
  6. package/dist/cli/{settings/results-collector.js → results-collector.js} +2 -1
  7. package/dist/cli/settings-report-builder.d.ts +1 -3
  8. package/dist/cli/sync-command.d.ts +2 -24
  9. package/dist/cli/sync-command.js +295 -301
  10. package/dist/cli/types.d.ts +60 -40
  11. package/dist/cli/types.js +1 -12
  12. package/dist/config/errors.d.ts +9 -0
  13. package/dist/config/errors.js +11 -0
  14. package/dist/config/file-reference-resolver.d.ts +2 -1
  15. package/dist/config/file-reference-resolver.js +10 -8
  16. package/dist/config/formatter.d.ts +3 -2
  17. package/dist/config/index.d.ts +4 -6
  18. package/dist/config/index.js +4 -8
  19. package/dist/config/loader.js +4 -2
  20. package/dist/config/merge.d.ts +0 -9
  21. package/dist/config/merge.js +2 -7
  22. package/dist/config/normalizer.d.ts +4 -0
  23. package/dist/config/normalizer.js +61 -110
  24. package/dist/config/types.d.ts +15 -19
  25. package/dist/config/types.js +1 -1
  26. package/dist/config/validator.d.ts +0 -4
  27. package/dist/config/validator.js +286 -363
  28. package/dist/config/validators/file-validator.d.ts +2 -8
  29. package/dist/config/validators/file-validator.js +6 -17
  30. package/dist/config/validators/index.d.ts +3 -3
  31. package/dist/config/validators/index.js +3 -3
  32. package/dist/config/validators/repo-settings-validator.d.ts +0 -6
  33. package/dist/config/validators/repo-settings-validator.js +9 -9
  34. package/dist/config/validators/ruleset-validator.d.ts +0 -14
  35. package/dist/config/validators/ruleset-validator.js +28 -28
  36. package/dist/lifecycle/ado-migration-source.js +2 -1
  37. package/dist/lifecycle/github-lifecycle-provider.d.ts +6 -5
  38. package/dist/lifecycle/github-lifecycle-provider.js +79 -90
  39. package/dist/lifecycle/index.d.ts +2 -6
  40. package/dist/lifecycle/index.js +0 -4
  41. package/dist/lifecycle/lifecycle-formatter.d.ts +2 -1
  42. package/dist/lifecycle/lifecycle-formatter.js +4 -0
  43. package/dist/lifecycle/lifecycle-helpers.d.ts +3 -2
  44. package/dist/lifecycle/repo-lifecycle-manager.js +4 -11
  45. package/dist/lifecycle/types.d.ts +0 -8
  46. package/dist/output/github-summary.d.ts +5 -0
  47. package/dist/output/github-summary.js +9 -2
  48. package/dist/output/index.d.ts +2 -2
  49. package/dist/output/index.js +1 -1
  50. package/dist/output/lifecycle-report.js +5 -23
  51. package/dist/output/settings-report.d.ts +14 -3
  52. package/dist/output/settings-report.js +137 -197
  53. package/dist/output/summary-utils.d.ts +1 -1
  54. package/dist/output/summary-utils.js +2 -1
  55. package/dist/output/sync-report.js +5 -8
  56. package/dist/output/unified-summary.d.ts +2 -1
  57. package/dist/output/unified-summary.js +71 -133
  58. package/dist/settings/base-processor.d.ts +67 -0
  59. package/dist/settings/base-processor.js +91 -0
  60. package/dist/settings/index.d.ts +4 -3
  61. package/dist/settings/index.js +3 -3
  62. package/dist/settings/labels/converter.d.ts +2 -1
  63. package/dist/settings/labels/github-labels-strategy.d.ts +9 -18
  64. package/dist/settings/labels/github-labels-strategy.js +17 -73
  65. package/dist/settings/labels/index.d.ts +2 -6
  66. package/dist/settings/labels/index.js +1 -9
  67. package/dist/settings/labels/processor.d.ts +6 -30
  68. package/dist/settings/labels/processor.js +62 -152
  69. package/dist/settings/labels/types.d.ts +5 -8
  70. package/dist/settings/repo-settings/formatter.d.ts +2 -2
  71. package/dist/settings/repo-settings/formatter.js +6 -6
  72. package/dist/settings/repo-settings/github-repo-settings-strategy.d.ts +11 -12
  73. package/dist/settings/repo-settings/github-repo-settings-strategy.js +32 -79
  74. package/dist/settings/repo-settings/index.d.ts +2 -5
  75. package/dist/settings/repo-settings/index.js +1 -9
  76. package/dist/settings/repo-settings/processor.d.ts +6 -27
  77. package/dist/settings/repo-settings/processor.js +51 -104
  78. package/dist/settings/repo-settings/types.d.ts +7 -9
  79. package/dist/settings/rulesets/diff-algorithm.d.ts +0 -4
  80. package/dist/settings/rulesets/diff-algorithm.js +1 -10
  81. package/dist/settings/rulesets/diff.d.ts +1 -1
  82. package/dist/settings/rulesets/diff.js +2 -21
  83. package/dist/settings/rulesets/formatter.d.ts +1 -3
  84. package/dist/settings/rulesets/formatter.js +1 -8
  85. package/dist/settings/rulesets/github-ruleset-strategy.d.ts +11 -51
  86. package/dist/settings/rulesets/github-ruleset-strategy.js +24 -85
  87. package/dist/settings/rulesets/index.d.ts +3 -6
  88. package/dist/settings/rulesets/index.js +5 -9
  89. package/dist/settings/rulesets/processor.d.ts +8 -33
  90. package/dist/settings/rulesets/processor.js +58 -151
  91. package/dist/settings/rulesets/types.d.ts +35 -6
  92. package/dist/shared/command-executor.d.ts +2 -22
  93. package/dist/shared/command-executor.js +8 -7
  94. package/dist/shared/env.d.ts +0 -8
  95. package/dist/shared/env.js +14 -70
  96. package/dist/shared/file-status.d.ts +2 -0
  97. package/dist/shared/file-status.js +13 -0
  98. package/dist/shared/gh-api-utils.d.ts +46 -0
  99. package/dist/shared/gh-api-utils.js +107 -0
  100. package/dist/shared/index.d.ts +5 -5
  101. package/dist/shared/index.js +3 -3
  102. package/dist/shared/interpolation-engine.d.ts +31 -0
  103. package/dist/shared/interpolation-engine.js +50 -0
  104. package/dist/shared/logger.d.ts +3 -7
  105. package/dist/shared/logger.js +4 -1
  106. package/dist/shared/repo-detector.d.ts +17 -2
  107. package/dist/shared/repo-detector.js +27 -0
  108. package/dist/shared/retry-utils.d.ts +9 -17
  109. package/dist/shared/retry-utils.js +22 -28
  110. package/dist/shared/sanitize-utils.d.ts +0 -7
  111. package/dist/shared/sanitize-utils.js +0 -7
  112. package/dist/shared/shell-utils.d.ts +1 -0
  113. package/dist/shared/shell-utils.js +3 -0
  114. package/dist/shared/string-utils.d.ts +4 -0
  115. package/dist/shared/string-utils.js +6 -0
  116. package/dist/shared/type-guards.d.ts +17 -0
  117. package/dist/shared/type-guards.js +26 -0
  118. package/dist/shared/workspace-utils.d.ts +0 -4
  119. package/dist/shared/workspace-utils.js +0 -4
  120. package/dist/{sync → shared}/xfg-template.d.ts +3 -2
  121. package/dist/{sync → shared}/xfg-template.js +13 -54
  122. package/dist/sync/auth-options-builder.d.ts +4 -5
  123. package/dist/sync/auth-options-builder.js +15 -26
  124. package/dist/sync/branch-manager.d.ts +5 -0
  125. package/dist/sync/branch-manager.js +12 -10
  126. package/dist/sync/commit-push-manager.d.ts +1 -1
  127. package/dist/sync/commit-push-manager.js +22 -18
  128. package/dist/sync/diff-utils.d.ts +4 -9
  129. package/dist/sync/diff-utils.js +2 -19
  130. package/dist/sync/file-sync-orchestrator.js +9 -8
  131. package/dist/sync/file-writer.d.ts +2 -1
  132. package/dist/sync/file-writer.js +3 -6
  133. package/dist/sync/index.d.ts +2 -15
  134. package/dist/sync/index.js +0 -19
  135. package/dist/sync/manifest-manager.d.ts +4 -0
  136. package/dist/sync/manifest-manager.js +5 -1
  137. package/dist/sync/manifest.d.ts +10 -41
  138. package/dist/sync/manifest.js +11 -56
  139. package/dist/sync/pr-merge-handler.d.ts +2 -6
  140. package/dist/sync/pr-merge-handler.js +6 -3
  141. package/dist/sync/repository-processor.d.ts +1 -2
  142. package/dist/sync/repository-processor.js +20 -12
  143. package/dist/sync/repository-session.js +5 -14
  144. package/dist/sync/sync-workflow.js +31 -38
  145. package/dist/sync/types.d.ts +43 -178
  146. package/dist/vcs/authenticated-git-ops.d.ts +27 -70
  147. package/dist/vcs/authenticated-git-ops.js +70 -96
  148. package/dist/vcs/azure-pr-strategy.d.ts +6 -4
  149. package/dist/vcs/azure-pr-strategy.js +34 -82
  150. package/dist/vcs/branch-utils.d.ts +6 -0
  151. package/dist/vcs/branch-utils.js +29 -0
  152. package/dist/vcs/commit-strategy-selector.d.ts +5 -0
  153. package/dist/vcs/commit-strategy-selector.js +10 -0
  154. package/dist/vcs/git-commit-strategy.js +1 -2
  155. package/dist/vcs/git-ops.d.ts +15 -59
  156. package/dist/vcs/git-ops.js +46 -110
  157. package/dist/vcs/github-app-token-manager.d.ts +0 -6
  158. package/dist/vcs/github-app-token-manager.js +5 -12
  159. package/dist/vcs/github-pr-strategy.d.ts +5 -5
  160. package/dist/vcs/github-pr-strategy.js +44 -122
  161. package/dist/vcs/gitlab-pr-strategy.d.ts +6 -4
  162. package/dist/vcs/gitlab-pr-strategy.js +39 -87
  163. package/dist/vcs/graphql-commit-strategy.d.ts +3 -4
  164. package/dist/vcs/graphql-commit-strategy.js +31 -63
  165. package/dist/vcs/index.d.ts +3 -16
  166. package/dist/vcs/index.js +2 -33
  167. package/dist/vcs/pr-creator.d.ts +9 -9
  168. package/dist/vcs/pr-creator.js +11 -10
  169. package/dist/vcs/pr-strategy-factory.d.ts +5 -0
  170. package/dist/vcs/pr-strategy-factory.js +17 -0
  171. package/dist/vcs/pr-strategy.d.ts +13 -26
  172. package/dist/vcs/pr-strategy.js +20 -25
  173. package/dist/vcs/types.d.ts +87 -21
  174. package/package.json +2 -1
@@ -17,7 +17,7 @@ export type BypassActorType = "Team" | "User" | "Integration";
17
17
  /** Bypass mode - always bypass or only for PRs */
18
18
  export type BypassMode = "always" | "pull_request";
19
19
  /** Pattern operator for pattern-based rules */
20
- export type PatternOperator = "starts_with" | "ends_with" | "contains" | "regex";
20
+ type PatternOperator = "starts_with" | "ends_with" | "contains" | "regex";
21
21
  /** Allowed merge methods */
22
22
  export type MergeMethod = "merge" | "squash" | "rebase";
23
23
  /** Code scanning alerts threshold */
@@ -29,7 +29,7 @@ export interface BypassActor {
29
29
  actorType: BypassActorType;
30
30
  bypassMode?: BypassMode;
31
31
  }
32
- export interface RefNameCondition {
32
+ interface RefNameCondition {
33
33
  include?: string[];
34
34
  exclude?: string[];
35
35
  }
@@ -57,7 +57,7 @@ export interface CodeScanningTool {
57
57
  securityAlertsThreshold: SecurityAlertsThreshold;
58
58
  }
59
59
  /** Workflow configuration */
60
- export interface WorkflowConfig {
60
+ interface WorkflowConfig {
61
61
  path: string;
62
62
  repositoryId: number;
63
63
  ref?: string;
@@ -72,43 +72,43 @@ export interface PullRequestRuleParameters {
72
72
  allowedMergeMethods?: MergeMethod[];
73
73
  requiredReviewers?: RequiredReviewer[];
74
74
  }
75
- export interface RequiredStatusChecksParameters {
75
+ interface RequiredStatusChecksParameters {
76
76
  strictRequiredStatusChecksPolicy?: boolean;
77
77
  doNotEnforceOnCreate?: boolean;
78
78
  requiredStatusChecks?: StatusCheckConfig[];
79
79
  }
80
- export interface UpdateRuleParameters {
80
+ interface UpdateRuleParameters {
81
81
  updateAllowsFetchAndMerge?: boolean;
82
82
  }
83
- export interface RequiredDeploymentsParameters {
83
+ interface RequiredDeploymentsParameters {
84
84
  requiredDeploymentEnvironments?: string[];
85
85
  }
86
- export interface CodeScanningParameters {
86
+ interface CodeScanningParameters {
87
87
  codeScanningTools?: CodeScanningTool[];
88
88
  }
89
- export interface CodeQualityParameters {
89
+ interface CodeQualityParameters {
90
90
  severity?: "errors" | "errors_and_warnings" | "all";
91
91
  }
92
- export interface WorkflowsParameters {
92
+ interface WorkflowsParameters {
93
93
  doNotEnforceOnCreate?: boolean;
94
94
  workflows?: WorkflowConfig[];
95
95
  }
96
- export interface PatternRuleParameters {
96
+ interface PatternRuleParameters {
97
97
  name?: string;
98
98
  negate?: boolean;
99
99
  operator: PatternOperator;
100
100
  pattern: string;
101
101
  }
102
- export interface FilePathRestrictionParameters {
102
+ interface FilePathRestrictionParameters {
103
103
  restrictedFilePaths?: string[];
104
104
  }
105
- export interface FileExtensionRestrictionParameters {
105
+ interface FileExtensionRestrictionParameters {
106
106
  restrictedFileExtensions?: string[];
107
107
  }
108
- export interface MaxFilePathLengthParameters {
108
+ interface MaxFilePathLengthParameters {
109
109
  maxFilePathLength?: number;
110
110
  }
111
- export interface MaxFileSizeParameters {
111
+ interface MaxFileSizeParameters {
112
112
  maxFileSize?: number;
113
113
  }
114
114
  export interface PullRequestRule {
@@ -208,11 +208,6 @@ export interface Ruleset {
208
208
  /** Rules to enforce */
209
209
  rules?: RulesetRule[];
210
210
  }
211
- /**
212
- * Maps Ruleset config keys (camelCase) to GitHub API keys (snake_case).
213
- * TypeScript enforces this stays in sync with the Ruleset interface.
214
- */
215
- export declare const RULESET_FIELD_MAP: Record<keyof Ruleset, string>;
216
211
  /**
217
212
  * Set of snake_case field names that are comparable between config and API.
218
213
  * Used as an allowlist — any API response field not in this set is ignored.
@@ -381,3 +376,4 @@ export interface Config {
381
376
  deleteOrphaned?: boolean;
382
377
  settings?: RepoSettings;
383
378
  }
379
+ export {};
@@ -2,7 +2,7 @@
2
2
  * Maps Ruleset config keys (camelCase) to GitHub API keys (snake_case).
3
3
  * TypeScript enforces this stays in sync with the Ruleset interface.
4
4
  */
5
- export const RULESET_FIELD_MAP = {
5
+ const RULESET_FIELD_MAP = {
6
6
  target: "target",
7
7
  enforcement: "enforcement",
8
8
  bypassActors: "bypass_actors",
@@ -1,8 +1,4 @@
1
1
  import type { RawConfig, RawRepoSettings, RawRootSettings } from "./types.js";
2
- /**
3
- * Validates settings object containing rulesets, labels, and repo settings.
4
- */
5
- export declare function validateSettings(settings: unknown, context: string, rootRulesetNames?: string[], hasRootRepoSettings?: boolean, rootLabelNames?: string[]): void;
6
2
  /**
7
3
  * Validates raw config structure before normalization.
8
4
  * @throws Error if validation fails