repopo 0.10.0 → 0.13.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 (340) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/README.md +76 -77
  3. package/THIRD-PARTY-LICENSES.txt +232 -14
  4. package/bin/dev.js +5 -1
  5. package/esm/adapters/fluidFramework.d.ts +13 -9
  6. package/esm/adapters/fluidFramework.d.ts.map +1 -1
  7. package/esm/adapters/fluidFramework.js +20 -43
  8. package/esm/adapters/fluidFramework.js.map +1 -1
  9. package/esm/api.d.ts +64 -1
  10. package/esm/api.d.ts.map +1 -1
  11. package/esm/api.js +17 -1
  12. package/esm/api.js.map +1 -1
  13. package/esm/baseCommand.d.ts +1 -1
  14. package/esm/baseCommand.d.ts.map +1 -1
  15. package/esm/baseCommand.js +7 -10
  16. package/esm/baseCommand.js.map +1 -1
  17. package/esm/commands/check-native.d.ts +25 -0
  18. package/esm/commands/check-native.d.ts.map +1 -0
  19. package/esm/commands/check-native.js +156 -0
  20. package/esm/commands/check-native.js.map +1 -0
  21. package/esm/commands/check.d.ts +7 -34
  22. package/esm/commands/check.d.ts.map +1 -1
  23. package/esm/commands/check.js +76 -265
  24. package/esm/commands/check.js.map +1 -1
  25. package/esm/commands/list.d.ts.map +1 -1
  26. package/esm/commands/list.js +6 -6
  27. package/esm/commands/list.js.map +1 -1
  28. package/esm/concurrency.d.ts +3 -0
  29. package/esm/concurrency.d.ts.map +1 -0
  30. package/esm/concurrency.js +8 -0
  31. package/esm/concurrency.js.map +1 -0
  32. package/esm/config.d.ts +5 -39
  33. package/esm/config.d.ts.map +1 -1
  34. package/esm/config.js +3 -7
  35. package/esm/config.js.map +1 -1
  36. package/esm/context.d.ts +20 -3
  37. package/esm/context.d.ts.map +1 -1
  38. package/esm/context.js +18 -1
  39. package/esm/context.js.map +1 -1
  40. package/esm/executionContractError.d.ts +4 -0
  41. package/esm/executionContractError.d.ts.map +1 -0
  42. package/esm/executionContractError.js +4 -0
  43. package/esm/executionContractError.js.map +1 -0
  44. package/esm/fileCache.d.ts +12 -0
  45. package/esm/fileCache.d.ts.map +1 -0
  46. package/esm/fileCache.js +37 -0
  47. package/esm/fileCache.js.map +1 -0
  48. package/esm/filePaths.d.ts +2 -0
  49. package/esm/filePaths.d.ts.map +1 -0
  50. package/esm/filePaths.js +9 -0
  51. package/esm/filePaths.js.map +1 -0
  52. package/esm/generators.d.ts +0 -20
  53. package/esm/generators.d.ts.map +1 -1
  54. package/esm/generators.js.map +1 -1
  55. package/esm/index.d.ts +3 -11
  56. package/esm/index.d.ts.map +1 -1
  57. package/esm/index.js +3 -14
  58. package/esm/index.js.map +1 -1
  59. package/esm/makePolicy.d.ts +26 -79
  60. package/esm/makePolicy.d.ts.map +1 -1
  61. package/esm/makePolicy.js +51 -95
  62. package/esm/makePolicy.js.map +1 -1
  63. package/esm/perf.d.ts +10 -2
  64. package/esm/perf.d.ts.map +1 -1
  65. package/esm/perf.js +10 -9
  66. package/esm/perf.js.map +1 -1
  67. package/esm/policies/CargoLicenceValidated.d.ts +41 -0
  68. package/esm/policies/CargoLicenceValidated.d.ts.map +1 -0
  69. package/esm/policies/CargoLicenceValidated.js +47 -0
  70. package/esm/policies/CargoLicenceValidated.js.map +1 -0
  71. package/esm/policies/CargoLintsConfigured.d.ts +30 -0
  72. package/esm/policies/CargoLintsConfigured.d.ts.map +1 -0
  73. package/esm/policies/CargoLintsConfigured.js +65 -0
  74. package/esm/policies/CargoLintsConfigured.js.map +1 -0
  75. package/esm/policies/CargoLockPolicy.d.ts +34 -0
  76. package/esm/policies/CargoLockPolicy.d.ts.map +1 -0
  77. package/esm/policies/CargoLockPolicy.js +61 -0
  78. package/esm/policies/CargoLockPolicy.js.map +1 -0
  79. package/esm/policies/CargoTomlRequired.d.ts +34 -0
  80. package/esm/policies/CargoTomlRequired.d.ts.map +1 -0
  81. package/esm/policies/CargoTomlRequired.js +77 -0
  82. package/esm/policies/CargoTomlRequired.js.map +1 -0
  83. package/esm/policies/CargoTomlSorted.d.ts +20 -0
  84. package/esm/policies/CargoTomlSorted.d.ts.map +1 -0
  85. package/esm/policies/CargoTomlSorted.js +168 -0
  86. package/esm/policies/CargoTomlSorted.js.map +1 -0
  87. package/esm/policies/ConditionalScripts.d.ts +10 -8
  88. package/esm/policies/ConditionalScripts.d.ts.map +1 -1
  89. package/esm/policies/ConditionalScripts.js +27 -24
  90. package/esm/policies/ConditionalScripts.js.map +1 -1
  91. package/esm/policies/ExactScripts.d.ts +8 -6
  92. package/esm/policies/ExactScripts.d.ts.map +1 -1
  93. package/esm/policies/ExactScripts.js +18 -20
  94. package/esm/policies/ExactScripts.js.map +1 -1
  95. package/esm/policies/GleamDepVersions.d.ts +25 -0
  96. package/esm/policies/GleamDepVersions.d.ts.map +1 -0
  97. package/esm/policies/GleamDepVersions.js +67 -0
  98. package/esm/policies/GleamDepVersions.js.map +1 -0
  99. package/esm/policies/GleamDocExists.d.ts +24 -0
  100. package/esm/policies/GleamDocExists.d.ts.map +1 -0
  101. package/esm/policies/GleamDocExists.js +39 -0
  102. package/esm/policies/GleamDocExists.js.map +1 -0
  103. package/esm/policies/GleamInternalModulesConfigured.d.ts +21 -0
  104. package/esm/policies/GleamInternalModulesConfigured.d.ts.map +1 -0
  105. package/esm/policies/GleamInternalModulesConfigured.js +32 -0
  106. package/esm/policies/GleamInternalModulesConfigured.js.map +1 -0
  107. package/esm/policies/GleamLicenceConfigured.d.ts +29 -0
  108. package/esm/policies/GleamLicenceConfigured.d.ts.map +1 -0
  109. package/esm/policies/GleamLicenceConfigured.js +36 -0
  110. package/esm/policies/GleamLicenceConfigured.js.map +1 -0
  111. package/esm/policies/GleamManifestCommitted.d.ts +16 -0
  112. package/esm/policies/GleamManifestCommitted.d.ts.map +1 -0
  113. package/esm/policies/GleamManifestCommitted.js +27 -0
  114. package/esm/policies/GleamManifestCommitted.js.map +1 -0
  115. package/esm/policies/GleamMonorepoConsistency.d.ts +38 -0
  116. package/esm/policies/GleamMonorepoConsistency.d.ts.map +1 -0
  117. package/esm/policies/GleamMonorepoConsistency.js +74 -0
  118. package/esm/policies/GleamMonorepoConsistency.js.map +1 -0
  119. package/esm/policies/GleamNameRestrictions.d.ts +25 -0
  120. package/esm/policies/GleamNameRestrictions.d.ts.map +1 -0
  121. package/esm/policies/GleamNameRestrictions.js +44 -0
  122. package/esm/policies/GleamNameRestrictions.js.map +1 -0
  123. package/esm/policies/GleamNoPathDepsInPublished.d.ts +22 -0
  124. package/esm/policies/GleamNoPathDepsInPublished.d.ts.map +1 -0
  125. package/esm/policies/GleamNoPathDepsInPublished.js +43 -0
  126. package/esm/policies/GleamNoPathDepsInPublished.js.map +1 -0
  127. package/esm/policies/GleamPathDepsValid.d.ts +9 -0
  128. package/esm/policies/GleamPathDepsValid.d.ts.map +1 -0
  129. package/esm/policies/GleamPathDepsValid.js +59 -0
  130. package/esm/policies/GleamPathDepsValid.js.map +1 -0
  131. package/esm/policies/GleamProjectStructure.d.ts +32 -0
  132. package/esm/policies/GleamProjectStructure.d.ts.map +1 -0
  133. package/esm/policies/GleamProjectStructure.js +32 -0
  134. package/esm/policies/GleamProjectStructure.js.map +1 -0
  135. package/esm/policies/GleamSharedDependencyVersions.d.ts +37 -0
  136. package/esm/policies/GleamSharedDependencyVersions.d.ts.map +1 -0
  137. package/esm/policies/GleamSharedDependencyVersions.js +101 -0
  138. package/esm/policies/GleamSharedDependencyVersions.js.map +1 -0
  139. package/esm/policies/GleamTomlRequired.d.ts +30 -0
  140. package/esm/policies/GleamTomlRequired.d.ts.map +1 -0
  141. package/esm/policies/GleamTomlRequired.js +37 -0
  142. package/esm/policies/GleamTomlRequired.js.map +1 -0
  143. package/esm/policies/GleamTomlSorted.d.ts +20 -0
  144. package/esm/policies/GleamTomlSorted.d.ts.map +1 -0
  145. package/esm/policies/GleamTomlSorted.js +157 -0
  146. package/esm/policies/GleamTomlSorted.js.map +1 -0
  147. package/esm/policies/GleamVersionConstraint.d.ts +20 -0
  148. package/esm/policies/GleamVersionConstraint.d.ts.map +1 -0
  149. package/esm/policies/GleamVersionConstraint.js +68 -0
  150. package/esm/policies/GleamVersionConstraint.js.map +1 -0
  151. package/esm/policies/HtmlFileHeaders.d.ts +4 -2
  152. package/esm/policies/HtmlFileHeaders.d.ts.map +1 -1
  153. package/esm/policies/HtmlFileHeaders.js +2 -2
  154. package/esm/policies/HtmlFileHeaders.js.map +1 -1
  155. package/esm/policies/JsTsFileHeaders.d.ts +4 -2
  156. package/esm/policies/JsTsFileHeaders.d.ts.map +1 -1
  157. package/esm/policies/JsTsFileHeaders.js +1 -1
  158. package/esm/policies/JsTsFileHeaders.js.map +1 -1
  159. package/esm/policies/LicenseFileExists.d.ts +10 -4
  160. package/esm/policies/LicenseFileExists.d.ts.map +1 -1
  161. package/esm/policies/LicenseFileExists.js +27 -20
  162. package/esm/policies/LicenseFileExists.js.map +1 -1
  163. package/esm/policies/MutuallyExclusiveScripts.d.ts +8 -6
  164. package/esm/policies/MutuallyExclusiveScripts.d.ts.map +1 -1
  165. package/esm/policies/MutuallyExclusiveScripts.js +9 -13
  166. package/esm/policies/MutuallyExclusiveScripts.js.map +1 -1
  167. package/esm/policies/NoBuildDirectory.d.ts +15 -0
  168. package/esm/policies/NoBuildDirectory.d.ts.map +1 -0
  169. package/esm/policies/NoBuildDirectory.js +24 -0
  170. package/esm/policies/NoBuildDirectory.js.map +1 -0
  171. package/esm/policies/NoJsFileExtensions.d.ts +9 -3
  172. package/esm/policies/NoJsFileExtensions.d.ts.map +1 -1
  173. package/esm/policies/NoJsFileExtensions.js +9 -14
  174. package/esm/policies/NoJsFileExtensions.js.map +1 -1
  175. package/esm/policies/NoLargeBinaryFiles.d.ts +9 -4
  176. package/esm/policies/NoLargeBinaryFiles.d.ts.map +1 -1
  177. package/esm/policies/NoLargeBinaryFiles.js +10 -16
  178. package/esm/policies/NoLargeBinaryFiles.js.map +1 -1
  179. package/esm/policies/NoPrivateWorkspaceDependencies.d.ts +10 -6
  180. package/esm/policies/NoPrivateWorkspaceDependencies.d.ts.map +1 -1
  181. package/esm/policies/NoPrivateWorkspaceDependencies.js +12 -14
  182. package/esm/policies/NoPrivateWorkspaceDependencies.js.map +1 -1
  183. package/esm/policies/NoTargetArtifacts.d.ts +14 -0
  184. package/esm/policies/NoTargetArtifacts.d.ts.map +1 -0
  185. package/esm/policies/NoTargetArtifacts.js +37 -0
  186. package/esm/policies/NoTargetArtifacts.js.map +1 -0
  187. package/esm/policies/NoUnsafeWithoutJustification.d.ts +31 -0
  188. package/esm/policies/NoUnsafeWithoutJustification.d.ts.map +1 -0
  189. package/esm/policies/NoUnsafeWithoutJustification.js +79 -0
  190. package/esm/policies/NoUnsafeWithoutJustification.js.map +1 -0
  191. package/esm/policies/NoWildcardDependencies.d.ts +30 -0
  192. package/esm/policies/NoWildcardDependencies.d.ts.map +1 -0
  193. package/esm/policies/NoWildcardDependencies.js +83 -0
  194. package/esm/policies/NoWildcardDependencies.js.map +1 -0
  195. package/esm/policies/PackageAllowedScopes.d.ts +9 -5
  196. package/esm/policies/PackageAllowedScopes.d.ts.map +1 -1
  197. package/esm/policies/PackageAllowedScopes.js +15 -16
  198. package/esm/policies/PackageAllowedScopes.js.map +1 -1
  199. package/esm/policies/PackageEsmType.d.ts +7 -5
  200. package/esm/policies/PackageEsmType.d.ts.map +1 -1
  201. package/esm/policies/PackageEsmType.js +38 -36
  202. package/esm/policies/PackageEsmType.js.map +1 -1
  203. package/esm/policies/PackageFolderName.d.ts +8 -6
  204. package/esm/policies/PackageFolderName.d.ts.map +1 -1
  205. package/esm/policies/PackageFolderName.js +13 -16
  206. package/esm/policies/PackageFolderName.js.map +1 -1
  207. package/esm/policies/PackageJsonProperties.d.ts +5 -3
  208. package/esm/policies/PackageJsonProperties.d.ts.map +1 -1
  209. package/esm/policies/PackageJsonProperties.js +18 -21
  210. package/esm/policies/PackageJsonProperties.js.map +1 -1
  211. package/esm/policies/PackageJsonRepoDirectoryProperty.d.ts +2 -7
  212. package/esm/policies/PackageJsonRepoDirectoryProperty.d.ts.map +1 -1
  213. package/esm/policies/PackageJsonRepoDirectoryProperty.js +29 -42
  214. package/esm/policies/PackageJsonRepoDirectoryProperty.js.map +1 -1
  215. package/esm/policies/PackageJsonSorted.d.ts +2 -2
  216. package/esm/policies/PackageJsonSorted.d.ts.map +1 -1
  217. package/esm/policies/PackageJsonSorted.js +51 -31
  218. package/esm/policies/PackageJsonSorted.js.map +1 -1
  219. package/esm/policies/PackageLicense.d.ts +4 -4
  220. package/esm/policies/PackageLicense.d.ts.map +1 -1
  221. package/esm/policies/PackageLicense.js +32 -54
  222. package/esm/policies/PackageLicense.js.map +1 -1
  223. package/esm/policies/PackagePrivateField.d.ts +12 -8
  224. package/esm/policies/PackagePrivateField.d.ts.map +1 -1
  225. package/esm/policies/PackagePrivateField.js +34 -25
  226. package/esm/policies/PackagePrivateField.js.map +1 -1
  227. package/esm/policies/PackageReadme.d.ts +6 -5
  228. package/esm/policies/PackageReadme.d.ts.map +1 -1
  229. package/esm/policies/PackageReadme.js +24 -61
  230. package/esm/policies/PackageReadme.js.map +1 -1
  231. package/esm/policies/PackageScripts.d.ts +26 -22
  232. package/esm/policies/PackageScripts.d.ts.map +1 -1
  233. package/esm/policies/PackageScripts.js +42 -38
  234. package/esm/policies/PackageScripts.js.map +1 -1
  235. package/esm/policies/PackageTestScripts.d.ts +10 -6
  236. package/esm/policies/PackageTestScripts.d.ts.map +1 -1
  237. package/esm/policies/PackageTestScripts.js +17 -19
  238. package/esm/policies/PackageTestScripts.js.map +1 -1
  239. package/esm/policies/PublicApiDocumented.d.ts +21 -0
  240. package/esm/policies/PublicApiDocumented.d.ts.map +1 -0
  241. package/esm/policies/PublicApiDocumented.js +38 -0
  242. package/esm/policies/PublicApiDocumented.js.map +1 -0
  243. package/esm/policies/RequiredGitignorePatterns.d.ts +11 -4
  244. package/esm/policies/RequiredGitignorePatterns.d.ts.map +1 -1
  245. package/esm/policies/RequiredGitignorePatterns.js +29 -36
  246. package/esm/policies/RequiredGitignorePatterns.js.map +1 -1
  247. package/esm/policies/RequiredScripts.d.ts +9 -7
  248. package/esm/policies/RequiredScripts.d.ts.map +1 -1
  249. package/esm/policies/RequiredScripts.js +27 -26
  250. package/esm/policies/RequiredScripts.js.map +1 -1
  251. package/esm/policies/RustDocExists.d.ts +24 -0
  252. package/esm/policies/RustDocExists.d.ts.map +1 -0
  253. package/esm/policies/RustDocExists.js +49 -0
  254. package/esm/policies/RustDocExists.js.map +1 -0
  255. package/esm/policies/RustToolchainExists.d.ts +27 -0
  256. package/esm/policies/RustToolchainExists.d.ts.map +1 -0
  257. package/esm/policies/RustToolchainExists.js +28 -0
  258. package/esm/policies/RustToolchainExists.js.map +1 -0
  259. package/esm/policies/RustfmtConfigExists.d.ts +27 -0
  260. package/esm/policies/RustfmtConfigExists.d.ts.map +1 -0
  261. package/esm/policies/RustfmtConfigExists.js +28 -0
  262. package/esm/policies/RustfmtConfigExists.js.map +1 -0
  263. package/esm/policies/ScriptContains.d.ts +9 -7
  264. package/esm/policies/ScriptContains.d.ts.map +1 -1
  265. package/esm/policies/ScriptContains.js +9 -13
  266. package/esm/policies/ScriptContains.js.map +1 -1
  267. package/esm/policies/SharedDependencyVersions.d.ts +29 -0
  268. package/esm/policies/SharedDependencyVersions.d.ts.map +1 -0
  269. package/esm/policies/SharedDependencyVersions.js +143 -0
  270. package/esm/policies/SharedDependencyVersions.js.map +1 -0
  271. package/esm/policies/WorkspaceInheritance.d.ts +31 -0
  272. package/esm/policies/WorkspaceInheritance.d.ts.map +1 -0
  273. package/esm/policies/WorkspaceInheritance.js +93 -0
  274. package/esm/policies/WorkspaceInheritance.js.map +1 -0
  275. package/esm/policies/WorkspaceMembersValid.d.ts +27 -0
  276. package/esm/policies/WorkspaceMembersValid.d.ts.map +1 -0
  277. package/esm/policies/WorkspaceMembersValid.js +87 -0
  278. package/esm/policies/WorkspaceMembersValid.js.map +1 -0
  279. package/esm/policies/constants.d.ts +8 -0
  280. package/esm/policies/constants.d.ts.map +1 -1
  281. package/esm/policies/constants.js +9 -1
  282. package/esm/policies/constants.js.map +1 -1
  283. package/esm/policies.d.ts +43 -5
  284. package/esm/policies.d.ts.map +1 -1
  285. package/esm/policies.js +63 -6
  286. package/esm/policies.js.map +1 -1
  287. package/esm/policy.d.ts +65 -269
  288. package/esm/policy.d.ts.map +1 -1
  289. package/esm/policy.js +1 -122
  290. package/esm/policy.js.map +1 -1
  291. package/esm/policyDefiners/defineCargoPolicy.d.ts +82 -0
  292. package/esm/policyDefiners/defineCargoPolicy.d.ts.map +1 -0
  293. package/esm/policyDefiners/defineCargoPolicy.js +42 -0
  294. package/esm/policyDefiners/defineCargoPolicy.js.map +1 -0
  295. package/esm/policyDefiners/defineFileHeaderPolicy.d.ts +27 -14
  296. package/esm/policyDefiners/defineFileHeaderPolicy.d.ts.map +1 -1
  297. package/esm/policyDefiners/defineFileHeaderPolicy.js +19 -39
  298. package/esm/policyDefiners/defineFileHeaderPolicy.js.map +1 -1
  299. package/esm/policyDefiners/defineGleamPolicy.d.ts +81 -0
  300. package/esm/policyDefiners/defineGleamPolicy.d.ts.map +1 -0
  301. package/esm/policyDefiners/defineGleamPolicy.js +42 -0
  302. package/esm/policyDefiners/defineGleamPolicy.js.map +1 -0
  303. package/esm/policyDefiners/definePackagePolicy.d.ts +24 -13
  304. package/esm/policyDefiners/definePackagePolicy.d.ts.map +1 -1
  305. package/esm/policyDefiners/definePackagePolicy.js +9 -32
  306. package/esm/policyDefiners/definePackagePolicy.js.map +1 -1
  307. package/esm/policyDefiners/spdxValidator.d.ts +66 -0
  308. package/esm/policyDefiners/spdxValidator.d.ts.map +1 -0
  309. package/esm/policyDefiners/spdxValidator.js +139 -0
  310. package/esm/policyDefiners/spdxValidator.js.map +1 -0
  311. package/esm/policyDefiners/tomlParser.d.ts +8 -0
  312. package/esm/policyDefiners/tomlParser.d.ts.map +1 -0
  313. package/esm/policyDefiners/tomlParser.js +17 -0
  314. package/esm/policyDefiners/tomlParser.js.map +1 -0
  315. package/esm/policyExecution.d.ts +19 -0
  316. package/esm/policyExecution.d.ts.map +1 -0
  317. package/esm/policyExecution.js +224 -0
  318. package/esm/policyExecution.js.map +1 -0
  319. package/esm/repositoryFiles.d.ts +4 -0
  320. package/esm/repositoryFiles.d.ts.map +1 -0
  321. package/esm/repositoryFiles.js +8 -0
  322. package/esm/repositoryFiles.js.map +1 -0
  323. package/esm/runner.d.ts +85 -0
  324. package/esm/runner.d.ts.map +1 -0
  325. package/esm/runner.js +189 -0
  326. package/esm/runner.js.map +1 -0
  327. package/esm/settlePolicyPromise.d.ts +4 -0
  328. package/esm/settlePolicyPromise.d.ts.map +1 -0
  329. package/esm/settlePolicyPromise.js +10 -0
  330. package/esm/settlePolicyPromise.js.map +1 -0
  331. package/esm/tsdoc-metadata.json +1 -1
  332. package/esm/utils/safePaths.d.ts +9 -0
  333. package/esm/utils/safePaths.d.ts.map +1 -0
  334. package/esm/utils/safePaths.js +40 -0
  335. package/esm/utils/safePaths.js.map +1 -0
  336. package/oclif.manifest.json +117 -3
  337. package/package.json +66 -36
  338. package/scripts/benchmark.mjs +341 -0
  339. package/scripts/postinstall.mjs +154 -0
  340. package/sidecar/sidecar.mjs +399 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,118 @@
