@fuzdev/fuz_gitops 0.68.0 → 0.70.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 (95) hide show
  1. package/README.md +3 -3
  2. package/dist/ModulesDetail.svelte +14 -14
  3. package/dist/ModulesNav.svelte +2 -2
  4. package/dist/PageFooter.svelte +1 -1
  5. package/dist/ReposTable.svelte +1 -1
  6. package/dist/ReposTree.svelte +7 -7
  7. package/dist/TablePage.svelte +1 -7
  8. package/dist/TreeItemPage.svelte +3 -3
  9. package/dist/TreePage.svelte +3 -3
  10. package/dist/changeset_generator.d.ts +4 -4
  11. package/dist/changeset_generator.js +5 -5
  12. package/dist/changeset_reader.d.ts +6 -4
  13. package/dist/changeset_reader.d.ts.map +1 -1
  14. package/dist/changeset_reader.js +7 -5
  15. package/dist/dependency_graph.d.ts +3 -3
  16. package/dist/dependency_graph.js +3 -3
  17. package/dist/dependency_updater.d.ts +4 -4
  18. package/dist/dependency_updater.js +5 -5
  19. package/dist/fetch_repo_data.d.ts +4 -4
  20. package/dist/fetch_repo_data.d.ts.map +1 -1
  21. package/dist/fetch_repo_data.js +4 -5
  22. package/dist/fs_fetch_value_cache.d.ts +4 -4
  23. package/dist/fs_fetch_value_cache.js +4 -4
  24. package/dist/git_operations.d.ts +5 -5
  25. package/dist/git_operations.d.ts.map +1 -1
  26. package/dist/git_operations.js +18 -18
  27. package/dist/github.d.ts +1 -1
  28. package/dist/github.js +0 -1
  29. package/dist/gitops_analyze.task.d.ts +1 -1
  30. package/dist/gitops_plan.task.d.ts +4 -4
  31. package/dist/gitops_plan.task.js +3 -3
  32. package/dist/gitops_publish.task.d.ts +1 -1
  33. package/dist/gitops_run.task.d.ts +1 -1
  34. package/dist/gitops_run.task.js +2 -2
  35. package/dist/gitops_task_helpers.d.ts +5 -5
  36. package/dist/gitops_task_helpers.js +5 -5
  37. package/dist/graph_validation.d.ts +5 -5
  38. package/dist/graph_validation.js +5 -5
  39. package/dist/local_repo.d.ts +6 -6
  40. package/dist/local_repo.d.ts.map +1 -1
  41. package/dist/local_repo.js +22 -26
  42. package/dist/multi_repo_publisher.d.ts.map +1 -1
  43. package/dist/multi_repo_publisher.js +4 -4
  44. package/dist/npm_install_helpers.d.ts +3 -3
  45. package/dist/npm_install_helpers.js +3 -3
  46. package/dist/npm_registry.d.ts +4 -4
  47. package/dist/npm_registry.js +5 -6
  48. package/dist/operations.d.ts +19 -17
  49. package/dist/operations.d.ts.map +1 -1
  50. package/dist/operations.js +1 -1
  51. package/dist/operations_defaults.d.ts.map +1 -1
  52. package/dist/operations_defaults.js +49 -14
  53. package/dist/output_helpers.d.ts +2 -2
  54. package/dist/output_helpers.js +2 -2
  55. package/dist/paths.d.ts +1 -1
  56. package/dist/paths.js +1 -1
  57. package/dist/preflight_checks.d.ts +2 -2
  58. package/dist/preflight_checks.js +7 -7
  59. package/dist/publishing_plan.js +4 -4
  60. package/dist/publishing_plan_helpers.d.ts +1 -1
  61. package/dist/publishing_plan_helpers.js +1 -1
  62. package/dist/repo.svelte.d.ts +4 -5
  63. package/dist/repo.svelte.d.ts.map +1 -1
  64. package/dist/repo.svelte.js +2 -2
  65. package/dist/repo_ops.d.ts +6 -6
  66. package/dist/repo_ops.js +7 -7
  67. package/dist/version_utils.d.ts +2 -2
  68. package/dist/version_utils.js +2 -2
  69. package/package.json +18 -16
  70. package/src/lib/changeset_generator.ts +5 -5
  71. package/src/lib/changeset_reader.ts +7 -5
  72. package/src/lib/dependency_graph.ts +3 -3
  73. package/src/lib/dependency_updater.ts +5 -5
  74. package/src/lib/fetch_repo_data.ts +4 -6
  75. package/src/lib/fs_fetch_value_cache.ts +4 -4
  76. package/src/lib/git_operations.ts +32 -18
  77. package/src/lib/github.ts +1 -2
  78. package/src/lib/gitops_plan.task.ts +3 -3
  79. package/src/lib/gitops_run.task.ts +2 -2
  80. package/src/lib/gitops_task_helpers.ts +5 -5
  81. package/src/lib/graph_validation.ts +5 -5
  82. package/src/lib/local_repo.ts +28 -30
  83. package/src/lib/multi_repo_publisher.ts +4 -6
  84. package/src/lib/npm_install_helpers.ts +3 -3
  85. package/src/lib/npm_registry.ts +6 -6
  86. package/src/lib/operations.ts +19 -17
  87. package/src/lib/operations_defaults.ts +47 -16
  88. package/src/lib/output_helpers.ts +2 -2
  89. package/src/lib/paths.ts +1 -1
  90. package/src/lib/preflight_checks.ts +7 -7
  91. package/src/lib/publishing_plan.ts +4 -4
  92. package/src/lib/publishing_plan_helpers.ts +1 -1
  93. package/src/lib/repo.svelte.ts +4 -5
  94. package/src/lib/repo_ops.ts +7 -7
  95. package/src/lib/version_utils.ts +2 -2
