@shibanet0/datamitsu-config 0.2.0 → 0.4.1

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 (249) hide show
  1. package/README.md +4 -106
  2. package/bin/tsc.js +4 -2
  3. package/bin/tsx.js +2 -1
  4. package/datamitsu.config.base.js +4733 -1795
  5. package/datamitsu.config.js +4733 -1795
  6. package/datamitsu.config.oci-dockerhub.js +4734 -1796
  7. package/datamitsu.config.oci-ghcr.js +4734 -1796
  8. package/dist/apps/cspell/ignore.d.ts +1 -0
  9. package/dist/apps/eslint/globs.d.ts +37 -1
  10. package/dist/apps/eslint/plugins/eslint-comments.d.ts +13 -0
  11. package/dist/apps/eslint/plugins/json-schema-validator.d.ts +19 -0
  12. package/dist/apps/eslint/plugins/jsonc.d.ts +31 -0
  13. package/dist/apps/eslint/plugins/n.d.ts +24 -0
  14. package/dist/apps/eslint/plugins/next.d.ts +13 -0
  15. package/dist/apps/eslint/plugins/oxlint.d.ts +20 -4
  16. package/dist/apps/eslint/plugins/playwright.d.ts +13 -0
  17. package/dist/apps/eslint/plugins/pnpm.d.ts +6 -0
  18. package/dist/apps/eslint/plugins/prettier.d.ts +14 -0
  19. package/dist/apps/eslint/plugins/svelte.d.ts +2 -0
  20. package/dist/apps/eslint/plugins/vitest.d.ts +7 -0
  21. package/dist/apps/eslint/types.d.ts +41 -17
  22. package/dist/apps/knip/index.d.ts +62 -2
  23. package/dist/apps/knip/index.js +206 -7
  24. package/dist/apps/lefthook-proxy/__tests__/env.d.ts +2 -0
  25. package/dist/apps/lefthook-proxy/__tests__/fixtures/fake-upstream.d.mts +2 -0
  26. package/dist/apps/lefthook-proxy/env.d.ts +15 -0
  27. package/dist/apps/lefthook-proxy/exit-codes.d.ts +20 -0
  28. package/dist/apps/lefthook-proxy/git.d.ts +16 -0
  29. package/dist/apps/lefthook-proxy/hooks.d.ts +1 -0
  30. package/dist/apps/lefthook-proxy/index.d.ts +2 -0
  31. package/dist/apps/lefthook-proxy/isolation-failure-error.d.ts +13 -0
  32. package/dist/apps/lefthook-proxy/isolation.d.ts +5 -0
  33. package/dist/apps/lefthook-proxy/messages.d.ts +5 -0
  34. package/dist/apps/lefthook-proxy/resolve.d.ts +3 -0
  35. package/dist/apps/lefthook-proxy/signals.d.ts +19 -0
  36. package/dist/apps/lefthook-sort/index.d.ts +1 -1
  37. package/dist/apps/markdownlint-cli2/index.d.ts +58 -0
  38. package/dist/apps/oxfmt/index.d.ts +11 -1
  39. package/dist/apps/oxlint/index.d.ts +88 -0
  40. package/dist/apps/oxlint/plugins.generated.d.ts +15 -0
  41. package/dist/apps/sort-keys/index.d.ts +2 -0
  42. package/dist/apps/sort-keys/properties.d.ts +19 -0
  43. package/dist/apps/sort-keys/yaml.d.ts +5 -0
  44. package/dist/apps/stylelint/index.d.ts +13 -0
  45. package/dist/apps/stylelint/merge.d.ts +21 -0
  46. package/dist/apps/test-support/env.d.ts +1 -0
  47. package/dist/apps/test-support/managed-bun.d.ts +6 -0
  48. package/dist/datamitsu-config/__tests__/agents-upgrade.test.d.ts +1 -0
  49. package/dist/datamitsu-config/__tests__/tool-config-paths.test.d.ts +1 -0
  50. package/dist/datamitsu-config/agents.md.d.ts +6 -6
  51. package/dist/datamitsu-config/alint-defaults.d.ts +22 -0
  52. package/dist/datamitsu-config/apps/eslint.deps.d.ts +18 -1
  53. package/dist/datamitsu-config/apps/lefthook-proxy.d.ts +1 -0
  54. package/dist/datamitsu-config/apps/sort-keys.d.ts +20 -0
  55. package/dist/datamitsu-config/apps/stylelint.d.ts +1 -0
  56. package/dist/datamitsu-config/apps/stylelint.deps.d.ts +16 -0
  57. package/dist/datamitsu-config/cmd-managed-configs.d.ts +2 -0
  58. package/dist/datamitsu-config/gitleaks-defaults.d.ts +1 -0
  59. package/dist/datamitsu-config/globs.d.ts +31 -1
  60. package/dist/datamitsu-config/inline-config/commitlint.d.ts +1 -1
  61. package/dist/datamitsu-config/inline-config/cspell.d.ts +1 -1
  62. package/dist/datamitsu-config/inline-config/eslint.d.ts +1 -1
  63. package/dist/datamitsu-config/inline-config/knip.d.ts +1 -1
  64. package/dist/datamitsu-config/inline-config/lefthook-proxy.d.ts +1 -0
  65. package/dist/datamitsu-config/inline-config/lefthook-sort.d.ts +1 -1
  66. package/dist/datamitsu-config/inline-config/markdownlint-cli2.d.ts +1 -0
  67. package/dist/datamitsu-config/inline-config/oxfmt.d.ts +1 -1
  68. package/dist/datamitsu-config/inline-config/oxlint.d.ts +1 -0
  69. package/dist/datamitsu-config/inline-config/prettier.d.ts +1 -1
  70. package/dist/datamitsu-config/inline-config/sort-keys.d.ts +1 -0
  71. package/dist/datamitsu-config/inline-config/stylelint.d.ts +1 -0
  72. package/dist/datamitsu-config/ls-lint-defaults.d.ts +20 -0
  73. package/dist/datamitsu-config/managed-configs/__tests__/alint_yml.test.d.ts +1 -0
  74. package/dist/datamitsu-config/managed-configs/__tests__/droast_toml.test.d.ts +1 -0
  75. package/dist/datamitsu-config/managed-configs/__tests__/editorconfig.test.d.ts +1 -0
  76. package/dist/datamitsu-config/managed-configs/__tests__/github_dependabot_yml.test.d.ts +1 -0
  77. package/dist/datamitsu-config/managed-configs/__tests__/lefthook_yaml.test.d.ts +1 -0
  78. package/dist/datamitsu-config/managed-configs/__tests__/ls_lint_yml.test.d.ts +1 -0
  79. package/dist/datamitsu-config/managed-configs/__tests__/package_json.test.d.ts +1 -0
  80. package/dist/datamitsu-config/managed-configs/__tests__/pnpm_workspace_yaml.test.d.ts +1 -0
  81. package/dist/datamitsu-config/managed-configs/__tests__/typos_toml.test.d.ts +1 -0
  82. package/dist/datamitsu-config/managed-configs/__tests__/yamlfmt_yaml.test.d.ts +1 -0
  83. package/dist/datamitsu-config/managed-configs/_alint_yml.d.ts +1 -0
  84. package/dist/datamitsu-config/managed-configs/_datamitsu_scripts_check_empty_files_sh.d.ts +1 -0
  85. package/dist/datamitsu-config/managed-configs/_datamitsu_scripts_format_terraform_spacing_sh.d.ts +1 -0
  86. package/dist/datamitsu-config/managed-configs/_dclint_yaml.d.ts +1 -0
  87. package/dist/datamitsu-config/managed-configs/_dockerignore.d.ts +1 -0
  88. package/dist/datamitsu-config/managed-configs/_editorconfig.d.ts +1 -0
  89. package/dist/datamitsu-config/managed-configs/_editorconfig_checker_json.d.ts +1 -0
  90. package/dist/datamitsu-config/managed-configs/_github_dependabot_yml.d.ts +1 -0
  91. package/dist/datamitsu-config/managed-configs/_github_zizmor_yml.d.ts +1 -0
  92. package/dist/datamitsu-config/managed-configs/_gitignore.d.ts +1 -0
  93. package/dist/datamitsu-config/managed-configs/_gitleaks_toml.d.ts +1 -0
  94. package/dist/datamitsu-config/managed-configs/_golangci_yaml.d.ts +1 -0
  95. package/dist/datamitsu-config/managed-configs/_ls_lint_yml.d.ts +1 -0
  96. package/dist/datamitsu-config/managed-configs/_markdownlint_cli2_mjs.d.ts +1 -0
  97. package/dist/datamitsu-config/managed-configs/_node_version.d.ts +1 -0
  98. package/dist/datamitsu-config/managed-configs/_npmrc.d.ts +1 -0
  99. package/dist/datamitsu-config/managed-configs/_pinact_yaml.d.ts +1 -0
  100. package/dist/datamitsu-config/managed-configs/_sqruff.d.ts +14 -0
  101. package/dist/datamitsu-config/managed-configs/_syncpackrc_json.d.ts +1 -0
  102. package/dist/datamitsu-config/managed-configs/_tflint_hcl.d.ts +1 -0
  103. package/dist/datamitsu-config/managed-configs/_tombi_toml.d.ts +1 -0
  104. package/dist/datamitsu-config/managed-configs/_trufflehog_exclude_paths_txt.d.ts +2 -0
  105. package/dist/datamitsu-config/managed-configs/_typos_toml.d.ts +1 -0
  106. package/dist/datamitsu-config/managed-configs/_vale_ini.d.ts +1 -0
  107. package/dist/datamitsu-config/managed-configs/_vscode_extensions_json.d.ts +1 -0
  108. package/dist/datamitsu-config/managed-configs/_vscode_settings_json.d.ts +1 -0
  109. package/dist/datamitsu-config/managed-configs/_yamlfmt_yaml.d.ts +1 -0
  110. package/dist/datamitsu-config/managed-configs/_yamllint_yaml.d.ts +1 -0
  111. package/dist/datamitsu-config/managed-configs/ai-tools.d.ts +1 -0
  112. package/dist/datamitsu-config/managed-configs/commitlint_config_mjs.d.ts +1 -0
  113. package/dist/datamitsu-config/managed-configs/cspell_config_mjs.d.ts +1 -0
  114. package/dist/datamitsu-config/managed-configs/deny_toml.d.ts +1 -0
  115. package/dist/datamitsu-config/managed-configs/deprecated_configs.d.ts +1 -0
  116. package/dist/datamitsu-config/managed-configs/droast_toml.d.ts +9 -0
  117. package/dist/datamitsu-config/managed-configs/eslint_config_mjs.d.ts +1 -0
  118. package/dist/datamitsu-config/managed-configs/hadolint_yaml.d.ts +1 -0
  119. package/dist/datamitsu-config/managed-configs/knip_config_js.d.ts +1 -0
  120. package/dist/datamitsu-config/managed-configs/lefthook_yaml.d.ts +1 -0
  121. package/dist/datamitsu-config/managed-configs/lychee_toml.d.ts +1 -0
  122. package/dist/datamitsu-config/managed-configs/mdsf_json.d.ts +1 -0
  123. package/dist/datamitsu-config/managed-configs/oxfmt_config_ts.d.ts +1 -0
  124. package/dist/datamitsu-config/managed-configs/oxlint_config_mts.d.ts +1 -0
  125. package/dist/datamitsu-config/managed-configs/package_json.d.ts +1 -0
  126. package/dist/datamitsu-config/managed-configs/pnpm_workspace_yaml.d.ts +1 -0
  127. package/dist/datamitsu-config/managed-configs/prettier_config_mjs.d.ts +1 -0
  128. package/dist/datamitsu-config/managed-configs/pyproject_toml.d.ts +1 -0
  129. package/dist/datamitsu-config/managed-configs/rustfmt_toml.d.ts +13 -0
  130. package/dist/datamitsu-config/managed-configs/stylelint_config_mjs.d.ts +1 -0
  131. package/dist/datamitsu-config/managed-configs/turbo_json.d.ts +1 -0
  132. package/dist/datamitsu-config/oci.d.ts +3 -3
  133. package/dist/datamitsu-config/parsers.d.ts +11 -13
  134. package/dist/datamitsu-config/skills.d.ts +2 -2
  135. package/dist/globs/globs.d.ts +30 -1
  136. package/dist/ignore/__tests__/catalog.test.d.ts +1 -0
  137. package/dist/ignore/__tests__/eslint-traversal.test.d.ts +1 -0
  138. package/dist/ignore/__tests__/ls-lint.test.d.ts +1 -0
  139. package/dist/ignore/__tests__/pins.test.d.ts +1 -0
  140. package/dist/ignore/__tests__/profiles.test.d.ts +1 -0
  141. package/dist/ignore/catalog.d.ts +1555 -0
  142. package/dist/ignore/profile.d.ts +24 -0
  143. package/dist/ignore/profiles/cspell.d.ts +2 -0
  144. package/dist/ignore/profiles/eslint.d.ts +2 -0
  145. package/dist/ignore/profiles/gitignore.d.ts +2 -0
  146. package/dist/ignore/profiles/json-exclude.d.ts +2 -0
  147. package/dist/ignore/profiles/ls-lint.d.ts +2 -0
  148. package/dist/ignore/profiles/trufflehog.d.ts +2 -0
  149. package/dist/ignore/profiles/yaml-exclude.d.ts +2 -0
  150. package/dist/ignore/profiles/yaml.d.ts +2 -0
  151. package/dist/ignore/types.d.ts +18 -0
  152. package/dist/lib/datamitsu.d.ts +1 -1
  153. package/dist/lint-rules/__tests__/index.test.d.ts +1 -0
  154. package/dist/lint-rules/index.d.ts +46 -0
  155. package/dist/lint-rules/oxlint-known-rules.generated.d.ts +1 -0
  156. package/dist/lint-rules/permanent-disabled.d.ts +19 -0
  157. package/dist/lint-rules/permanent-enabled.d.ts +49 -0
  158. package/dist/lint-rules/rule-names.generated.d.ts +5 -0
  159. package/dist/lint-rules/temporary.d.ts +25 -0
  160. package/dist/s0/cmd/pulumi/__tests__/cleanup-state.test.d.ts +1 -0
  161. package/dist/s0/cmd/pulumi/__tests__/decrypt-state.test.d.ts +1 -0
  162. package/dist/s0/cmd/pulumi/__tests__/encrypt-editor.test.d.ts +1 -0
  163. package/dist/s0/cmd/pulumi/__tests__/encrypt-state.test.d.ts +1 -0
  164. package/dist/s0/cmd/pulumi/__tests__/state-content.test.d.ts +1 -0
  165. package/dist/s0/cmd/pulumi/__tests__/state-files.test.d.ts +1 -0
  166. package/dist/s0/cmd/pulumi/__tests__/state-guard.test.d.ts +1 -0
  167. package/dist/s0/cmd/pulumi/constants.d.ts +5 -0
  168. package/dist/s0/cmd/pulumi/decrypt-state.d.ts +8 -0
  169. package/dist/s0/cmd/pulumi/encrypt-state.d.ts +14 -0
  170. package/dist/s0/cmd/pulumi/index.d.ts +3 -1
  171. package/dist/s0/cmd/pulumi/state-content.d.ts +21 -0
  172. package/dist/s0/cmd/pulumi/state-files.d.ts +13 -0
  173. package/dist/s0/cmd/pulumi/state-guard.d.ts +15 -0
  174. package/dist/s0/index.js +7010 -183
  175. package/dist/s0/utils/datamitsu.d.ts +1 -1
  176. package/dist/utils/{typeGuards.d.ts → type-guards.d.ts} +1 -1
  177. package/package.json +7 -7
  178. package/dist/apps/eslint/plugins/arrow-return-style.d.ts +0 -2
  179. package/dist/apps/eslint/plugins/json.d.ts +0 -2
  180. package/dist/datamitsu-config/cmdSetup.d.ts +0 -3
  181. package/dist/datamitsu-config/env.d.ts +0 -5
  182. package/dist/datamitsu-config/gitleaksDefaults.d.ts +0 -4
  183. package/dist/datamitsu-config/inline-config/oxlint_configuration_schema.d.ts +0 -1
  184. package/dist/datamitsu-config/setup/_alint_yml.d.ts +0 -1
  185. package/dist/datamitsu-config/setup/_datamitsu_scripts_check_empty_files_sh.d.ts +0 -1
  186. package/dist/datamitsu-config/setup/_datamitsu_scripts_format_terraform_spacing_sh.d.ts +0 -1
  187. package/dist/datamitsu-config/setup/_dclint_yaml.d.ts +0 -1
  188. package/dist/datamitsu-config/setup/_dockerignore.d.ts +0 -1
  189. package/dist/datamitsu-config/setup/_editorconfig.d.ts +0 -1
  190. package/dist/datamitsu-config/setup/_editorconfig_checker_json.d.ts +0 -1
  191. package/dist/datamitsu-config/setup/_github_dependabot_yml.d.ts +0 -1
  192. package/dist/datamitsu-config/setup/_github_zizmor_yml.d.ts +0 -1
  193. package/dist/datamitsu-config/setup/_gitignore.d.ts +0 -1
  194. package/dist/datamitsu-config/setup/_gitleaks_toml.d.ts +0 -1
  195. package/dist/datamitsu-config/setup/_golangci_yaml.d.ts +0 -1
  196. package/dist/datamitsu-config/setup/_ls_lint_yml.d.ts +0 -1
  197. package/dist/datamitsu-config/setup/_node_version.d.ts +0 -1
  198. package/dist/datamitsu-config/setup/_npmrc.d.ts +0 -1
  199. package/dist/datamitsu-config/setup/_oxlintrc_json.d.ts +0 -1
  200. package/dist/datamitsu-config/setup/_pinact_yaml.d.ts +0 -1
  201. package/dist/datamitsu-config/setup/_sqruff.d.ts +0 -1
  202. package/dist/datamitsu-config/setup/_syncpackrc_json.d.ts +0 -1
  203. package/dist/datamitsu-config/setup/_tflint_hcl.d.ts +0 -1
  204. package/dist/datamitsu-config/setup/_tombi_toml.d.ts +0 -1
  205. package/dist/datamitsu-config/setup/_trufflehog_exclude_paths_txt.d.ts +0 -2
  206. package/dist/datamitsu-config/setup/_vale_ini.d.ts +0 -1
  207. package/dist/datamitsu-config/setup/_vscode_extensions_json.d.ts +0 -1
  208. package/dist/datamitsu-config/setup/_vscode_settings_json.d.ts +0 -1
  209. package/dist/datamitsu-config/setup/_yamlfmt_yaml.d.ts +0 -1
  210. package/dist/datamitsu-config/setup/_yamllint_yaml.d.ts +0 -1
  211. package/dist/datamitsu-config/setup/aiTools.d.ts +0 -1
  212. package/dist/datamitsu-config/setup/commitlint_config_mjs.d.ts +0 -1
  213. package/dist/datamitsu-config/setup/cspell_config_mjs.d.ts +0 -1
  214. package/dist/datamitsu-config/setup/deny_toml.d.ts +0 -1
  215. package/dist/datamitsu-config/setup/deprecated_configs.d.ts +0 -1
  216. package/dist/datamitsu-config/setup/eslint_config_mjs.d.ts +0 -1
  217. package/dist/datamitsu-config/setup/hadolint_yaml.d.ts +0 -1
  218. package/dist/datamitsu-config/setup/knip_config_js.d.ts +0 -1
  219. package/dist/datamitsu-config/setup/lefthook_yaml.d.ts +0 -1
  220. package/dist/datamitsu-config/setup/mdsf_json.d.ts +0 -1
  221. package/dist/datamitsu-config/setup/oxfmt_config_ts.d.ts +0 -1
  222. package/dist/datamitsu-config/setup/package_json.d.ts +0 -1
  223. package/dist/datamitsu-config/setup/pnpm_workspace_yaml.d.ts +0 -1
  224. package/dist/datamitsu-config/setup/prettier_config_mjs.d.ts +0 -1
  225. package/dist/datamitsu-config/setup/pyproject_toml.d.ts +0 -1
  226. package/dist/datamitsu-config/setup/rustfmt_toml.d.ts +0 -1
  227. package/dist/datamitsu-config/setup/turbo_json.d.ts +0 -1
  228. package/dist/datamitsu-config/setup/ty_toml.d.ts +0 -1
  229. package/dist/s0/__tests__/helpers/mockCrypto.d.ts +0 -22
  230. package/dist/s0/__tests__/helpers/mockExeca.d.ts +0 -47
  231. package/dist/s0/__tests__/helpers/mockFs.d.ts +0 -44
  232. package/dist/s0/__tests__/helpers/mockGlob.d.ts +0 -21
  233. package/dist/s0/cmd/pulumi/decryptState.d.ts +0 -1
  234. package/dist/s0/cmd/pulumi/encryptState.d.ts +0 -1
  235. /package/dist/apps/eslint/plugins/{arrayFunc.d.ts → array-func.d.ts} +0 -0
  236. /package/dist/apps/eslint/plugins/{deMorgan.d.ts → de-morgan.d.ts} +0 -0
  237. /package/dist/{datamitsu-config/__tests__/agentsUpgrade.test.d.ts → apps/knip/__tests__/index.test.d.ts} +0 -0
  238. /package/dist/{datamitsu-config/setup/__tests__/github_dependabot_yml.test.d.ts → apps/lefthook-proxy/__tests__/proxy.test.d.ts} +0 -0
  239. /package/dist/{datamitsu-config/setup/__tests__/lefthook_yaml.test.d.ts → apps/lefthook-proxy/__tests__/real-lefthook.test.d.ts} +0 -0
  240. /package/dist/{datamitsu-config/setup/__tests__/package_json.test.d.ts → apps/lefthook-sort/__tests__/cli.test.d.ts} +0 -0
  241. /package/dist/{datamitsu-config/setup/__tests__/pnpm_workspace_yaml.test.d.ts → apps/oxfmt/__tests__/index.test.d.ts} +0 -0
  242. /package/dist/{s0/cmd/pulumi/__tests__/cleanupState.test.d.ts → apps/oxlint/__tests__/index.test.d.ts} +0 -0
  243. /package/dist/{s0/cmd/pulumi/__tests__/decryptState.test.d.ts → apps/sort-keys/__tests__/sort.test.d.ts} +0 -0
  244. /package/dist/{s0/cmd/pulumi/__tests__/encryptState.test.d.ts → apps/stylelint/__tests__/merge.test.d.ts} +0 -0
  245. /package/dist/datamitsu-config/{agentsUpgrade.d.ts → agents-upgrade.d.ts} +0 -0
  246. /package/dist/datamitsu-config/{setup → managed-configs}/shared.d.ts +0 -0
  247. /package/dist/datamitsu-config/utils/{cleanDependencies.d.ts → clean-dependencies.d.ts} +0 -0
  248. /package/dist/datamitsu-config/utils/{detectPackageType.d.ts → detect-package-type.d.ts} +0 -0
  249. /package/dist/s0/cmd/pulumi/{cleanupState.d.ts → cleanup-state.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,15 @@
1
+ export interface ProxyEnvironment {
2
+ active: boolean;
3
+ gitIndexFile?: string;
4
+ noColor: boolean;
5
+ path: string;
6
+ pathExtensions: string;
7
+ publicProxy?: string;
8
+ upstream?: string;
9
+ }
10
+ export declare function childEnvironment(markActive: boolean): NodeJS.ProcessEnv;
11
+ export declare function hookRuntimeSettings(): {
12
+ directory: string;
13
+ options: string;
14
+ };
15
+ export declare function proxyEnvironment(source?: NodeJS.ProcessEnv): ProxyEnvironment;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Exit codes the proxy adds on top of whatever upstream Lefthook returns. They start at the
3
+ * sysexits.h range so they cannot be confused with a Lefthook command's own non-zero status.
4
+ */
5
+ /**
6
+ * The working tree could not be isolated, or could not be restored afterwards. Nothing was lost —
7
+ * the transaction stash is retained and the recovery commands are printed — but the tree may be
8
+ * missing the hidden changes until the backup is applied.
9
+ */
10
+ export declare const restoreFailureExitCode = 70;
11
+ /**
12
+ * The working tree is intact, but the installed Git hooks could not be re-pointed at the public
13
+ * proxy. Hooks keep working; they just may call upstream Lefthook directly until the next
14
+ * successful `lefthook install`, which means the next commit can run without isolation.
15
+ */
16
+ export declare const hookBindingFailureExitCode = 71;
17
+ /**
18
+ * Upstream Lefthook could not be found or could not be executed at all.
19
+ */
20
+ export declare const upstreamMissingExitCode = 127;
@@ -0,0 +1,16 @@
1
+ export interface StashEntry {
2
+ oid: string;
3
+ selector: string;
4
+ subject: string;
5
+ }
6
+ export declare function gitCommand(args: readonly string[], input?: Buffer): Promise<Buffer>;
7
+ export declare function gitDirectory(repositoryRootPath: string): Promise<string>;
8
+ export declare function gitOutput(args: readonly string[]): Promise<string>;
9
+ export declare function listStashes(repositoryRootPath: string): Promise<StashEntry[]>;
10
+ export declare function nulSeparatedPaths(paths: Buffer): Buffer[];
11
+ /**
12
+ * Name of the in-flight Git operation (merge, rebase, …), if the repository is mid-operation.
13
+ */
14
+ export declare function operationInProgress(directory: string): string | undefined;
15
+ export declare function repositoryHasHead(repositoryRootPath: string): Promise<boolean>;
16
+ export declare function repositoryRoot(): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare function bindInstalledHooksToProxy(publicProxy: string, upstream: string): Promise<number>;
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bun
2
+ export {};
@@ -0,0 +1,13 @@
1
+ export type IsolationTarget = "head" | "index";
2
+ export interface StashTransaction {
3
+ marker: string;
4
+ oid: string;
5
+ repositoryRoot: string;
6
+ target: IsolationTarget;
7
+ }
8
+ export declare class IsolationFailureError extends Error {
9
+ readonly marker: string;
10
+ readonly repositoryRoot: string;
11
+ readonly transaction: StashTransaction | undefined;
12
+ constructor(message: string, marker: string, repositoryRoot: string, transaction?: StashTransaction);
13
+ }
@@ -0,0 +1,5 @@
1
+ import type { ProxyEnvironment } from "./env.js";
2
+ import { type IsolationTarget, type StashTransaction } from "./isolation-failure-error.js";
3
+ export declare function isolateWorkingTree(target: IsolationTarget, environment: ProxyEnvironment): Promise<StashTransaction | undefined>;
4
+ export declare function isolationTarget(args: readonly string[]): IsolationTarget | undefined;
5
+ export declare function restoreTransaction(transaction: StashTransaction): Promise<void>;
@@ -0,0 +1,5 @@
1
+ import type { StashTransaction } from "./isolation-failure-error.js";
2
+ export declare function errorMessage(error: unknown): string;
3
+ export declare function writeError(message: string): void;
4
+ export declare function writeProxyNotice(): void;
5
+ export declare function writeRecovery(transaction: StashTransaction): void;
@@ -0,0 +1,3 @@
1
+ import { type ProxyEnvironment } from "./env.js";
2
+ export declare function resolvePublicProxy(environment?: ProxyEnvironment): string;
3
+ export declare function resolveUpstream(environment?: ProxyEnvironment): string;
@@ -0,0 +1,19 @@
1
+ import type { ChildProcess } from "node:child_process";
2
+ export interface ChildResult {
3
+ code: number;
4
+ error?: Error;
5
+ }
6
+ export type RelaySignal = "SIGHUP" | "SIGINT" | "SIGTERM";
7
+ export declare const signalExitCodes: Record<RelaySignal, number>;
8
+ export declare class SignalRelay {
9
+ private child;
10
+ private readonly handlers;
11
+ private received;
12
+ constructor();
13
+ lastSignal(): RelaySignal | undefined;
14
+ setChild(child?: ChildProcess): void;
15
+ start(): void;
16
+ stop(): void;
17
+ private forward;
18
+ }
19
+ export declare function resultForSignal(signal: NodeJS.Signals | null): ChildResult;
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env bun
2
2
  export {};
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Markdown gets a structural linter, not a second formatter.
3
+ *
4
+ * Oxfmt owns how a Markdown file looks — and it owns the fenced code inside it too: measured on a
5
+ * file holding thirteen languages, it reformats `js`, `ts`, `tsx`, `json`, `css`, `yaml` and
6
+ * `graphql` blocks, byte-identical to what prettier writes. What no formatter reports is the
7
+ * structure: a fence with no language, a bare URL, a heading level that skips a step, a link whose
8
+ * fragment does not exist, a table whose rows disagree on column count. That is the whole job here
9
+ * — 42 findings on this repository's 45 Markdown files, none of which any other tool in the
10
+ * toolchain reports.
11
+ *
12
+ * Every rule that decides what the file _looks_ like is therefore off, and the list below says
13
+ * which of two reasons put it there. Leaving one on does not produce a second opinion, it produces
14
+ * a loop: the formatter writes its form, the linter reports it, and `dm check` fails on a file `dm
15
+ * fix` has just written.
16
+ *
17
+ * The types are written here rather than imported from the package. markdownlint-cli2 is a managed
18
+ * binary, not a dependency of this repository or of a consuming project, so there is nothing to
19
+ * import them from at build time — and pulling the package in as a devDependency to type a config
20
+ * object of six keys is a poor trade.
21
+ */
22
+ /**
23
+ * The markdownlint-cli2 configuration object — the shape a `.markdownlint-cli2.mjs` exports.
24
+ */
25
+ export interface Config {
26
+ config?: MarkdownlintConfig;
27
+ customRules?: string[];
28
+ fix?: boolean;
29
+ frontMatter?: string;
30
+ gitignore?: boolean;
31
+ globs?: string[];
32
+ ignores?: string[];
33
+ markdownItPlugins?: unknown[];
34
+ modulePaths?: string[];
35
+ noBanner?: boolean;
36
+ noProgress?: boolean;
37
+ outputFormatters?: unknown[];
38
+ showFound?: boolean;
39
+ }
40
+ /**
41
+ * The `config` object: markdownlint's own rule configuration.
42
+ */
43
+ export interface MarkdownlintConfig {
44
+ [rule: string]: null | RuleConfig | string | undefined;
45
+ default?: boolean;
46
+ extends?: null | string;
47
+ }
48
+ /**
49
+ * A markdownlint rule: off, on, or on with options.
50
+ */
51
+ export type RuleConfig = boolean | Record<string, unknown>;
52
+ /**
53
+ * Merges one level deep, so `defineConfig({ config: { MD041: false } })` keeps the rule decisions
54
+ * above instead of replacing all of them with that one entry — the failure mode documented for
55
+ * oxlint, stylelint and oxfmt in AGENTS.md, and the one anyone writing this call would hit first.
56
+ * Replacing wholesale is the function form, where `base` is in hand.
57
+ */
58
+ export declare const defineConfig: (config?: ((base: Config) => Config) | Config) => Config;
@@ -1,3 +1,13 @@
1
1
  import { type OxfmtConfig } from "oxfmt";
2
2
  export type { OxfmtConfig } from "oxfmt";
3
- export declare const defineConfig: (config?: OxfmtConfig) => OxfmtConfig;
3
+ /**
4
+ * Accepts an overrides object, shallow-merged over the base, or a function that receives the base
5
+ * and returns the final config — the latter is how a project extends `overrides` instead of
6
+ * replacing it:
7
+ *
8
+ * export default defineConfig((base) => ({
9
+ * ...base,
10
+ * overrides: [...(base.overrides ?? []), { files: ["*.md"], options: { printWidth: 80 } }],
11
+ * }));
12
+ */
13
+ export declare const defineConfig: (config?: ((base: OxfmtConfig) => OxfmtConfig) | OxfmtConfig) => OxfmtConfig;
@@ -1,2 +1,90 @@
1
1
  import type { Oxlintrc } from "./schema";
2
+ export type { Oxlintrc } from "./schema";
3
+ /**
4
+ * The part of a `package.json` this config reads.
5
+ *
6
+ * Deliberately narrower than type-fest's `PackageJson`, which is what the ESLint half takes: a
7
+ * `with { type: "json" }` import hands TypeScript the literal shape of the consumer's own manifest,
8
+ * and the wide type does not always accept it — `exports` and `bin` are the usual casualties. Every
9
+ * real manifest satisfies this one, and it says exactly what is looked at.
10
+ */
11
+ export interface OxlintPackageJson {
12
+ dependencies?: Partial<Record<string, string>> | undefined;
13
+ devDependencies?: Partial<Record<string, string>> | undefined;
14
+ optionalDependencies?: Partial<Record<string, string>> | undefined;
15
+ peerDependencies?: Partial<Record<string, string>> | undefined;
16
+ }
17
+ /**
18
+ * The oxlint half of the shared lint configuration.
19
+ *
20
+ * Every category is on, including `restriction` — which, unlike the others, is not a quality bar
21
+ * but a bag of project-specific bans that oxlint expects you to opt into one rule at a time.
22
+ * Turning it on lights up every rule at once, so the ones this stack does not want are turned off
23
+ * by name in `src/lint-rules` rather than by leaving the category off. A project that wants the
24
+ * backlog rules back on re-enables them in its own `.oxlintrc.json`, which extends this one.
25
+ *
26
+ * That list is shared with ESLint on purpose. `eslint-plugin-oxlint` suppresses an ESLint rule only
27
+ * while oxlint is _reporting_ the equivalent, so turning a rule off here used to hand it straight
28
+ * back to ESLint — the same finding, same file, still failing, now under a different rule name.
29
+ * Feeding both tools the same list is what stops that.
30
+ *
31
+ * No `$schema`: this is consumed as a TypeScript module, where the `Oxlintrc` type does the job a
32
+ * JSON schema reference used to.
33
+ */
2
34
  export declare const oxlintConfig: Oxlintrc;
35
+ /**
36
+ * Options a consumer's `oxlint.config.mts` can pass, mirroring the ESLint half's.
37
+ */
38
+ export interface OxlintDefineConfigOptions {
39
+ /**
40
+ * Apply the shared migration backlog — the rules in `src/lint-rules/temporary` that should be on
41
+ * and are off only until the code is ready for them. Defaults to `true`.
42
+ *
43
+ * The ESLint half has had this since it was written; oxlint's did not, because
44
+ * `disabledRulesForOxlint()` was called with no arguments at module scope and `defineConfig` had
45
+ * nowhere to put an option. So `defineConfig(pkg, config, { temporaryRules: false })` raised the
46
+ * bar in ESLint while oxlint kept every backlog rule off — and since `eslint-plugin-oxlint`
47
+ * suppresses whatever oxlint reports, the documented "we are already clean, opt out" path made
48
+ * the config quieter in the one place it claimed to make it stricter.
49
+ */
50
+ temporaryRules?: boolean | undefined;
51
+ }
52
+ /**
53
+ * {@link oxlintConfig} narrowed to a project: framework plugins it does not depend on removed, and
54
+ * the migration backlog dropped if it opted out.
55
+ *
56
+ * Exported so the ESLint half can build its `eslint-plugin-oxlint` suppressions from the same
57
+ * config the project's oxlint run uses. That plugin turns an ESLint rule off on the premise that
58
+ * oxlint is reporting the equivalent — so handing it a config claiming plugins the project does not
59
+ * have, or turn-offs the project opted out of, would suppress rules nothing reports.
60
+ */
61
+ export declare function oxlintConfigFor(packageJSON?: OxlintPackageJson, options?: OxlintDefineConfigOptions): Oxlintrc;
62
+ /**
63
+ * The entry point a consumer's `oxlint.config.mts` calls.
64
+ *
65
+ * Takes the project's `package.json` first, the way the ESLint half's `defineConfig` does and for
66
+ * the same reason: which framework plugins run is a question about the project, and the manifest is
67
+ * the only place the answer is written down. Passing nothing keeps every plugin, so a config
68
+ * generated before this parameter existed behaves as it did.
69
+ *
70
+ * Then either an overrides object, shallow-merged over the base, or a function that receives the
71
+ * base and returns the final config — the latter for extending an array or object field instead of
72
+ * replacing it:
73
+ *
74
+ * ```ts
75
+ * export default defineConfig(packageJSON, (base) => ({
76
+ * ...base,
77
+ * overrides: [...(base.overrides ?? []), { files: ["src/legacy/**"], rules: { … } }],
78
+ * }));
79
+ * ```
80
+ *
81
+ * The object form adds to the base rather than replacing the keys it names — see
82
+ * {@link mergeConfig}. The function form is what to reach for when the base genuinely has to be
83
+ * replaced or reordered.
84
+ *
85
+ * This is what a JSON config could not do. `extends` in a JSON config carries `rules`, `plugins`
86
+ * and `overrides` and silently drops `env`, `globals`, `settings`, `ignorePatterns` and `options`,
87
+ * so half of what this file decides never reached the project that extended it. Composing objects
88
+ * in JS has nothing to drop.
89
+ */
90
+ export declare const defineConfig: (packageJSON?: OxlintPackageJson, config?: ((base: Oxlintrc) => Oxlintrc) | Oxlintrc, options?: OxlintDefineConfigOptions) => Oxlintrc;
@@ -0,0 +1,15 @@
1
+ import type { LintPluginOptionsSchema } from "./schema";
2
+ export declare const OXLINT_PLUGINS: readonly ["eslint", "import", "jsdoc", "jsx-a11y", "nextjs", "node", "oxc", "promise", "react", "react-perf", "typescript", "unicorn", "vitest", "vue"];
3
+ /**
4
+ * Plugins deliberately left off. The reasons live in scripts/generate-oxlint-plugins.ts; they are
5
+ * exported so the inventory validator can tell a decision apart from an oversight.
6
+ */
7
+ export declare const OXLINT_EXCLUDED_PLUGINS: readonly ["jest"];
8
+ /**
9
+ * Fails the typecheck if a plugin is neither enabled nor deliberately excluded — including one the
10
+ * next oxlint bump adds. Dropping a plugin from the array by hand is a compile error rather than a
11
+ * quietly narrower lint.
12
+ */
13
+ export type _EveryOxlintPluginIsAccountedFor = AssertNever<Exclude<LintPluginOptionsSchema, (typeof OXLINT_EXCLUDED_PLUGINS)[number] | (typeof OXLINT_PLUGINS)[number]>>;
14
+ type AssertNever<T extends never> = T;
15
+ export {};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bun
2
+ export {};
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Alphabetical key sorting for `.properties`, done on the text rather than through a data model.
3
+ *
4
+ * The previous sorter piped the file through YAML (`yq -p props -o props 'sort_keys(..)'`), and
5
+ * that round trip is lossy: YAML reads `a.b` as `b` nested under `a`, so a file holding both
6
+ * `a.b=hello` and `a=world` came back as `a = world` alone — one line silently gone. Java
7
+ * properties has no nesting; a dot is an ordinary character in a key.
8
+ *
9
+ * So nothing here parses values. A record is "whatever comment and blank lines precede a key line,
10
+ * plus that key line and its continuations", records are ordered by key, and every byte of each
11
+ * record is written back untouched. What cannot be lost this way: escapes, duplicate keys, unicode
12
+ * escapes, `:` or space as the separator, trailing whitespace inside a value.
13
+ */
14
+ /**
15
+ * Returns the file with its records ordered by key, or the original text when there is nothing to
16
+ * reorder. Trailing comments and blank lines — the ones that follow the last key — stay at the end,
17
+ * where their author put them.
18
+ */
19
+ export declare const sortProperties: (source: string) => string;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns the sorted document, or the original text when sorting would be unsafe or would change
3
+ * nothing. Unsafe means: it does not parse, or it uses anchors, aliases or merge keys.
4
+ */
5
+ export declare const sortYaml: (source: string) => string;
@@ -0,0 +1,13 @@
1
+ import type { Config } from "stylelint";
2
+ export type { Config } from "stylelint";
3
+ /**
4
+ * Accepts an overrides object — added to the base rather than replacing the keys it names, see
5
+ * {@link mergeConfig} — or a function that receives the base and returns the final config, which is
6
+ * how a project replaces wholesale:
7
+ *
8
+ * export default defineConfig((base) => ({
9
+ * ...base,
10
+ * rules: { ...base.rules, "selector-class-pattern": null },
11
+ * }));
12
+ */
13
+ export declare const defineConfig: (config?: ((base: Config) => Config) | Config) => Config;
@@ -0,0 +1,21 @@
1
+ import type { Config } from "stylelint";
2
+ /**
3
+ * Adds the caller's config to the base instead of replacing the keys it names — the same decision,
4
+ * for the same reason, as `src/apps/oxlint/index.ts`.
5
+ *
6
+ * A spread was the obvious implementation and the wrong one. Everything that makes a component
7
+ * parse lives in `overrides`, so `defineConfig({ overrides: [{ files: ["*.css"], rules: … }] })` —
8
+ * the shape anyone would write to adjust one file type — dropped the `postcss-html` wiring along
9
+ * with it. Measured: `.svelte` then fails with `Unknown word <script>`, `.vue` with `Unknown word
10
+ * </style>`, and `.scss` with `Invalid double-slash CSS comment`. A config that silences a rule
11
+ * should not silently stop parsing three languages.
12
+ *
13
+ * Objects merge key by key, arrays append, and the caller still wins wherever they name the same
14
+ * key — `extends` and `overrides` are ordered last-wins in stylelint, so appending is what makes
15
+ * the caller's entry decide. Replacing wholesale is the function form of `defineConfig`.
16
+ *
17
+ * It lives in its own module so the merge can be tested without resolving the presets: `index.ts`
18
+ * turns every preset name into an absolute path in the managed app's install, which exists where
19
+ * stylelint runs and not in this repository.
20
+ */
21
+ export declare function mergeConfig(base: Config, config?: Config): Config;
@@ -0,0 +1 @@
1
+ export declare function fixtureEnvironment(overrides?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
@@ -0,0 +1,6 @@
1
+ export declare function installedBunApp(name: string): {
2
+ artifact: string;
3
+ command: string;
4
+ environment: NodeJS.ProcessEnv;
5
+ runtimeArgs: string[];
6
+ };
@@ -2,13 +2,13 @@ export declare const AGENTS_BASE: string;
2
2
  export declare const AGENTS_DOCS_MARKDOWN: string;
3
3
  export declare const AGENTS_DOCS_WEBSITE: string;
4
4
  export declare const CHUNK_00_BACKLOG_HASH = "8d8068ab184a1e2888d6fec12ef6e59fa172061cb712db734c42f7834a914209";
5
- export declare const CHUNK_00_BASE_HASH = "dc82caf6a6f273b7b87d967dc8ee3d46dadf7f02f02663bf15b9aae0a307bb25";
5
+ export declare const CHUNK_00_BASE_HASH = "99f787a9542bbe75d2214c94b20525b3b85e1c0bd2c209d622b5416288058db4";
6
6
  export declare const CHUNK_00_CONFIG_INPUTS_HASH = "138dcb74fdd12336b8ccc87f1d589964996cc1e7d73f156b6870cb1ea6771542";
7
- export declare const CHUNK_00_DEPENDABOT_HASH = "b05aca84224760df0b9dae1f499a911c7c6531dd4623a7e55ab4d50b4f93f115";
8
- export declare const CHUNK_00_PRIVACY_HASH = "d8be582e591eb438952dd4173019ddb1f0f194260b04d1146526b6bd6afbd9f3";
7
+ export declare const CHUNK_00_DEPENDABOT_HASH = "dcebf1f24d6a413ba1ae5dae29656d23a6b532c8e38d0e45409510a8441d285f";
8
+ export declare const CHUNK_00_PRIVACY_HASH = "1ddad93a578148375649488c794902657f4542d55146687b2eb518cd3d2afe11";
9
9
  export declare const CHUNK_00_SCRIPTS_HASH = "2f7c6dcf065ff965f9f20b06768aad43fadadf0cad15f60bc72af10e750f1454";
10
- export declare const CHUNK_00_STACK_HASH = "bb04b25a48bec2084d5453936317e81529fdadd47d3b34e3d0c4cabcffebdb35";
10
+ export declare const CHUNK_00_STACK_HASH = "0fc75a6d218f9bf4b31ac605f61373da5818d14cb282c33ad62e9a84db2be9a0";
11
11
  export declare const CHUNK_10_DOCS_HASH = "e4357d5d90b2f3e3f6cc982e821d3a76f92eee058311e7746ebb2937278a6d75";
12
- export declare const CHUNK_20_DOCS_MARKDOWN_HASH = "babafc853c28c64fc881f395c2a221a9639a1e34bfd8f219a50221e91e40dd05";
13
- export declare const CHUNK_20_DOCS_WEBSITE_HASH = "a9d1c1a59fa5b7ffd4c62819a84162113389675a4af72a7ab1e6eb0bfb325029";
12
+ export declare const CHUNK_20_DOCS_MARKDOWN_HASH = "c966e49af479f77fc45d99b41dce062b873f3ab1af62c44ab5324b05374d505a";
13
+ export declare const CHUNK_20_DOCS_WEBSITE_HASH = "c2e1ca1dd5e32d27e2f82955bbf703b3cb4c6e0b4d9427a78907e01844cb6dbf";
14
14
  export declare const ALL_AGENTS_HASHES: string[];
@@ -0,0 +1,22 @@
1
+ export declare const ALINT_MANAGED_FILE = "alint-managed.yml";
2
+ export declare const ALINT_MANAGED_PATH = ".datamitsu/alint-managed.yml";
3
+ interface NamingRule {
4
+ id: string;
5
+ message: string;
6
+ paths: string | {
7
+ exclude: string[];
8
+ include: string[];
9
+ };
10
+ pattern: string;
11
+ }
12
+ /**
13
+ * File-name conventions every project gets. They only forbid what no ecosystem uses: mixed
14
+ * separators, spaces, or a case its language rules out. JS/TS allows kebab-case, camelCase and
15
+ * PascalCase because front-end trees use all three (components, hooks, modules), plus the route
16
+ * syntax of file-based routers. A project narrows a rule by redefining its `id` in `.alint.yml`.
17
+ *
18
+ * Directory names are ls-lint's: alint has no directory-name rule kind.
19
+ */
20
+ export declare const alintNamingRules: NamingRule[];
21
+ export declare function buildManagedAlintYaml(): string;
22
+ export {};
@@ -7,13 +7,14 @@ export declare const eslintDeps: {
7
7
  readonly "@eslint/js": string;
8
8
  readonly "@next/eslint-plugin-next": string;
9
9
  readonly "@stylistic/eslint-plugin": string;
10
+ readonly "@typescript-eslint/utils": string;
10
11
  readonly "@vitest/eslint-plugin": string;
12
+ readonly "caniuse-lite": string;
11
13
  readonly eslint: string;
12
14
  readonly "eslint-config-prettier": string;
13
15
  readonly "eslint-flat-config-utils": string;
14
16
  readonly "eslint-import-resolver-typescript": string;
15
17
  readonly "eslint-plugin-array-func": string;
16
- readonly "eslint-plugin-arrow-return-style": string;
17
18
  readonly "eslint-plugin-baseline-js": string;
18
19
  readonly "eslint-plugin-boundaries": string;
19
20
  readonly "eslint-plugin-clsx": string;
@@ -50,9 +51,25 @@ export declare const eslintDeps: {
50
51
  readonly "eslint-plugin-security": string;
51
52
  readonly "eslint-plugin-sonarjs": string;
52
53
  readonly "eslint-plugin-storybook": string;
54
+ readonly "eslint-plugin-svelte": string;
53
55
  readonly "eslint-plugin-turbo": string;
54
56
  readonly "eslint-plugin-unicorn": string;
55
57
  readonly "eslint-plugin-unused-imports": string;
56
58
  readonly globals: string;
59
+ /**
60
+ * Not a plugin, and not optional either: `svelte-eslint-parser` declares `svelte` as a peer and
61
+ * loads `svelte/compiler` to parse a component. The managed app installs into the datamitsu
62
+ * store, where the consuming project's own `svelte` is not on the resolution path — so without
63
+ * this entry every `.svelte` file fails to parse in a project that has svelte installed. Pinned
64
+ * rather than left to `autoInstallPeers` so the compiler version is the one this config was
65
+ * tested against.
66
+ */
67
+ readonly svelte: string;
68
+ /**
69
+ * A dependency of `eslint-plugin-svelte` already. Pinned here as well because the plugin's own
70
+ * range is a caret, and the parser is what decides whether a component parses at all — a minor
71
+ * bump of it that nobody read is a change to the AST every svelte rule reads.
72
+ */
73
+ readonly "svelte-eslint-parser": string;
57
74
  readonly "typescript-eslint": string;
58
75
  };
@@ -0,0 +1 @@
1
+ export declare const lefthookProxyApp: BinManager.App;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Alphabetical key order for YAML and `.properties`, replacing the two `yq` invocations that did
3
+ * the same job and lost data doing it:
4
+ *
5
+ * - YAML. `sort_keys(..)` moved an alias above the anchor that defines it, and the document stopped
6
+ * parsing. This one leaves any document carrying an anchor, an alias or a merge key exactly as it
7
+ * is, and sorts the rest.
8
+ * - `.properties`. The round trip through YAML folded `a.b` into a nested `a` and dropped one of the
9
+ * two keys. This one never parses values — it orders whole records as text.
10
+ *
11
+ * One app with the format as its first argument, rather than one app per format: the two sorters
12
+ * are fifty lines each and share their whole contract (idempotent, byte-stable,
13
+ * comment-preserving), so splitting them would duplicate the packaging and the tests without
14
+ * separating anything.
15
+ *
16
+ * The inline entrypoint resolves its external YAML parser from the managed app environment, the
17
+ * same way lefthook-sort does — the YAML side has to go through the `yaml` document AST, because
18
+ * that is what keeps every comment attached to the key it belongs to.
19
+ */
20
+ export declare const sortKeysApp: BinManager.App;
@@ -0,0 +1 @@
1
+ export declare const stylelintApp: BinManager.App;
@@ -0,0 +1,16 @@
1
+ export declare const stylelintDeps: {
2
+ /**
3
+ * Not a preset. `stylelint-config-html` declares it as a peer, and it is the custom syntax that
4
+ * extracts `<style>` out of html, vue and svelte — stylelint bundles a syntax for none of those.
5
+ */
6
+ readonly "postcss-html": string;
7
+ readonly stylelint: string;
8
+ readonly "stylelint-config-html": string;
9
+ readonly "stylelint-config-recommended-vue": string;
10
+ readonly "stylelint-config-standard": string;
11
+ /**
12
+ * Brings `postcss-scss` with it, which is what makes a `.scss` file parse at all — stylelint 17
13
+ * bundles no syntax but its own CSS parser.
14
+ */
15
+ readonly "stylelint-config-standard-scss": string;
16
+ };
@@ -0,0 +1,2 @@
1
+ export declare const managedConfigs: config.MapOfManagedConfigs;
2
+ export declare const initCommands: config.MapOfInitCommands;
@@ -0,0 +1 @@
1
+ export declare function buildManagedGitleaksToml(): string;
@@ -1,9 +1,24 @@
1
1
  export declare const actionlintGlobs: string[];
2
+ export declare const githubActionsGlobs: string[];
2
3
  export declare const dockerfileGlobs: string[];
3
4
  export declare const composeGlobs: string[];
5
+ export declare const droastGlobs: string[];
4
6
  export declare const cargoGlobs: string[];
5
7
  export declare const goGlobs: string[];
8
+ export declare const goSourceGlobs: string[];
9
+ export declare const goFormatExcludeGlobs: string[];
6
10
  export declare const sqlGlobs: string[];
11
+ /**
12
+ * What stylelint lints. Stylesheets, plus the three shapes that carry a `<style>` block — the
13
+ * overrides that attach `postcss-html` to those live in src/apps/stylelint/index.ts.
14
+ *
15
+ * `.less` is deliberately absent. stylelint 17 bundles no syntax but its own CSS parser, so a
16
+ * `.less` file needs `postcss-less` and a preset of its own, neither of which is adopted here — and
17
+ * pointing stylelint at one without them fails to parse rather than reporting nothing. oxfmt still
18
+ * formats `.less`; it is linting that is missing, and the gap is here rather than hidden behind a
19
+ * glob that cannot work.
20
+ */
21
+ export declare const stylelintGlobs: string[];
7
22
  export declare const tyGlobs: string[];
8
23
  export declare const dotenvLinterGlobs: string[];
9
24
  export declare const eslintGlobs: string[];
@@ -15,12 +30,27 @@ export declare const jsonExcludeGlobs: string[];
15
30
  export declare const oxlintGlobs: string[];
16
31
  export declare const oxfmtGlobs: string[];
17
32
  export declare const packageJsonGlobs: string[];
33
+ /**
34
+ * What changes a syncpack verdict. The manifests are the subject, but the workspace file decides
35
+ * which manifests there are — and in pnpm it also carries `catalog:` entries and `overrides`, so a
36
+ * version can move without a single `package.json` being touched. With only the manifests listed, a
37
+ * commit that edits the catalog alone skips the check that exists to notice.
38
+ */
39
+ export declare const syncpackGlobs: string[];
18
40
  export declare const prettierGlobs: string[];
19
41
  export declare const propertiesGlobs: string[];
20
42
  export declare const protoGlobs: string[];
21
43
  export declare const shellGlobs: string[];
22
44
  export declare const tomlGlobs: string[];
23
- export declare const typescriptGlobs: string[];
45
+ /**
46
+ * What changes a `tsc` verdict, which is more than the TypeScript files themselves: `tsconfig.json`
47
+ * decides the compiler options, the file set and the project references, so editing one is exactly
48
+ * the change most likely to break a build — and with only the source globs listed, selecting it
49
+ * alone ran nothing. `.tsx`/`.mts`/`.cts` are already covered above; `allowJs` projects are not,
50
+ * and are left out deliberately rather than handing every JavaScript repository a type-check
51
+ * trigger.
52
+ */
53
+ export declare const tscGlobs: string[];
24
54
  export declare const typstGlobs: string[];
25
55
  export declare const yamlGlobs: string[];
26
56
  export declare const yamlExcludeGlobs: string[];
@@ -1 +1 @@
1
- export declare const data = "tar.br:G/8NIB6J6UaD/NHKlnxpS7eszTIFvJqaw+3it6v/M5UyDti6xiKt8rKDx+f/fvIH/cBDGsgm+OIuomwUjVGFKTROYA4tzuNbxPNEqaQTuH1/09pbUgARbEno+6CYCyLneyEQwV8dAg7aXxaRIQBlw3UNgWTyaCiF+XzluePI0vt7kPJy+JqTCTmFDB3E/fKU5mAlQdIYq97aajrU6HNGW9c8Xc3h+PiZKR2P+S6SIduqjW4X3x1v3m/BGovyoQEb+ZQjzMcQNnDCm1I/C7OSaREDsba//DvFflhXqSi/Xf7Vuaf8h+f+6cfDIVK5ie9tkwFB7GuvAOAS4S7V8YOflx2G9gE4s7RTRQUwAH3D5u7qbGaWVAYYKgDDkGpovRitXn2/qp5s+aQW8PveQQu7AaAwmIFPIhVUoVJSIQx+AxVsukEevqkf9H2v6azBGRW7cUjpCYbTmqpqoFLBsn1n1bDa7SqJI72Jq8fcX1EH13aLpqpiHTIaDZtcOlfQEQ516sfyGNUCjvXRfWZ/e7V1lqoA8YepuHIbFQ2tKnlyJsRJzfGiDtFAtamf2gGV0muRtM6QUhmYB9YY4bkIAgE=";
1
+ export declare const data = "tar.br:G/8PIGZTZ1qrZVLpXw5JRbj9AacCgN0pjWVjpqt8rWKje7MHZZBIDgDjUciqCtMKrZ+N+vgOYzegiA3w3ma0jJyFQqPaarkMOnQ2oeXCZrlJFeK3rhUghcD2YCJmBFUYiq+vEIZWEeo7G54vbO45itD1vnJut7qHlwl5heLRyh53Zxd6K0mSJ6j0tsXXoSaXM7ZE5RnO9M/Hz46yy5nvii0UyapGH9v7QmbXq5Ud+9ihE68Uwg1+xXnzyaMNwRRrErNkxkG9trds48fg6UfKtaFOt13zuR1oS6zOy/K7BQORvm0vAHxGyHUVtVL699JqpRiQnDloVTFCGKD99sNFGsq0ABktYEgBhkmq+f+ft7+L6bco2fNJneBxPwotLCORBMofftK+hP27OGpUnQKyKUQHkmltEVT8P87ja52rNbR7fXSaXZkH3u9xWR8AgbeH6N/ZWTtvg9IQbXagI+oMJSpQj47ODooBRQP2wEtjuadgRiNqEvBB08IGE/C4kJvrUIyp40fQgwo2kYrghlvdm+ToYOK1R14y+a8oMhjTwQ0ZYwJMKRL99y+l5ORgDdCzI1RvHDleqJ9gc1g4QKBrNClnBePNEVFAMyYtFM+jvrZtdSwnEApXMRM7YiIpYTp7f7AnuLaEP42Q5/apkwJErmOX68GWXJmTwu5Rb+scMxNlIl73rbYHq+QBRzCRB4UkvCRGk2XHP8dgAA==";
@@ -1 +1 @@
1
- export declare const data = "tar.br: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";
1
+ export declare const data = "tar.br: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";