1
1
  # repopo
2
2
 
3
+ ## 0.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Introduce a shared API for file and repository policies, with consistent check results and fix status reporting. _[`#811`](https://github.com/tylerbutler/tools-monorepo/pull/811) [`d76e9e7`](https://github.com/tylerbutler/tools-monorepo/commit/d76e9e72c8d75863a97517ca662001aa567207da) [@tylerbutler](https://github.com/tylerbutler)_
8
+
9
+
10
+ **Breaking change:** Update custom policies and configurations together.
11
+ This change is released as a minor version while the packages are pre-1.0.
12
+ See the [migration guide](https://repopo.tylerbutler.com/usage/migration/) for replacements for removed APIs and complete examples.
13
+
14
+ Key migration steps for `repopo`:
15
+
16
+ - Define policies as objects with `satisfies FilePolicyDefinition<C>` or `satisfies RepositoryPolicyDefinition<C>` instead of policy classes or factory aliases. Use `definePackagePolicy` instead of `generatePackagePolicy`.
17
+ - Configure policies with `makePolicy(definition, { config, exclude, instanceId })` instead of positional configuration or a third argument. Instance exclusions use `exclude`; global `RepopoConfig.excludeFiles` remains supported. Repeated instances of the same policy need unique `instanceId` values.
18
+ - Mark required configuration with `requiresConfig: true` and supply complete settings or a complete default. Omitted or `undefined` configuration selects the default; explicit configuration replaces it without merging.
19
+ - Return arrays of findings instead of the previous success and failure results. An empty handler result passes. Findings use `message`, optional `manualFix`, and optional `fixStatus: "available" | "fixed" | "failed"`. Only `"fixed"` resolves a finding; `"fixed"` and `"failed"` are valid only in fix mode. Standalone resolvers must return the findings they update; returning `[]` does not resolve the original findings.
20
+ - Run policies with `runPolicies(options)` for Promise-based code or `new PolicyRunner(options).run()` for Effection code. Results separate `findings`, `errors`, `skipped`, and `perfStats`. Input and registration errors throw; policy execution errors are collected.
21
+ - Supply the full repository `inventory` or an async inventory loader when running repository policies programmatically. Use a loader to refresh the inventory after file fixes and between repository fixes. `LicenseFileExists` and `SharedDependencyVersions` now check the whole repository, even with an empty file selection or `--stdin`. Repository fixes can modify files outside the selected list.
22
+
23
+ In fix mode, an execution error stops later work on the affected file and skips repository policies, or stops later repository policies if the error occurs in that phase.
24
+ Completed writes are not rolled back.
25
+ Both `check` and `check-native` follow these rules.
26
+
27
+ Import the programmatic API from `repopo/api` and built-in policies from `repopo/policies`.
28
+ The root `repopo` entry point also exports the CLI's `run` function.
29
+
30
+ For `sort-tsconfig`, the exported `SortTsconfigsPolicy` is now a file policy definition.
31
+ Configure it with the same `makePolicy` options object.
32
+ If you call its handler directly, update your code to handle finding arrays and fix statuses.
33
+
34
+ For `remark-repopo-policies`, generated policy tables now read instance exclusions from `exclude`, so exclusion details remain visible after migration.
35
+
36
+ ### Patch Changes
37
+
38
+ - Speed up read-only checks by processing up to eight files at a time and avoiding repeated parsing of `package.json`, `Cargo.toml`, and `gleam.toml` files. _[`#807`](https://github.com/tylerbutler/tools-monorepo/pull/807) [`5e6c97b`](https://github.com/tylerbutler/tools-monorepo/commit/5e6c97b9afa99c93b1728ee0e48b45fa0a130501) [@tylerbutler](https://github.com/tylerbutler)_
39
+
40
+ Each policy still receives an independent copy of the parsed data.
41
+
42
+ Set the file limit with `--concurrency` on `repopo check` or `repopo check-native`, or with `PolicyRunnerOptions.concurrency` in the programmatic API.
43
+ Use `--concurrency 1` for custom policies that must process files one at a time.
44
+ Automatic fixes still run one at a time and read fresh file contents.
45
+ - Correct the reported file counts so each file that passes global exclusions is counted once, regardless of how many policies run on it. _[`#779`](https://github.com/tylerbutler/tools-monorepo/pull/779) [`ca340db`](https://github.com/tylerbutler/tools-monorepo/commit/ca340dbefce4e967ecf73a043207ec13b0651213) [@tylerbutler](https://github.com/tylerbutler)_
46
+
47
+ Ignore empty entries in file lists from Git and `--stdin`, so blank records do not become file paths.
48
+ - Show a policy's manual fix instructions when `repopo check` or `repopo check-native` reports an unresolved violation, including after a failed automatic fix. _[`#803`](https://github.com/tylerbutler/tools-monorepo/pull/803) [`c401c9c`](https://github.com/tylerbutler/tools-monorepo/commit/c401c9c7ab783222afac4df6de0b421dbe215093) [@tylerbutler](https://github.com/tylerbutler)_
49
+
50
+ If the automatic fixer does not provide instructions, keep the policy's original guidance.
51
+ Do not show manual fix instructions for violations that were successfully fixed.
52
+ - Reject file paths that resolve outside the repository root in `repopo check`, including paths supplied with `--stdin`. _[`#665`](https://github.com/tylerbutler/tools-monorepo/pull/665) [`1333d28`](https://github.com/tylerbutler/tools-monorepo/commit/1333d287abdee51a01a22540914600877fe8f557) [@tylerbutler](https://github.com/tylerbutler)_
53
+
54
+ Apply the same validation to package and file-header policy helpers, so these checks and fixes reject paths such as `../outside.txt`.
55
+
56
+ ## 0.12.0
57
+
58
+ ### Minor Changes
59
+
60
+ - Distinguish duplicate configured policy instances in exclusions, diagnostics, results, and performance metrics. _[`#783`](https://github.com/tylerbutler/tools-monorepo/pull/783) [`da9f08b`](https://github.com/tylerbutler/tools-monorepo/commit/da9f08bbb90cad92f7419c474a43741eef5d3c2a) [@tylerbutler](https://github.com/tylerbutler)_
61
+
62
+ Duplicate instances must now set a unique `instanceId` in the `policy()` options.
63
+
64
+ ### Patch Changes
65
+
66
+ - Fix policy checks and automatic fixes: _[`#791`](https://github.com/tylerbutler/tools-monorepo/pull/791) [`9236dae`](https://github.com/tylerbutler/tools-monorepo/commit/9236dae487eef8d97c8c5974d3e58cf5338cac66) [@tylerbutler](https://github.com/tylerbutler)_
67
+ - Run same-file fixers in configuration order to prevent lost edits.
68
+ - Validate configured header text, avoid duplicate headers, and apply HTML headers to HTML files.
69
+ - Replace verbatim package.json arrays instead of appending entries.
70
+ - Check Cargo workspace members selected by globs and honor workspace exclusions.
71
+ - Preserve Git filenames that contain Unicode, tabs, or newlines in both engines.
72
+ - Preserve legacy fix results and apply default policies when a native configuration omits `policies`.
73
+
74
+ ## 0.11.1
75
+
76
+ ### Patch Changes
77
+
78
+ - Make policy and exclusion regular-expression matching deterministic for global and sticky flags. _[`#778`](https://github.com/tylerbutler/tools-monorepo/pull/778) [`b263d07`](https://github.com/tylerbutler/tools-monorepo/commit/b263d07c531baf032f5f8a75444971b91c55f2ab) [@tylerbutler](https://github.com/tylerbutler)_
79
+ - Isolate policy run results and performance statistics across sequential and concurrent `PolicyRunner` invocations. _[`#782`](https://github.com/tylerbutler/tools-monorepo/pull/782) [`bd06230`](https://github.com/tylerbutler/tools-monorepo/commit/bd06230247adf908155ce2a9e35ba0ed5aebac3c) [@tylerbutler](https://github.com/tylerbutler)_
80
+ - Load the optional `sort-package-json` peer dependency only when the package sorting policy runs, allowing Repopo to load without it while preserving sorting support when installed. _[`#780`](https://github.com/tylerbutler/tools-monorepo/pull/780) [`0972973`](https://github.com/tylerbutler/tools-monorepo/commit/0972973fa9df873d3dde101836adb9ff9196b8f8) [@tylerbutler](https://github.com/tylerbutler)_
81
+ - Resolve built-in policy filesystem operations from the repository root when policy file paths are repository-relative. _[`#784`](https://github.com/tylerbutler/tools-monorepo/pull/784) [`fe789fd`](https://github.com/tylerbutler/tools-monorepo/commit/fe789fd4cb33fcab19a63ad2f132b5d91c8a0c73) [@tylerbutler](https://github.com/tylerbutler)_
82
+ - Report unexpected policy execution errors for the affected file and continue checking remaining files. _[`#781`](https://github.com/tylerbutler/tools-monorepo/pull/781) [`32f5afe`](https://github.com/tylerbutler/tools-monorepo/commit/32f5afee62c6ba732650ca23f1669e0c2b2c73df) [@tylerbutler](https://github.com/tylerbutler)_
83
+
84
+ <details><summary>Updated 1 dependency</summary>
85
+
86
+ <small>
87
+
88
+ [`dd64d1d`](https://github.com/tylerbutler/tools-monorepo/commit/dd64d1da4f10d6793af9a270216b296edee884a6)
89
+
90
+ </small>
91
+
92
+ - `@tylerbu/cli-api@0.11.0`
93
+
94
+ </details>
95
+
96
+ ## 0.11.0
97
+
98
+ ### Minor Changes
99
+
100
+ - Add experimental `check-native` command powered by a Rust core engine for significantly faster policy checking (up to 1.5x faster than the standard `check` command). The Rust engine handles file enumeration, pattern matching, and orchestration while delegating policy evaluation to a Node.js sidecar, so all existing configs and third-party policies work without changes. _[`#623`](https://github.com/tylerbutler/tools-monorepo/pull/623) [`dd15dc9`](https://github.com/tylerbutler/tools-monorepo/commit/dd15dc98c5c2a69c2a6f022a2a0c985f2c26dcf4) [@tylerbutler](https://github.com/tylerbutler)_
101
+
102
+ Also adds a simplified `policy()` function for defining policies and new focused script policies (`RequiredScripts`, `ExactScripts`, `MutuallyExclusiveScripts`, `ConditionalScripts`, `ScriptContains`) that replace the monolithic `PackageScripts` policy with more granular, composable alternatives.
103
+
104
+ - Add `CargoLicenceValidated` policy that validates SPDX licence expressions in `Cargo.toml` files using the `spdx-correct` package. Includes a shared SPDX validator (`spdxValidator`) reused by both Cargo and Gleam licence policies. _[`#654`](https://github.com/tylerbutler/tools-monorepo/pull/654) [`9deb6dc`](https://github.com/tylerbutler/tools-monorepo/commit/9deb6dcce769bbb25fd067f9668cf6031f3d3bc7) [@tylerbutler](https://github.com/tylerbutler)_
105
+ - Extract `PolicyRunner` class from `CheckPolicy` command to fix SRP violation. The new class encapsulates all policy execution logic (file iteration, exclusion checking, policy matching, handler execution, resolution attempts) and returns structured `PolicyRunResults` instead of producing side effects. `PolicyRunner` has no OCLIF dependencies and can be used programmatically. The `CheckPolicy` command is now a thin CLI wrapper handling only flag parsing, file collection, and result formatting. _[`#672`](https://github.com/tylerbutler/tools-monorepo/pull/672) [`5f5bdf9`](https://github.com/tylerbutler/tools-monorepo/commit/5f5bdf90883177258ae6cd2284515f0465347d31) [@tylerbutler](https://github.com/tylerbutler)_
106
+ - Add 15 Gleam language policies for enforcing project conventions, structure, dependency management, documentation, and monorepo consistency. Includes `defineGleamPolicy` helper and shared TOML parser infrastructure. _[`#654`](https://github.com/tylerbutler/tools-monorepo/pull/654) [`9deb6dc`](https://github.com/tylerbutler/tools-monorepo/commit/9deb6dcce769bbb25fd067f9668cf6031f3d3bc7) [@tylerbutler](https://github.com/tylerbutler)_
107
+ - Add 14 new Rust/Cargo.toml policies for enforcing best practices in Rust projects: _[`#654`](https://github.com/tylerbutler/tools-monorepo/pull/654) [`9deb6dc`](https://github.com/tylerbutler/tools-monorepo/commit/9deb6dcce769bbb25fd067f9668cf6031f3d3bc7) [@tylerbutler](https://github.com/tylerbutler)_
108
+ - **Cargo.toml**: `CargoTomlRequired`, `CargoTomlSorted`, `CargoLintsConfigured`
109
+ - **Project structure**: `RustToolchainExists`, `RustfmtConfigExists`, `CargoLockPolicy`, `NoTargetArtifacts`
110
+ - **Security**: `NoWildcardDependencies`, `NoUnsafeWithoutJustification`
111
+ - **Documentation**: `PublicApiDocumented`, `RustDocExists`
112
+ - **Workspace**: `WorkspaceMembersValid`, `SharedDependencyVersions`, `WorkspaceInheritance`
113
+
114
+ Also adds `defineCargoPolicy` helper for creating Cargo.toml-targeted policies, and `smol-toml` as an optional peer dependency for TOML parsing.
115
+
3
116
  ## 0.10.0
4
117
 
5
118
  ### Minor Changes
package/README.md CHANGED
@@ -3,100 +3,61 @@
3
3
  repopo is a tool to apply policies to the files in your git repo. You can think of it as a sort of lint tool for any
4
4
  file in your git repo, with a straightforward way to write your own policies.
5
5
 
6
+ **Documentation: <https://repopo.tylerbutler.com>**
7
+
6
8
  <!-- toc -->
7
9
  * [repopo - police the files in your git repo with extensible policies](#repopo---police-the-files-in-your-git-repo-with-extensible-policies)
8
- * [Configuring policies](#configuring-policies)
9
- * [Included policies](#included-policies)
10
- * [Policy generators](#policy-generators)
10
+ * [Quick start](#quick-start)
11
+ * [Documentation](#documentation)
11
12
  * [CLI Usage](#cli-usage)
12
13
  <!-- tocstop -->
13
14
 
14
- # Configuring policies
15
-
16
- Repopo and its policies can be configured in a `repopo.config.ts` (or `.cjs`, or `.mjs`) file in the root of the repo. Using a
17
- TypeScript configuration file is recommended.
18
-
19
- The policy config must export a default object of the type `PolicyConfig`.
20
-
21
- ## Excluding files from policy check
22
-
23
- By default, all files in the repo are checked. You can exclude files completely from the policy check by configuring the
24
- d `excludeFiles` setting. It should be an array of strings/regular expressions. Paths that match any of these
25
- expressions will be completely excluded from all policies.
26
-
27
- You can exclude files from individual policies as well by configuring the `excludeFiles` setting when calling
28
- `makePolicy`.
29
-
30
- ## Configuring individual policies
31
-
32
- Individual policies can be configured by passing configuration settings to a `PolicyDefinition` in `makePolicy`.
33
-
34
- # Included policies
35
-
36
- repopo includes the following policies. All of the included policies are enabled by default.
37
-
38
- ## HtmlFileHeaders and JsTsFileHeaders
39
-
40
- These policies set a common file header for JavaScript/TypeScript and HTML files.
41
-
42
- ### Configuration
43
-
44
- TODO
45
-
46
- ## NoJsFileExtensions
47
-
48
- The NoJsFileExtensions policy checks for JavaScript source files that just use the .js file extension. Such files may be
49
- interpreted by Node.js as either CommonJS or ESM based on the `type` field in the nearest package.json file. This can
50
- create unexpected behavior for JS files; changing the package.json nearest to one will change how the JS is processed by
51
- node. Using explicit file extensions reduces ambiguity and ensures a CJS file isn't suddenly treated like an ESM file.
15
+ # Quick start
52
16
 
53
- ## PackageJsonProperties
17
+ Install repopo as a dev dependency:
54
18
 
55
- The PackageJsonProperties policy is used to enforce fields in package.json files across the repo.
56
-
57
- ### Configuration
19
+ ```bash
20
+ pnpm add -D repopo
21
+ ```
58
22
 
59
- The `verbatim` setting requires that all the configured fields in package.json match the values in the configuration.
23
+ Create `repopo.config.ts` in the root of the repo:
60
24
 
61
25
  ```ts
62
- import type { PolicyConfig } from "@tylerbu/repopo";
63
- const config: PolicyConfig = {
64
- policySettings: {
65
- PackageJsonProperties: {
66
- // This setting will force all package.json files to contain these fields with the exact configured values.
67
- verbatim: {
68
- license: "MIT",
69
- author: "Tyler Butler <tyler@tylerbutler.com>",
70
- bugs: "https://github.com/tylerbutler/tools-monorepo/issues",
71
- repository: {
72
- type: "git",
73
- url: "git+https://github.com/tylerbutler/tools-monorepo.git",
74
- }
75
- }
76
- }
77
- }
78
- };
26
+ import { makePolicy, type RepopoConfig } from "repopo";
27
+ import { NoJsFileExtensions, PackageJsonProperties } from "repopo/policies";
28
+
29
+ export default {
30
+ policies: [
31
+ makePolicy(NoJsFileExtensions, { exclude: ["^bin/"] }),
32
+ makePolicy(PackageJsonProperties, {
33
+ config: { verbatim: { license: "MIT" } },
34
+ }),
35
+ ],
36
+ } satisfies RepopoConfig;
79
37
  ```
80
38
 
81
- ## PackageJsonRepoDirectoryProperty
82
-
83
- A RepoPolicy that checks that the `repository.directory` property in package.json is set correctly. If the repository
84
- field is a string instead of an object the package will be ignored.
85
-
86
- # Policy generators
39
+ Then check the repo, and fix what can be fixed automatically:
87
40
 
88
- There are some filetypes that often have policies applied to them, like package.json. You can use the policy generator
89
- functions to generate policies for those filetypes. Using the generators is not required; they simply reduce the amount
90
- of boilerplate code you have to write for a policy.
41
+ ```bash
42
+ repopo check
43
+ repopo check --fix
44
+ ```
91
45
 
92
- ## generatePackagePolicy
46
+ # Documentation
93
47
 
94
- Use `generatePackagePolicy` to generate policies for package.json files.
48
+ - [Configuration](https://repopo.tylerbutler.com/usage/config/): choosing policies, policy options, and file exclusions
49
+ - [Built-in policies](https://repopo.tylerbutler.com/policies/built-in/): every included policy and its options
50
+ - [Custom policies](https://repopo.tylerbutler.com/policies/custom/): writing file and repository policies
51
+ - [Programmatic API](https://repopo.tylerbutler.com/usage/programmatic-api/): running policies with `runPolicies` and `PolicyRunner`
52
+ - [Migrating to the 1.0 API](https://repopo.tylerbutler.com/usage/migration/): breaking changes to configuration, policy results, and runners
53
+ - [Benchmarking](https://repopo.tylerbutler.com/usage/benchmarking/): comparing the TypeScript and Rust engines
54
+ - [API reference](https://repopo.tylerbutler.com/api/readme/)
95
55
 
96
56
  # CLI Usage
97
57
 
98
58
  <!-- commands -->
99
59
  * [`repopo check`](#repopo-check)
60
+ * [`repopo check-native`](#repopo-check-native)
100
61
  * [`repopo list`](#repopo-list)
101
62
 
102
63
  ## `repopo check`
@@ -105,19 +66,57 @@ Checks and applies policies to the files in the repository.
105
66
 
106
67
  ```
107
68
  USAGE
108
- $ repopo check [-v | --quiet] [-f] [--stdin]
69
+ $ repopo check [-v | --quiet] [--concurrency <value>] [-f] [--stdin]
109
70
 
110
71
  FLAGS
111
- -f, --fix Fix errors if possible.
112
- --stdin Read list of files from stdin.
72
+ -f, --fix Fix errors if possible.
73
+ --concurrency=<value> [default: 8] Maximum concurrent files in read-only checks. Fixes remain sequential.
74
+ --stdin Read list of files from stdin.
113
75
 
114
76
  LOGGING FLAGS
115
77
  -v, --verbose Enable verbose logging.
116
78
  --quiet Disable all logging.
79
+
80
+ DESCRIPTION
81
+ Checks and applies policies to the files in the repository.
82
+
83
+ File policies check selected files. Repository policies always run with the full repository file inventory, including
84
+ with --stdin. With --fix, repository policies can modify files outside the stdin selection.
117
85
  ```
118
86
 
119
87
  _See code: [src/commands/check.ts](https://github.com/tylerbutler/tools-monorepo/blob/main/packages/repopo/src/commands/check.ts)_
120
88
 
89
+ ## `repopo check-native`
90
+
91
+ Checks and applies policies using the Rust engine.
92
+
93
+ ```
94
+ USAGE
95
+ $ repopo check-native [--concurrency <value>] [-f] [--stdin] [-v] [-q] [-c <value>] [--sidecar-path <value>]
96
+ [--binary-path <value>] [--runtime auto|node|bun]
97
+
98
+ FLAGS
99
+ -c, --config=<value> Path to the config file.
100
+ -f, --fix Fix errors if possible.
101
+ -q, --quiet Suppress all output except errors.
102
+ -v, --verbose Show verbose output including per-policy timing.
103
+ --binary-path=<value> [env: REPOPO_CORE_PATH] Path to the repopo-core Rust binary.
104
+ --concurrency=<value> [default: 8] Maximum concurrent files in read-only checks. Fixes remain sequential.
105
+ --runtime=<option> [env: REPOPO_RUNTIME] JS runtime for the sidecar process (auto, node, bun).
106
+ <options: auto|node|bun>
107
+ --sidecar-path=<value> [env: REPOPO_SIDECAR_PATH] Path to the Node.js sidecar script.
108
+ --stdin Read list of files from stdin.
109
+
110
+ DESCRIPTION
111
+ Checks and applies policies using the Rust engine.
112
+
113
+ Runs the Rust-based repopo-core engine with the Node.js sidecar. Rust handles file matching, scheduling and reporting;
114
+ the sidecar shares per-policy contracts with 'check'. Repository policies always run with the full repository
115
+ inventory, including with --stdin. With --fix, repository policies can modify files outside the stdin selection.
116
+ ```
117
+
118
+ _See code: [src/commands/check-native.ts](https://github.com/tylerbutler/tools-monorepo/blob/main/packages/repopo/src/commands/check-native.ts)_
119
+
121
120
  ## `repopo list`
122
121
 
123
122
  Lists the policies configured to run.
@@ -3,7 +3,7 @@ https://www.npmjs.com/package/generate-license-file
3
3
 
4
4
  The following npm package may be included in this product:
5
5
 
6
- - jsonfile@6.2.0
6
+ - jsonfile@6.2.1
7
7
 
8
8
  This package contains the following license:
9
9
 
@@ -27,7 +27,7 @@ OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHE
27
27
 
28
28
  The following npm package may be included in this product:
29
29
 
30
- - @rushstack/node-core-library@5.19.1
30
+ - @rushstack/node-core-library@5.25.1
31
31
 
32
32
  This package contains the following license:
33
33
 
@@ -60,7 +60,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
60
60
 
61
61
  The following npm package may be included in this product:
62
62
 
63
- - resolve-workspace-root@2.0.0
63
+ - resolve-workspace-root@2.0.1
64
64
 
65
65
  This package contains the following license:
66
66
 
@@ -90,7 +90,7 @@ Copyright (c) 2024-present Cedric van Putten <me@cedric.dev>
90
90
 
91
91
  The following npm package may be included in this product:
92
92
 
93
- - @fluid-tools/build-infrastructure@0.63.0
93
+ - @fluid-tools/build-infrastructure@0.68.0
94
94
 
95
95
  This package contains the following license:
96
96
 
@@ -118,6 +118,136 @@ SOFTWARE.
118
118
 
119
119
  -----------
120
120
 
121
+ The following npm package may be included in this product:
122
+
123
+ - type-fest@5.10.0
124
+
125
+ This package contains the following license:
126
+
127
+ Creative Commons Legal Code
128
+
129
+ CC0 1.0 Universal
130
+
131
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
132
+ LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
133
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
134
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
135
+ REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
136
+ PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
137
+ THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
138
+ HEREUNDER.
139
+
140
+ Statement of Purpose
141
+
142
+ The laws of most jurisdictions throughout the world automatically confer
143
+ exclusive Copyright and Related Rights (defined below) upon the creator
144
+ and subsequent owner(s) (each and all, an "owner") of an original work of
145
+ authorship and/or a database (each, a "Work").
146
+
147
+ Certain owners wish to permanently relinquish those rights to a Work for
148
+ the purpose of contributing to a commons of creative, cultural and
149
+ scientific works ("Commons") that the public can reliably and without fear
150
+ of later claims of infringement build upon, modify, incorporate in other
151
+ works, reuse and redistribute as freely as possible in any form whatsoever
152
+ and for any purposes, including without limitation commercial purposes.
153
+ These owners may contribute to the Commons to promote the ideal of a free
154
+ culture and the further production of creative, cultural and scientific
155
+ works, or to gain reputation or greater distribution for their Work in
156
+ part through the use and efforts of others.
157
+
158
+ For these and/or other purposes and motivations, and without any
159
+ expectation of additional consideration or compensation, the person
160
+ associating CC0 with a Work (the "Affirmer"), to the extent that he or she
161
+ is an owner of Copyright and Related Rights in the Work, voluntarily
162
+ elects to apply CC0 to the Work and publicly distribute the Work under its
163
+ terms, with knowledge of his or her Copyright and Related Rights in the
164
+ Work and the meaning and intended legal effect of CC0 on those rights.
165
+
166
+ 1. Copyright and Related Rights. A Work made available under CC0 may be
167
+ protected by copyright and related or neighboring rights ("Copyright and
168
+ Related Rights"). Copyright and Related Rights include, but are not
169
+ limited to, the following:
170
+
171
+ i. the right to reproduce, adapt, distribute, perform, display,
172
+ communicate, and translate a Work;
173
+ ii. moral rights retained by the original author(s) and/or performer(s);
174
+ iii. publicity and privacy rights pertaining to a person's image or
175
+ likeness depicted in a Work;
176
+ iv. rights protecting against unfair competition in regards to a Work,
177
+ subject to the limitations in paragraph 4(a), below;
178
+ v. rights protecting the extraction, dissemination, use and reuse of data
179
+ in a Work;
180
+ vi. database rights (such as those arising under Directive 96/9/EC of the
181
+ European Parliament and of the Council of 11 March 1996 on the legal
182
+ protection of databases, and under any national implementation
183
+ thereof, including any amended or successor version of such
184
+ directive); and
185
+ vii. other similar, equivalent or corresponding rights throughout the
186
+ world based on applicable law or treaty, and any national
187
+ implementations thereof.
188
+
189
+ 2. Waiver. To the greatest extent permitted by, but not in contravention
190
+ of, applicable law, Affirmer hereby overtly, fully, permanently,
191
+ irrevocably and unconditionally waives, abandons, and surrenders all of
192
+ Affirmer's Copyright and Related Rights and associated claims and causes
193
+ of action, whether now known or unknown (including existing as well as
194
+ future claims and causes of action), in the Work (i) in all territories
195
+ worldwide, (ii) for the maximum duration provided by applicable law or
196
+ treaty (including future time extensions), (iii) in any current or future
197
+ medium and for any number of copies, and (iv) for any purpose whatsoever,
198
+ including without limitation commercial, advertising or promotional
199
+ purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
200
+ member of the public at large and to the detriment of Affirmer's heirs and
201
+ successors, fully intending that such Waiver shall not be subject to
202
+ revocation, rescission, cancellation, termination, or any other legal or
203
+ equitable action to disrupt the quiet enjoyment of the Work by the public
204
+ as contemplated by Affirmer's express Statement of Purpose.
205
+
206
+ 3. Public License Fallback. Should any part of the Waiver for any reason
207
+ be judged legally invalid or ineffective under applicable law, then the
208
+ Waiver shall be preserved to the maximum extent permitted taking into
209
+ account Affirmer's express Statement of Purpose. In addition, to the
210
+ extent the Waiver is so judged Affirmer hereby grants to each affected
211
+ person a royalty-free, non transferable, non sublicensable, non exclusive,
212
+ irrevocable and unconditional license to exercise Affirmer's Copyright and
213
+ Related Rights in the Work (i) in all territories worldwide, (ii) for the
214
+ maximum duration provided by applicable law or treaty (including future
215
+ time extensions), (iii) in any current or future medium and for any number
216
+ of copies, and (iv) for any purpose whatsoever, including without
217
+ limitation commercial, advertising or promotional purposes (the
218
+ "License"). The License shall be deemed effective as of the date CC0 was
219
+ applied by Affirmer to the Work. Should any part of the License for any
220
+ reason be judged legally invalid or ineffective under applicable law, such
221
+ partial invalidity or ineffectiveness shall not invalidate the remainder
222
+ of the License, and in such case Affirmer hereby affirms that he or she
223
+ will not (i) exercise any of his or her remaining Copyright and Related
224
+ Rights in the Work or (ii) assert any associated claims and causes of
225
+ action with respect to the Work, in either case contrary to Affirmer's
226
+ express Statement of Purpose.
227
+
228
+ 4. Limitations and Disclaimers.
229
+
230
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
231
+ surrendered, licensed or otherwise affected by this document.
232
+ b. Affirmer offers the Work as-is and makes no representations or
233
+ warranties of any kind concerning the Work, express, implied,
234
+ statutory or otherwise, including without limitation warranties of
235
+ title, merchantability, fitness for a particular purpose, non
236
+ infringement, or the absence of latent or other defects, accuracy, or
237
+ the present or absence of errors, whether or not discoverable, all to
238
+ the greatest extent permissible under applicable law.
239
+ c. Affirmer disclaims responsibility for clearing rights of other persons
240
+ that may apply to the Work or any use thereof, including without
241
+ limitation any person's Copyright and Related Rights in the Work.
242
+ Further, Affirmer disclaims responsibility for obtaining any necessary
243
+ consents, permissions or other rights required for any use of the
244
+ Work.
245
+ d. Affirmer understands and acknowledges that Creative Commons is not a
246
+ party to this document and has no duty or obligation with respect to
247
+ this CC0 or use of the Work.
248
+
249
+ -----------
250
+
121
251
  The following npm package may be included in this product:
122
252
 
123
253
  - picocolors@1.1.1
@@ -142,12 +272,11 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
142
272
 
143
273
  -----------
144
274
 
145
- The following npm packages may be included in this product:
275
+ The following npm package may be included in this product:
146
276
 
147
- - effection@4.0.0
148
- - simple-git@3.30.0
277
+ - effection@4.2.0
149
278
 
150
- These packages each contain the following license:
279
+ This package contains the following license:
151
280
 
152
281
  MIT
153
282
 
@@ -155,8 +284,8 @@ MIT
155
284
 
156
285
  The following npm packages may be included in this product:
157
286
 
158
- - @oclif/core@4.8.0
159
- - @oclif/plugin-help@6.2.36
287
+ - @oclif/core@5.1.9
288
+ - @oclif/plugin-help@7.0.5
160
289
 
161
290
  These packages each contain the following license:
162
291
 
@@ -186,7 +315,7 @@ SOFTWARE.
186
315
 
187
316
  The following npm package may be included in this product:
188
317
 
189
- - microdiff@1.5.0
318
+ - microdiff@1.6.0
190
319
 
191
320
  This package contains the following license:
192
321
 
@@ -216,7 +345,37 @@ SOFTWARE.
216
345
 
217
346
  The following npm package may be included in this product:
218
347
 
219
- - tinyglobby@0.2.15
348
+ - lilconfig@3.1.4
349
+
350
+ This package contains the following license:
351
+
352
+ MIT License
353
+
354
+ Copyright (c) 2022 Anton Kastritskiy
355
+
356
+ Permission is hereby granted, free of charge, to any person obtaining a copy
357
+ of this software and associated documentation files (the "Software"), to deal
358
+ in the Software without restriction, including without limitation the rights
359
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
360
+ copies of the Software, and to permit persons to whom the Software is
361
+ furnished to do so, subject to the following conditions:
362
+
363
+ The above copyright notice and this permission notice shall be included in all
364
+ copies or substantial portions of the Software.
365
+
366
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
367
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
368
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
369
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
370
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
371
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
372
+ SOFTWARE.
373
+
374
+ -----------
375
+
376
+ The following npm package may be included in this product:
377
+
378
+ - tinyglobby@0.2.17
220
379
 
221
380
  This package contains the following license:
222
381
 
@@ -246,7 +405,7 @@ SOFTWARE.
246
405
 
247
406
  The following npm package may be included in this product:
248
407
 
249
- - defu@6.1.4
408
+ - defu@6.1.7
250
409
 
251
410
  This package contains the following license:
252
411
 
@@ -411,7 +570,37 @@ DEALINGS IN THE SOFTWARE.
411
570
 
412
571
  The following npm package may be included in this product:
413
572
 
414
- - picomatch@4.0.3
573
+ - @tylerbu/lilconfig-loader-ts@0.1.3
574
+
575
+ This package contains the following license:
576
+
577
+ MIT License
578
+
579
+ Copyright (c) Tyler Butler <tyler@tylerbutler.com>
580
+
581
+ Permission is hereby granted, free of charge, to any person obtaining a copy
582
+ of this software and associated documentation files (the "Software"), to deal
583
+ in the Software without restriction, including without limitation the rights
584
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
585
+ copies of the Software, and to permit persons to whom the Software is
586
+ furnished to do so, subject to the following conditions:
587
+
588
+ The above copyright notice and this permission notice shall be included in all
589
+ copies or substantial portions of the Software.
590
+
591
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
592
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
593
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
594
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
595
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
596
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
597
+ SOFTWARE.
598
+
599
+ -----------
600
+
601
+ The following npm package may be included in this product:
602
+
603
+ - picomatch@4.0.7
415
604
 
416
605
  This package contains the following license:
417
606
 
@@ -439,5 +628,34 @@ THE SOFTWARE.
439
628
 
440
629
  -----------
441
630
 
631
+ The following npm package may be included in this product:
632
+
633
+ - simple-git@4.0.2
634
+
635
+ This package contains the following license:
636
+
637
+ The MIT License (MIT)
638
+
639
+ Copyright (c) 2025 Steve King
640
+
641
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
642
+ this software and associated documentation files (the "Software"), to deal in
643
+ the Software without restriction, including without limitation the rights to
644
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
645
+ the Software, and to permit persons to whom the Software is furnished to do so,
646
+ subject to the following conditions:
647
+
648
+ The above copyright notice and this permission notice shall be included in all
649
+ copies or substantial portions of the Software.
650
+
651
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
652
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
653
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
654
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
655
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
656
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
657
+
658
+ -----------
659
+
442
660
  This file was generated with the generate-license-file npm package!
443
661
  https://www.npmjs.com/package/generate-license-file
package/bin/dev.js CHANGED
@@ -1,5 +1,9 @@
1
1
  #!/usr/bin/env -S node --loader ts-node/esm --no-warnings=ExperimentalWarning
2
2
 
3
- import { execute } from "@oclif/core";
3
+ import { execute, settings } from "@oclif/core";
4
+
5
+ if (process.argv[2]?.startsWith("snapshot:")) {
6
+ settings.enableAutoTranspile = false;
7
+ }
4
8
 
5
9
  await execute({ development: true, dir: import.meta.url });