package/README.md CHANGED
@@ -113,10 +113,10 @@ gro gitops_publish --wetrun --no-plan # skip plan confirmation
113
113
 
114
114
  **Documentation:**
115
115
 
116
- - [CLAUDE.md](CLAUDE.md) - Architecture, commands, testing patterns
117
- - [docs/publishing.md](docs/publishing.md) - Publishing workflows, changeset
116
+ - ./CLAUDE.md - Architecture, commands, testing patterns
117
+ - ./docs/publishing.md - Publishing workflows, changeset
118
118
  semantics, examples
119
- - [docs/troubleshooting.md](docs/troubleshooting.md) - Common errors and
119
+ - ./docs/troubleshooting.md - Common errors and
120
120
  debugging tips
121
121
 
122
122
  Getting started as a dev? Start with [Gro](https://github.com/grogarden/gro)
@@ -33,8 +33,8 @@
33
33
  // TODO add favicon (from library? gro?)
34
34
  </script>
35
35
 
36
- <div class="modules_detail">
37
- <div class="nav_wrapper">
36
+ <div class="modules-detail">
37
+ <div class="nav-wrapper">
38
38
  <section>
39
39
  <ModulesNav {repos_modules} />
40
40
  </section>
@@ -43,7 +43,7 @@
43
43
  <ul class="width_atmost_md box unstyled">
44
44
  {#each repos_modules as repo_modules (repo_modules)}
45
45
  {@const {repo, modules} = repo_modules}
46
- <li class="repo_module">
46
+ <li class="repo-module">
47
47
  <header class="width:100% position:relative">
48
48
  <a href="#{repo.name}" id={repo.name} class="subtitle">🔗</a>
49
49
  <a href={resolve(`/tree/${repo.repo_name}`)}>{repo.name}</a>
@@ -58,7 +58,7 @@
58
58
  class:css={path.endsWith('.css')}
59
59
  class:json={path.endsWith('.json')}
60
60
  >
61
- <div class="module_file">
61
+ <div class="module-file">
62
62
  {#if repo.repo_url}
63
63
  <div class="chip row">
64
64
  <!-- TODO this is a hack that could be fixed by adding an optional `base: './'` that defaults to './src/lib/' -->
@@ -76,7 +76,7 @@
76
76
  <ul class="declarations unstyled">
77
77
  {#each declarations as { name, kind } (name)}
78
78
  {#if name !== 'default'}
79
- <li class="declaration chip {kind}_declaration">
79
+ <li class="declaration chip {kind}-declaration">
80
80
  {name}
81
81
  </li>
82
82
  {/if}
@@ -94,7 +94,7 @@
94
94
  <!-- TODO better rendering, also show author, etc -->
95
95
 
96
96
  <style>
97
- .modules_detail {
97
+ .modules-detail {
98
98
  position: relative;
99
99
  padding: var(--space_lg);
100
100
  display: flex;
@@ -109,13 +109,13 @@
109
109
  top: 0;
110
110
  text-align: right;
111
111
  }
112
- .repo_module {
112
+ .repo-module {
113
113
  width: 100%;
114
114
  display: flex;
115
115
  flex-direction: column;
116
116
  margin-bottom: var(--space_xl5);
117
117
  }
118
- .repo_module > header {
118
+ .repo-module > header {
119
119
  display: flex;
120
120
  padding: var(--space_xs) var(--space_md);
121
121
  font-size: var(--font_size_lg);
@@ -130,7 +130,7 @@
130
130
  margin-bottom: var(--space_lg);
131
131
  --link_color: var(--text_70);
132
132
  }
133
- .module_file {
133
+ .module-file {
134
134
  margin-bottom: var(--space_xs);
135
135
  }
136
136
  .ts {
@@ -159,20 +159,20 @@
159
159
  font-family: var(--font_family_mono);
160
160
  font-size: var(--font_size_sm);
161
161
  }
162
- .variable_declaration {
162
+ .variable-declaration {
163
163
  color: var(--color_d_50);
164
164
  }
165
- .function_declaration {
165
+ .function-declaration {
166
166
  color: var(--color_c_50);
167
167
  }
168
- .type_declaration {
168
+ .type-declaration {
169
169
  color: var(--color_g_50);
170
170
  }
171
- .class_declaration {
171
+ .class-declaration {
172
172
  color: var(--color_f_50);
173
173
  }
174
174
  /* TODO extract */
175
- .nav_wrapper {
175
+ .nav-wrapper {
176
176
  position: sticky;
177
177
  top: var(--space_xl);
178
178
  display: flex;
@@ -17,7 +17,7 @@
17
17
  // TODO add favicon (from library? gro?)
18
18
  </script>
19
19
 
20
- <nav class="modules_nav">
20
+ <nav class="modules-nav">
21
21
  <h6>packages</h6>
22
22
  <ul class="unstyled">
23
23
  {#each repos_modules as pkg_modules (pkg_modules)}
@@ -31,7 +31,7 @@
31
31
  </nav>
32
32
 
33
33
  <style>
34
- .modules_nav {
34
+ .modules-nav {
35
35
  width: 100%;
36
36
  }
37
37
  h6 {
@@ -7,7 +7,7 @@
7
7
  </script>
8
8
 
9
9
  <section class="box mb_xl7">
10
- <DocsFooter {library}>
10
+ <DocsFooter {library} root_url="https://www.fuz.dev/">
11
11
  <nav class="mb_xl5">
12
12
  <Breadcrumb>{library.package_json.glyph}</Breadcrumb>
13
13
  </nav>
@@ -38,7 +38,7 @@
38
38
  deps.map((dep) => {
39
39
  const repo = repos.find((repo) => repo.package_json.name === dep);
40
40
  if (!repo?.package_json) return [dep, null];
41
- return [dep, repo.package_json.version];
41
+ return [dep, repo.package_json.version ?? null];
42
42
  }),
43
43
  ),
44
44
  );
@@ -19,12 +19,12 @@
19
19
  } = $props();
20
20
  </script>
21
21
 
22
- <div class="repos_tree">
22
+ <div class="repos-tree">
23
23
  <ReposTreeNav {repos} {selected_repo}>
24
24
  {@render nav()}
25
25
  </ReposTreeNav>
26
26
  {#if selected_repo}
27
- <section class="detail_wrapper">
27
+ <section class="detail-wrapper">
28
28
  <div class="panel detail p_md">
29
29
  <LibraryDetail library={selected_repo.library} />
30
30
  </div>
@@ -36,13 +36,13 @@
36
36
  {#if repo.package_json}
37
37
  <LibrarySummary library={repo.library}>
38
38
  {#snippet repo_name(repo_name)}
39
- <a href={resolve(`/tree/${repo_name}`)} class="repo_name">{repo_name}</a>
39
+ <a href={resolve(`/tree/${repo_name}`)} class="repo-name">{repo_name}</a>
40
40
  {/snippet}
41
41
  </LibrarySummary>
42
42
  {:else}
43
43
  <div class="width_atmost_sm">
44
44
  <p>
45
- failed to fetch <code>.well-known/package.json</code> from
45
+ failed to load library metadata for
46
46
  <!-- eslint-disable-next-line svelte/no-navigation-without-resolve --><a
47
47
  href={repo.repo_url}>{format_url(repo.repo_url)}</a
48
48
  >
@@ -56,7 +56,7 @@
56
56
  </div>
57
57
 
58
58
  <style>
59
- .repos_tree {
59
+ .repos-tree {
60
60
  width: 100%;
61
61
  display: flex;
62
62
  flex-direction: row;
@@ -74,13 +74,13 @@
74
74
  .summaries li {
75
75
  margin-bottom: var(--space_xl);
76
76
  }
77
- .repo_name {
77
+ .repo-name {
78
78
  font-size: var(--font_size_xl2);
79
79
  font-weight: 500;
80
80
  text-align: center;
81
81
  margin-bottom: var(--space_xl);
82
82
  }
83
- .detail_wrapper {
83
+ .detail-wrapper {
84
84
  padding: var(--space_lg);
85
85
  width: 100%;
86
86
  }
@@ -17,7 +17,7 @@
17
17
  <title>table {repo.package_json.glyph} {repo.package_json.name}</title>
18
18
  </svelte:head>
19
19
 
20
- <main class="box">
20
+ <main class="box mx_auto">
21
21
  <div class="p_lg">
22
22
  <PageHeader {repo} />
23
23
  </div>
@@ -32,12 +32,6 @@
32
32
  </main>
33
33
 
34
34
  <style>
35
- main {
36
- display: flex;
37
- flex-direction: column;
38
- align-items: center;
39
- margin: 0 auto;
40
- }
41
35
  section {
42
36
  margin-bottom: var(--space_xl4);
43
37
  }
@@ -38,7 +38,7 @@
38
38
  {/if}
39
39
  <ReposTree {repos} selected_repo={route_repo}>
40
40
  {#snippet nav()}
41
- <div class="repos_tree_nav">
41
+ <div class="repos-tree-nav">
42
42
  <Breadcrumb>{repo.package_json.glyph}</Breadcrumb>
43
43
  </div>
44
44
  {/snippet}
@@ -66,12 +66,12 @@
66
66
  align-items: center;
67
67
  width: 100%;
68
68
  }
69
- .repos_tree_nav {
69
+ .repos-tree-nav {
70
70
  display: flex;
71
71
  margin-top: var(--space_xl);
72
72
  }
73
73
  /* TODO hacky */
74
- .repos_tree_nav :global(.breadcrumb) {
74
+ .repos-tree-nav :global(.breadcrumb) {
75
75
  justify-content: flex-start;
76
76
  }
77
77
  </style>
@@ -28,7 +28,7 @@
28
28
  <section class="tree">
29
29
  <ReposTree {repos}>
30
30
  {#snippet nav()}
31
- <div class="repos_tree_nav">
31
+ <div class="repos-tree-nav">
32
32
  <Breadcrumb>{repo.package_json.glyph}</Breadcrumb>
33
33
  </div>
34
34
  {/snippet}
@@ -54,12 +54,12 @@
54
54
  flex-direction: row;
55
55
  align-items: flex-start;
56
56
  }
57
- .repos_tree_nav {
57
+ .repos-tree-nav {
58
58
  display: flex;
59
59
  margin-top: var(--space_xl);
60
60
  }
61
61
  /* TODO hacky */
62
- .repos_tree_nav :global(.breadcrumb) {
62
+ .repos-tree-nav :global(.breadcrumb) {
63
63
  justify-content: flex-start;
64
64
  }
65
65
  </style>
@@ -32,10 +32,10 @@ export declare const create_changeset_for_dependency_updates: (repo: LocalRepo,
32
32
  * and categorized list of breaking vs regular updates. Output format
33
33
  * matches changesets CLI for consistency.
34
34
  *
35
- * @param package_name package receiving the dependency updates
36
- * @param updates list of dependency changes with version info
37
- * @param bump_type required bump type (calculated from breaking changes)
38
- * @returns markdown content ready to write to .changeset/*.md file
35
+ * @param package_name - package receiving the dependency updates
36
+ * @param updates - list of dependency changes with version info
37
+ * @param bump_type - required bump type (calculated from breaking changes)
38
+ * @returns markdown content ready to write to `.changeset/*.md` file
39
39
  */
40
40
  export declare const generate_changeset_content: (package_name: string, updates: Array<DependencyVersionChange>, bump_type: "major" | "minor" | "patch") => string;
41
41
  export declare const create_dependency_updates: (dependencies: Map<string, string>, published_versions: Map<string, PublishedVersion>) => Array<DependencyVersionChange>;
@@ -17,7 +17,7 @@ export const create_changeset_for_dependency_updates = async (repo, updates, opt
17
17
  const { log, fs_ops = default_fs_operations } = options;
18
18
  const changesets_dir = join(repo.repo_dir, '.changeset');
19
19
  // Ensure .changeset directory exists
20
- if (!fs_ops.exists({ path: changesets_dir })) {
20
+ if (!(await fs_ops.exists({ path: changesets_dir }))) {
21
21
  const mkdir_result = await fs_ops.mkdir({ path: changesets_dir, recursive: true });
22
22
  if (!mkdir_result.ok) {
23
23
  throw new Error(`Failed to create .changeset directory: ${mkdir_result.message}`);
@@ -62,10 +62,10 @@ const calculate_required_bump = (repo, updates) => {
62
62
  * and categorized list of breaking vs regular updates. Output format
63
63
  * matches changesets CLI for consistency.
64
64
  *
65
- * @param package_name package receiving the dependency updates
66
- * @param updates list of dependency changes with version info
67
- * @param bump_type required bump type (calculated from breaking changes)
68
- * @returns markdown content ready to write to .changeset/*.md file
65
+ * @param package_name - package receiving the dependency updates
66
+ * @param updates - list of dependency changes with version info
67
+ * @param bump_type - required bump type (calculated from breaking changes)
68
+ * @returns markdown content ready to write to `.changeset/*.md` file
69
69
  */
70
70
  export const generate_changeset_content = (package_name, updates, bump_type) => {
71
71
  // Group updates by type
@@ -25,15 +25,17 @@ export interface ChangesetInfo {
25
25
  * Returns null if format is invalid or no packages found.
26
26
  *
27
27
  * Expected format:
28
+ * ```
28
29
  * ---
29
30
  * "package-name": patch
30
31
  * "@scope/package": minor
31
32
  * ---
32
33
  *
33
34
  * Summary of changes
35
+ * ```
34
36
  *
35
- * @param content changeset markdown with YAML frontmatter
36
- * @param filename optional filename for error reporting context
37
+ * @param content - changeset markdown with YAML frontmatter
38
+ * @param filename - optional filename for error reporting context
37
39
  * @returns parsed changeset info or null if invalid format
38
40
  */
39
41
  export declare const parse_changeset_content: (content: string, filename?: string) => ChangesetInfo | null;
@@ -53,8 +55,8 @@ export declare const determine_bump_from_changesets: (changesets: Array<Changese
53
55
  * Checks if a repo has any changeset files (excluding README.md).
54
56
  *
55
57
  * Used by preflight checks and publishing workflow to determine which packages
56
- * need to be published. Returns false if .changeset directory doesn't exist
57
- * or contains only README.md.
58
+ * need to be published. Returns false if `.changeset` directory doesn't exist
59
+ * or contains only `README.md`.
58
60
  *
59
61
  * @returns true if repo has unpublished changesets
60
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"changeset_reader.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/changeset_reader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAKpD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAG1C,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,QAAQ,CAAA;KAAC,CAAC,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,uBAAuB,GACnC,SAAS,MAAM,EACf,iBAAyB,KACvB,aAAa,GAAG,IAmClB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAChC,UAAU,MAAM,EAChB,MAAM,MAAM,KACV,OAAO,CAAC,aAAa,GAAG,IAAI,CAgB9B,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,MAAM,SAAS,EACf,MAAM,MAAM,KACV,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAsB9B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,GAC1C,YAAY,KAAK,CAAC,aAAa,CAAC,EAChC,cAAc,MAAM,KAClB,QAAQ,GAAG,IAcb,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAU,MAAM,SAAS,KAAG,OAAO,CAAC,OAAO,CAarE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,MAAM,MAAM,KACV,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAA;CAAC,GAAG,IAAI,CAsBvD,CAAC"}
1
+ {"version":3,"file":"changeset_reader.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/changeset_reader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAKpD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAG1C,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,QAAQ,CAAA;KAAC,CAAC,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,uBAAuB,GACnC,SAAS,MAAM,EACf,iBAAyB,KACvB,aAAa,GAAG,IAmClB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAChC,UAAU,MAAM,EAChB,MAAM,MAAM,KACV,OAAO,CAAC,aAAa,GAAG,IAAI,CAgB9B,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,MAAM,SAAS,EACf,MAAM,MAAM,KACV,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAsB9B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,GAC1C,YAAY,KAAK,CAAC,aAAa,CAAC,EAChC,cAAc,MAAM,KAClB,QAAQ,GAAG,IAcb,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAU,MAAM,SAAS,KAAG,OAAO,CAAC,OAAO,CAarE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAChC,MAAM,SAAS,EACf,MAAM,MAAM,KACV,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAA;CAAC,GAAG,IAAI,CAsBvD,CAAC"}
@@ -18,15 +18,17 @@ import { compare_bump_types, calculate_next_version } from './version_utils.js';
18
18
  * Returns null if format is invalid or no packages found.
19
19
  *
20
20
  * Expected format:
21
+ * ```
21
22
  * ---
22
23
  * "package-name": patch
23
24
  * "@scope/package": minor
24
25
  * ---
25
26
  *
26
27
  * Summary of changes
28
+ * ```
27
29
  *
28
- * @param content changeset markdown with YAML frontmatter
29
- * @param filename optional filename for error reporting context
30
+ * @param content - changeset markdown with YAML frontmatter
31
+ * @param filename - optional filename for error reporting context
30
32
  * @returns parsed changeset info or null if invalid format
31
33
  */
32
34
  export const parse_changeset_content = (content, filename = 'changeset.md') => {
@@ -82,7 +84,7 @@ export const read_changesets = async (repo, log) => {
82
84
  const changesets = [];
83
85
  for (const file of changeset_files) {
84
86
  const filepath = join(changesets_dir, file);
85
- const changeset = await parse_changeset_file(filepath, log); // eslint-disable-line no-await-in-loop
87
+ const changeset = await parse_changeset_file(filepath, log);
86
88
  if (changeset) {
87
89
  changesets.push(changeset);
88
90
  }
@@ -120,8 +122,8 @@ export const determine_bump_from_changesets = (changesets, package_name) => {
120
122
  * Checks if a repo has any changeset files (excluding README.md).
121
123
  *
122
124
  * Used by preflight checks and publishing workflow to determine which packages
123
- * need to be published. Returns false if .changeset directory doesn't exist
124
- * or contains only README.md.
125
+ * need to be published. Returns false if `.changeset` directory doesn't exist
126
+ * or contains only `README.md`.
125
127
  *
126
128
  * @returns true if repo has unpublished changesets
127
129
  */
@@ -58,8 +58,8 @@ export declare class DependencyGraph {
58
58
  * Delegates to `@fuzdev/fuz_util/sort.js` for the sorting algorithm.
59
59
  * Throws if cycles detected.
60
60
  *
61
- * @param exclude_dev if true, excludes dev dependencies to break cycles.
62
- * Publishing uses exclude_dev=true to handle circular dev deps.
61
+ * @param exclude_dev - if true, excludes dev dependencies to break cycles
62
+ * Publishing uses `exclude_dev`=true to handle circular dev deps.
63
63
  * @returns array of package names in dependency order (dependencies before dependents)
64
64
  * @throws {Error} if circular dependencies detected in included dependency types
65
65
  */
@@ -73,7 +73,7 @@ export declare class DependencyGraph {
73
73
  * Uses DFS traversal with recursion stack to identify back edges.
74
74
  * Deduplicates cycles using sorted cycle keys.
75
75
  *
76
- * @returns object with production_cycles (errors) and dev_cycles (info)
76
+ * @returns object with `production_cycles` (errors) and `dev_cycles` (info)
77
77
  */
78
78
  detect_cycles_by_type(): {
79
79
  production_cycles: Array<Array<string>>;
@@ -82,8 +82,8 @@ export class DependencyGraph {
82
82
  * Delegates to `@fuzdev/fuz_util/sort.js` for the sorting algorithm.
83
83
  * Throws if cycles detected.
84
84
  *
85
- * @param exclude_dev if true, excludes dev dependencies to break cycles.
86
- * Publishing uses exclude_dev=true to handle circular dev deps.
85
+ * @param exclude_dev - if true, excludes dev dependencies to break cycles
86
+ * Publishing uses `exclude_dev`=true to handle circular dev deps.
87
87
  * @returns array of package names in dependency order (dependencies before dependents)
88
88
  * @throws {Error} if circular dependencies detected in included dependency types
89
89
  */
@@ -113,7 +113,7 @@ export class DependencyGraph {
113
113
  * Uses DFS traversal with recursion stack to identify back edges.
114
114
  * Deduplicates cycles using sorted cycle keys.
115
115
  *
116
- * @returns object with production_cycles (errors) and dev_cycles (info)
116
+ * @returns object with `production_cycles` (errors) and `dev_cycles` (info)
117
117
  */
118
118
  detect_cycles_by_type() {
119
119
  const production_cycles = this.#find_cycles((spec) => spec.type !== DEPENDENCY_TYPE.DEV);
@@ -11,13 +11,13 @@ export interface UpdatePackageJsonOptions {
11
11
  fs_ops?: FsOperations;
12
12
  }
13
13
  /**
14
- * Updates package.json dependencies and creates changeset if needed.
14
+ * Updates `package.json` dependencies and creates changeset if needed.
15
15
  *
16
16
  * Workflow:
17
17
  * 1. Updates all dependency types (dependencies, devDependencies, peerDependencies)
18
- * 2. Writes updated package.json with tabs formatting
19
- * 3. Creates auto-changeset if published_versions provided (for transitive updates)
20
- * 4. Commits both package.json and changeset with standard message
18
+ * 2. Writes updated `package.json` with tabs formatting
19
+ * 3. Creates auto-changeset if `published_versions` provided (for transitive updates)
20
+ * 4. Commits both `package.json` and changeset with standard message
21
21
  *
22
22
  * Uses version strategy to determine prefix (exact, caret, tilde) while preserving
23
23
  * existing prefixes when possible.
@@ -3,13 +3,13 @@ import { create_changeset_for_dependency_updates, create_dependency_updates, } f
3
3
  import { needs_update, get_update_prefix } from './version_utils.js';
4
4
  import { default_git_operations, default_fs_operations } from './operations_defaults.js';
5
5
  /**
6
- * Updates package.json dependencies and creates changeset if needed.
6
+ * Updates `package.json` dependencies and creates changeset if needed.
7
7
  *
8
8
  * Workflow:
9
9
  * 1. Updates all dependency types (dependencies, devDependencies, peerDependencies)
10
- * 2. Writes updated package.json with tabs formatting
11
- * 3. Creates auto-changeset if published_versions provided (for transitive updates)
12
- * 4. Commits both package.json and changeset with standard message
10
+ * 2. Writes updated `package.json` with tabs formatting
11
+ * 3. Creates auto-changeset if `published_versions` provided (for transitive updates)
12
+ * 4. Commits both `package.json` and changeset with standard message
13
13
  *
14
14
  * Uses version strategy to determine prefix (exact, caret, tilde) while preserving
15
15
  * existing prefixes when possible.
@@ -156,7 +156,7 @@ export const update_all_repos = async (repos, published, options = {}) => {
156
156
  if (updates.size === 0)
157
157
  continue;
158
158
  try {
159
- await update_package_json(repo, updates, { strategy, log, git_ops, fs_ops }); // eslint-disable-line no-await-in-loop
159
+ await update_package_json(repo, updates, { strategy, log, git_ops, fs_ops });
160
160
  updated_count++;
161
161
  log?.info(` Updated ${updates.size} dependencies in ${repo.library.name}`);
162
162
  }
@@ -9,11 +9,11 @@ import type { LocalRepo } from './local_repo.js';
9
9
  * Uses `await_in_loop` intentionally to avoid parallel requests overwhelming the API.
10
10
  *
11
11
  * Error handling: Logs fetch failures but continues processing remaining repos.
12
- * Repos with failed fetches will have `null` for check_runs or pull_requests.
12
+ * Repos with failed fetches will have `null` for `check_runs` or `pull_requests`.
13
13
  *
14
- * @param delay milliseconds between API requests (default: 33ms)
15
- * @param cache optional cache from fuz_util's fetch.js for response memoization
16
- * @returns array of Repo objects with GitHub metadata attached
14
+ * @param delay - milliseconds between API requests (default: 33ms)
15
+ * @param cache - optional cache from `fuz_util`'s `fetch.js` for response memoization
16
+ * @returns array of `Repo` objects with GitHub metadata attached
17
17
  */
18
18
  export declare const fetch_repo_data: (resolved_repos: Array<LocalRepo>, token?: string, cache?: FetchValueCache, log?: Logger, delay?: number, github_api_version?: string) => Promise<Array<RepoJson>>;
19
19
  //# sourceMappingURL=fetch_repo_data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_repo_data.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/fetch_repo_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAG/D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAI/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,GAC3B,gBAAgB,KAAK,CAAC,SAAS,CAAC,EAChC,QAAQ,MAAM,EACd,QAAQ,eAAe,EACvB,MAAM,MAAM,EACZ,cAAU,EACV,qBAAqB,MAAM,KACzB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAiCzB,CAAC"}
1
+ {"version":3,"file":"fetch_repo_data.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/fetch_repo_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAG/D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,GAC3B,gBAAgB,KAAK,CAAC,SAAS,CAAC,EAChC,QAAQ,MAAM,EACd,QAAQ,eAAe,EACvB,MAAM,MAAM,EACZ,cAAU,EACV,qBAAqB,MAAM,KACzB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAiCzB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { wait } from '@fuzdev/fuz_util/async.js';
2
2
  import { fetch_github_check_runs, fetch_github_pull_requests } from './github.js';
3
- /* eslint-disable no-await-in-loop */
4
3
  /**
5
4
  * Fetches GitHub metadata (CI status, PRs) for all repos.
6
5
  *
@@ -8,11 +7,11 @@ import { fetch_github_check_runs, fetch_github_pull_requests } from './github.js
8
7
  * Uses `await_in_loop` intentionally to avoid parallel requests overwhelming the API.
9
8
  *
10
9
  * Error handling: Logs fetch failures but continues processing remaining repos.
11
- * Repos with failed fetches will have `null` for check_runs or pull_requests.
10
+ * Repos with failed fetches will have `null` for `check_runs` or `pull_requests`.
12
11
  *
13
- * @param delay milliseconds between API requests (default: 33ms)
14
- * @param cache optional cache from fuz_util's fetch.js for response memoization
15
- * @returns array of Repo objects with GitHub metadata attached
12
+ * @param delay - milliseconds between API requests (default: 33ms)
13
+ * @param cache - optional cache from `fuz_util`'s `fetch.js` for response memoization
14
+ * @returns array of `Repo` objects with GitHub metadata attached
16
15
  */
17
16
  export const fetch_repo_data = async (resolved_repos, token, cache, log, delay = 33, github_api_version) => {
18
17
  const repos = [];
@@ -8,7 +8,7 @@ export interface FetchCache {
8
8
  save: () => Promise<boolean>;
9
9
  }
10
10
  /**
11
- * Creates file-system backed cache for fuz_util's fetch.js API responses.
11
+ * Creates file-system backed cache for `fuz_util`'s `fetch.js` API responses.
12
12
  *
13
13
  * Cache invalidation strategy: If cache file can't be read or parsed, entire
14
14
  * cache is cleared (delete file) and starts fresh. This handles format changes.
@@ -16,9 +16,9 @@ export interface FetchCache {
16
16
  * Uses `structuredClone` to track changes - only writes to disk if data modified.
17
17
  * Formatted with Prettier before writing for version control friendliness.
18
18
  *
19
- * @param name cache filename (without .json extension)
20
- * @param dir cache directory (defaults to `.gro/build/fetch/`)
21
- * @returns cache object with Map-based data and save() method
19
+ * @param name - cache filename (without .json extension)
20
+ * @param dir - cache directory (defaults to `.gro/build/fetch/`)
21
+ * @returns cache object with Map-based data and `save()` method
22
22
  */
23
23
  export declare const create_fs_fetch_value_cache: (name: string, dir?: string) => Promise<FetchCache>;
24
24
  //# sourceMappingURL=fs_fetch_value_cache.d.ts.map
@@ -5,7 +5,7 @@ import { format_file } from '@fuzdev/gro/format_file.js';
5
5
  import { deserialize_cache, serialize_cache } from '@fuzdev/fuz_util/fetch.js';
6
6
  import { existsSync } from 'node:fs';
7
7
  /**
8
- * Creates file-system backed cache for fuz_util's fetch.js API responses.
8
+ * Creates file-system backed cache for `fuz_util`'s `fetch.js` API responses.
9
9
  *
10
10
  * Cache invalidation strategy: If cache file can't be read or parsed, entire
11
11
  * cache is cleared (delete file) and starts fresh. This handles format changes.
@@ -13,9 +13,9 @@ import { existsSync } from 'node:fs';
13
13
  * Uses `structuredClone` to track changes - only writes to disk if data modified.
14
14
  * Formatted with Prettier before writing for version control friendliness.
15
15
  *
16
- * @param name cache filename (without .json extension)
17
- * @param dir cache directory (defaults to `.gro/build/fetch/`)
18
- * @returns cache object with Map-based data and save() method
16
+ * @param name - cache filename (without .json extension)
17
+ * @param dir - cache directory (defaults to `.gro/build/fetch/`)
18
+ * @returns cache object with Map-based data and `save()` method
19
19
  */
20
20
  export const create_fs_fetch_value_cache = async (name, dir = join(paths.build, 'fetch')) => {
21
21
  const data_path = join(dir, name + '.json');
@@ -22,9 +22,9 @@ export declare const git_tag: (tag_name: string, message?: string, options?: Spa
22
22
  export declare const git_push_tag: (tag_name: string, origin?: GitOrigin, options?: SpawnOptions) => Promise<void>;
23
23
  export declare const git_has_changes: (options?: SpawnOptions) => Promise<boolean>;
24
24
  /**
25
- * Returns list of changed files compared to HEAD.
25
+ * Lists uncommitted files in the working tree (`git diff --name-only HEAD`).
26
26
  */
27
- export declare const git_get_changed_files: (options?: SpawnOptions) => Promise<Array<string>>;
27
+ export declare const git_list_uncommitted_files: (options?: SpawnOptions) => Promise<Array<string>>;
28
28
  export declare const git_has_file_changed: (from_commit: string, to_commit: string, file_path: string, options?: SpawnOptions) => Promise<boolean>;
29
29
  /**
30
30
  * Stashes current changes and throws if anything goes wrong.
@@ -39,15 +39,15 @@ export declare const git_stash_pop: (options?: SpawnOptions) => Promise<void>;
39
39
  */
40
40
  export declare const git_switch_branch: (branch: GitBranch, pull?: boolean, options?: SpawnOptions) => Promise<void>;
41
41
  /**
42
- * Wrapper for gro's git_current_branch_name that throws if null.
42
+ * Wrapper for gro's `git_current_branch_name` that throws if null.
43
43
  */
44
44
  export declare const git_current_branch_name_required: (options?: SpawnOptions) => Promise<string>;
45
45
  /**
46
- * Wrapper for gro's git_current_commit_hash that throws if null.
46
+ * Wrapper for gro's `git_current_commit_hash` that throws if null.
47
47
  */
48
48
  export declare const git_current_commit_hash_required: (branch?: string, options?: SpawnOptions) => Promise<string>;
49
49
  /**
50
- * Wrapper for gro's git_check_clean_workspace that returns a boolean.
50
+ * Wrapper for gro's `git_check_clean_workspace` that returns a boolean.
51
51
  */
52
52
  export declare const git_check_clean_workspace_as_boolean: (options?: SpawnOptions) => Promise<boolean>;
53
53
  export declare const git_has_remote: (remote?: string, options?: SpawnOptions) => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"git_operations.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/git_operations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAMN,KAAK,SAAS,EACd,KAAK,SAAS,EACd,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,OAAO,GACnB,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAC7B,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,EAAE,UAAU,YAAY,KAAG,OAAO,CAAC,IAAI,CAKtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAC7B,SAAS,MAAM,EACf,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAGd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GACnB,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GACxB,UAAU,MAAM,EAChB,SAAQ,SAAiC,EACzC,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAKd,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,UAAU,YAAY,KAAG,OAAO,CAAC,OAAO,CAG7E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAU,UAAU,YAAY,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAQzF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAChC,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,WAAW,MAAM,EACjB,UAAU,YAAY,KACpB,OAAO,CAAC,OAAO,CAOjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAU,UAAU,MAAM,EAAE,UAAU,YAAY,KAAG,OAAO,CAAC,IAAI,CAOtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,UAAU,YAAY,KAAG,OAAO,CAAC,IAAI,CAKxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC7B,QAAQ,SAAS,EACjB,OAAM,OAAc,EACpB,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAoBd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,GAAU,UAAU,YAAY,KAAG,OAAO,CAAC,MAAM,CAM7F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,GAC5C,SAAS,MAAM,EACf,UAAU,YAAY,KACpB,OAAO,CAAC,MAAM,CAMhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAChD,UAAU,YAAY,KACpB,OAAO,CAAC,OAAO,CAGjB,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,SAAQ,MAAiB,EACzB,UAAU,YAAY,KACpB,OAAO,CAAC,OAAO,CAQjB,CAAC"}
1
+ {"version":3,"file":"git_operations.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/git_operations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAMN,KAAK,SAAS,EACd,KAAK,SAAS,EACd,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,OAAO,GACnB,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAC7B,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAQd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,EAAE,UAAU,YAAY,KAAG,OAAO,CAAC,IAAI,CAOtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAC7B,SAAS,MAAM,EACf,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAGd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GACnB,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CASd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GACxB,UAAU,MAAM,EAChB,SAAQ,SAAiC,EACzC,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,UAAU,YAAY,KAAG,OAAO,CAAC,OAAO,CAG7E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACtC,UAAU,YAAY,KACpB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAQvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAChC,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,WAAW,MAAM,EACjB,UAAU,YAAY,KACpB,OAAO,CAAC,OAAO,CAOjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAU,UAAU,MAAM,EAAE,UAAU,YAAY,KAAG,OAAO,CAAC,IAAI,CAStF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,UAAU,YAAY,KAAG,OAAO,CAAC,IAAI,CAOxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC7B,QAAQ,SAAS,EACjB,OAAM,OAAc,EACpB,UAAU,YAAY,KACpB,OAAO,CAAC,IAAI,CAoBd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,GAAU,UAAU,YAAY,KAAG,OAAO,CAAC,MAAM,CAM7F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,GAC5C,SAAS,MAAM,EACf,UAAU,YAAY,KACpB,OAAO,CAAC,MAAM,CAMhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAChD,UAAU,YAAY,KACpB,OAAO,CAAC,OAAO,CAGjB,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,SAAQ,MAAiB,EACzB,UAAU,YAAY,KACpB,OAAO,CAAC,OAAO,CAQjB,CAAC"}