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/esm/policies.d.ts CHANGED
@@ -1,16 +1,46 @@
1
+ /**
2
+ * Built-in file and repository policies and their configuration types.
3
+ *
4
+ * Use `makePolicy()` from `repopo` or `repopo/api` to configure these definitions.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export { CargoLicenceValidated, type CargoLicenceValidatedConfig, } from "./policies/CargoLicenceValidated.js";
9
+ export { CargoLintsConfigured, type CargoLintsConfiguredConfig, } from "./policies/CargoLintsConfigured.js";
10
+ export { CargoLockPolicy, type CargoLockPolicyConfig, } from "./policies/CargoLockPolicy.js";
11
+ export { CargoTomlRequired, type CargoTomlRequiredConfig, } from "./policies/CargoTomlRequired.js";
12
+ export { CargoTomlSorted, type CargoTomlSortedConfig, } from "./policies/CargoTomlSorted.js";
1
13
  export { type ConditionalScriptEntry, type ConditionalScriptRule, ConditionalScripts, type ConditionalScriptsConfig, } from "./policies/ConditionalScripts.js";
2
14
  export { ExactScripts, type ExactScriptsConfig, } from "./policies/ExactScripts.js";
15
+ export { GleamDepVersions, type GleamDepVersionsConfig, } from "./policies/GleamDepVersions.js";
16
+ export { GleamDocExists, type GleamDocExistsConfig, } from "./policies/GleamDocExists.js";
17
+ export { GleamInternalModulesConfigured, type GleamInternalModulesConfiguredConfig, } from "./policies/GleamInternalModulesConfigured.js";
18
+ export { GleamLicenceConfigured, type GleamLicenceConfiguredConfig, } from "./policies/GleamLicenceConfigured.js";
19
+ export { GleamManifestCommitted } from "./policies/GleamManifestCommitted.js";
20
+ export { GleamMonorepoConsistency, type GleamMonorepoConsistencyConfig, } from "./policies/GleamMonorepoConsistency.js";
21
+ export { GleamNameRestrictions, type GleamNameRestrictionsConfig, } from "./policies/GleamNameRestrictions.js";
22
+ export { GleamNoPathDepsInPublished, type GleamNoPathDepsInPublishedConfig, } from "./policies/GleamNoPathDepsInPublished.js";
23
+ export { GleamPathDepsValid } from "./policies/GleamPathDepsValid.js";
24
+ export { GleamProjectStructure, type GleamProjectStructureConfig, } from "./policies/GleamProjectStructure.js";
25
+ export { GleamSharedDependencyVersions, type GleamSharedDependencyVersionsConfig, } from "./policies/GleamSharedDependencyVersions.js";
26
+ export { GleamTomlRequired, type GleamTomlRequiredConfig, } from "./policies/GleamTomlRequired.js";
27
+ export { GleamTomlSorted, type GleamTomlSortedConfig, } from "./policies/GleamTomlSorted.js";
28
+ export { GleamVersionConstraint, type GleamVersionConstraintConfig, } from "./policies/GleamVersionConstraint.js";
3
29
  export { HtmlFileHeaders } from "./policies/HtmlFileHeaders.js";
4
30
  export { JsTsFileHeaders } from "./policies/JsTsFileHeaders.js";
5
- export { LicenseFileExists } from "./policies/LicenseFileExists.js";
31
+ export { LicenseFileExists, type LicenseFileExistsSettings, } from "./policies/LicenseFileExists.js";
6
32
  export { MutuallyExclusiveScripts, type MutuallyExclusiveScriptsConfig, } from "./policies/MutuallyExclusiveScripts.js";
33
+ export { NoBuildDirectory } from "./policies/NoBuildDirectory.js";
7
34
  export { NoJsFileExtensions } from "./policies/NoJsFileExtensions.js";
8
- export { NoLargeBinaryFiles } from "./policies/NoLargeBinaryFiles.js";
9
- export { NoPrivateWorkspaceDependencies } from "./policies/NoPrivateWorkspaceDependencies.js";
35
+ export { NoLargeBinaryFiles, type NoLargeBinaryFilesSettings, } from "./policies/NoLargeBinaryFiles.js";
36
+ export { NoPrivateWorkspaceDependencies, type NoPrivateWorkspaceDependenciesSettings, } from "./policies/NoPrivateWorkspaceDependencies.js";
37
+ export { NoTargetArtifacts } from "./policies/NoTargetArtifacts.js";
38
+ export { NoUnsafeWithoutJustification, type NoUnsafeWithoutJustificationConfig, } from "./policies/NoUnsafeWithoutJustification.js";
39
+ export { NoWildcardDependencies, type NoWildcardDependenciesConfig, } from "./policies/NoWildcardDependencies.js";
10
40
  export { PackageAllowedScopes, type PackageAllowedScopesConfig, } from "./policies/PackageAllowedScopes.js";
11
41
  export { PackageEsmType, type PackageEsmTypeConfig, } from "./policies/PackageEsmType.js";
12
42
  export { PackageFolderName, type PackageFolderNameConfig, } from "./policies/PackageFolderName.js";
13
- export { PackageJsonProperties } from "./policies/PackageJsonProperties.js";
43
+ export { PackageJsonProperties, type PackageJsonPropertiesSettings, } from "./policies/PackageJsonProperties.js";
14
44
  export { PackageJsonRepoDirectoryProperty } from "./policies/PackageJsonRepoDirectoryProperty.js";
15
45
  export { PackageJsonSorted } from "./policies/PackageJsonSorted.js";
16
46
  export { PackageLicense, type PackageLicenseSettings, } from "./policies/PackageLicense.js";
@@ -18,8 +48,16 @@ export { PackagePrivateField, type PackagePrivateFieldConfig, } from "./policies
18
48
  export { PackageReadme, type PackageReadmeSettings, } from "./policies/PackageReadme.js";
19
49
  export { type ConditionalScriptRule as LegacyConditionalScriptRule, PackageScripts, type PackageScriptsSettings, type RequiredScriptEntry as LegacyRequiredScriptEntry, type ScriptMustContainRule, } from "./policies/PackageScripts.js";
20
50
  export { PackageTestScripts, type PackageTestScriptsConfig, } from "./policies/PackageTestScripts.js";
21
- export { RequiredGitignorePatterns } from "./policies/RequiredGitignorePatterns.js";
51
+ export { PublicApiDocumented, type PublicApiDocumentedConfig, } from "./policies/PublicApiDocumented.js";
52
+ export { RequiredGitignorePatterns, type RequiredGitignorePatternsSettings, } from "./policies/RequiredGitignorePatterns.js";
22
53
  export { type RequiredScriptEntry, RequiredScripts, type RequiredScriptsConfig, } from "./policies/RequiredScripts.js";
54
+ export { RustDocExists, type RustDocExistsConfig, } from "./policies/RustDocExists.js";
55
+ export { RustfmtConfigExists, type RustfmtConfigExistsConfig, } from "./policies/RustfmtConfigExists.js";
56
+ export { RustToolchainExists, type RustToolchainExistsConfig, } from "./policies/RustToolchainExists.js";
23
57
  export { ScriptContains, type ScriptContainsConfig, type ScriptContainsRule, } from "./policies/ScriptContains.js";
58
+ export { SharedDependencyVersions, type SharedDependencyVersionsConfig, } from "./policies/SharedDependencyVersions.js";
59
+ export { WorkspaceInheritance, type WorkspaceInheritanceConfig, } from "./policies/WorkspaceInheritance.js";
60
+ export { WorkspaceMembersValid, type WorkspaceMembersValidConfig, } from "./policies/WorkspaceMembersValid.js";
24
61
  export { DefaultPolicies } from "./policy.js";
62
+ export type { FileHeaderGeneratorConfig, FileHeaderPolicyConfig, } from "./policyDefiners/defineFileHeaderPolicy.js";
25
63
  //# sourceMappingURL=policies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,kBAAkB,EAClB,KAAK,wBAAwB,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,YAAY,EACZ,KAAK,kBAAkB,GACvB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACN,wBAAwB,EACxB,KAAK,8BAA8B,GACnC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAE9F,OAAO,EACN,oBAAoB,EACpB,KAAK,0BAA0B,GAC/B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACN,cAAc,EACd,KAAK,oBAAoB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,iBAAiB,EACjB,KAAK,uBAAuB,GAC5B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACN,cAAc,EACd,KAAK,sBAAsB,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,mBAAmB,EACnB,KAAK,yBAAyB,GAC9B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACN,aAAa,EACb,KAAK,qBAAqB,GAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACN,KAAK,qBAAqB,IAAI,2BAA2B,EACzD,cAAc,EACd,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,IAAI,yBAAyB,EACrD,KAAK,qBAAqB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,kBAAkB,EAClB,KAAK,wBAAwB,GAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EACN,KAAK,mBAAmB,EACxB,eAAe,EACf,KAAK,qBAAqB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACvB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"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"}
package/esm/policies.js CHANGED
@@ -1,26 +1,72 @@
1
- // New focused script policies (replacements for PackageScripts)
1
+ /**
2
+ * Built-in file and repository policies and their configuration types.
3
+ *
4
+ * Use `makePolicy()` from `repopo` or `repopo/api` to configure these definitions.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ // Cargo.toml / Rust policies
2
9
  // biome-ignore lint/performance/noBarrelFile: intentional public API entry point for policies
10
+ export { CargoLicenceValidated, } from "./policies/CargoLicenceValidated.js";
11
+ export { CargoLintsConfigured, } from "./policies/CargoLintsConfigured.js";
12
+ export { CargoLockPolicy, } from "./policies/CargoLockPolicy.js";
13
+ export { CargoTomlRequired, } from "./policies/CargoTomlRequired.js";
14
+ export { CargoTomlSorted, } from "./policies/CargoTomlSorted.js";
15
+ // New focused script policies (replacements for PackageScripts)
3
16
  export { ConditionalScripts, } from "./policies/ConditionalScripts.js";
4
17
  export { ExactScripts, } from "./policies/ExactScripts.js";
18
+ // Gleam dependency policies
19
+ export { GleamDepVersions, } from "./policies/GleamDepVersions.js";
20
+ // Gleam documentation policies
21
+ export { GleamDocExists, } from "./policies/GleamDocExists.js";
22
+ // Gleam internal modules policies
23
+ export { GleamInternalModulesConfigured, } from "./policies/GleamInternalModulesConfigured.js";
24
+ // Gleam licence policies
25
+ export { GleamLicenceConfigured, } from "./policies/GleamLicenceConfigured.js";
26
+ // Gleam project structure policies
27
+ export { GleamManifestCommitted } from "./policies/GleamManifestCommitted.js";
28
+ // Gleam monorepo policies
29
+ export { GleamMonorepoConsistency, } from "./policies/GleamMonorepoConsistency.js";
30
+ // Gleam naming policies
31
+ export { GleamNameRestrictions, } from "./policies/GleamNameRestrictions.js";
32
+ // Gleam path dependency policies
33
+ export { GleamNoPathDepsInPublished, } from "./policies/GleamNoPathDepsInPublished.js";
34
+ export { GleamPathDepsValid } from "./policies/GleamPathDepsValid.js";
35
+ export { GleamProjectStructure, } from "./policies/GleamProjectStructure.js";
36
+ // Gleam shared dependency version policies
37
+ export { GleamSharedDependencyVersions, } from "./policies/GleamSharedDependencyVersions.js";
38
+ // Gleam toml field policies
39
+ export { GleamTomlRequired, } from "./policies/GleamTomlRequired.js";
40
+ export { GleamTomlSorted, } from "./policies/GleamTomlSorted.js";
41
+ // Gleam version constraint policies
42
+ export { GleamVersionConstraint, } from "./policies/GleamVersionConstraint.js";
5
43
  // File header policies
6
44
  export { HtmlFileHeaders } from "./policies/HtmlFileHeaders.js";
7
45
  export { JsTsFileHeaders } from "./policies/JsTsFileHeaders.js";
8
46
  // License policies
9
- export { LicenseFileExists } from "./policies/LicenseFileExists.js";
47
+ export { LicenseFileExists, } from "./policies/LicenseFileExists.js";
10
48
  export { MutuallyExclusiveScripts, } from "./policies/MutuallyExclusiveScripts.js";
49
+ // Build directory policies
50
+ export { NoBuildDirectory } from "./policies/NoBuildDirectory.js";
11
51
  // File extension policies
12
52
  export { NoJsFileExtensions } from "./policies/NoJsFileExtensions.js";
13
53
  // File size policies
14
- export { NoLargeBinaryFiles } from "./policies/NoLargeBinaryFiles.js";
54
+ export { NoLargeBinaryFiles, } from "./policies/NoLargeBinaryFiles.js";
15
55
  // Dependency policies
16
- export { NoPrivateWorkspaceDependencies } from "./policies/NoPrivateWorkspaceDependencies.js";
56
+ export { NoPrivateWorkspaceDependencies, } from "./policies/NoPrivateWorkspaceDependencies.js";
57
+ // Rust build artifact policies
58
+ export { NoTargetArtifacts } from "./policies/NoTargetArtifacts.js";
59
+ // Rust unsafe code policies
60
+ export { NoUnsafeWithoutJustification, } from "./policies/NoUnsafeWithoutJustification.js";
61
+ // Rust dependency policies
62
+ export { NoWildcardDependencies, } from "./policies/NoWildcardDependencies.js";
17
63
  // Package naming policies
18
64
  export { PackageAllowedScopes, } from "./policies/PackageAllowedScopes.js";
19
65
  // Package type policies
20
66
  export { PackageEsmType, } from "./policies/PackageEsmType.js";
21
67
  export { PackageFolderName, } from "./policies/PackageFolderName.js";
22
68
  // Package.json field policies
23
- export { PackageJsonProperties } from "./policies/PackageJsonProperties.js";
69
+ export { PackageJsonProperties, } from "./policies/PackageJsonProperties.js";
24
70
  export { PackageJsonRepoDirectoryProperty } from "./policies/PackageJsonRepoDirectoryProperty.js";
25
71
  export { PackageJsonSorted } from "./policies/PackageJsonSorted.js";
26
72
  export { PackageLicense, } from "./policies/PackageLicense.js";
@@ -30,10 +76,21 @@ export { PackageReadme, } from "./policies/PackageReadme.js";
30
76
  // Package script policies (legacy - prefer focused policies above)
31
77
  export { PackageScripts, } from "./policies/PackageScripts.js";
32
78
  export { PackageTestScripts, } from "./policies/PackageTestScripts.js";
79
+ // Rust documentation policies
80
+ export { PublicApiDocumented, } from "./policies/PublicApiDocumented.js";
33
81
  // Gitignore policies
34
- export { RequiredGitignorePatterns } from "./policies/RequiredGitignorePatterns.js";
82
+ export { RequiredGitignorePatterns, } from "./policies/RequiredGitignorePatterns.js";
35
83
  export { RequiredScripts, } from "./policies/RequiredScripts.js";
84
+ // Rust documentation file policies
85
+ export { RustDocExists, } from "./policies/RustDocExists.js";
86
+ // Rust project structure policies
87
+ export { RustfmtConfigExists, } from "./policies/RustfmtConfigExists.js";
88
+ export { RustToolchainExists, } from "./policies/RustToolchainExists.js";
36
89
  export { ScriptContains, } from "./policies/ScriptContains.js";
90
+ // Cargo workspace policies
91
+ export { SharedDependencyVersions, } from "./policies/SharedDependencyVersions.js";
92
+ export { WorkspaceInheritance, } from "./policies/WorkspaceInheritance.js";
93
+ export { WorkspaceMembersValid, } from "./policies/WorkspaceMembersValid.js";
37
94
  // Default policies
38
95
  export { DefaultPolicies } from "./policy.js";
39
96
  //# sourceMappingURL=policies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policies.js","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,8FAA8F;AAC9F,OAAO,EAGN,kBAAkB,GAElB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,YAAY,GAEZ,MAAM,4BAA4B,CAAC;AACpC,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACN,wBAAwB,GAExB,MAAM,wCAAwC,CAAC;AAChD,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,qBAAqB;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,sBAAsB;AACtB,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAC9F,0BAA0B;AAC1B,OAAO,EACN,oBAAoB,GAEpB,MAAM,oCAAoC,CAAC;AAC5C,wBAAwB;AACxB,OAAO,EACN,cAAc,GAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,iBAAiB,GAEjB,MAAM,iCAAiC,CAAC;AACzC,8BAA8B;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACN,cAAc,GAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,mBAAmB,GAEnB,MAAM,mCAAmC,CAAC;AAC3C,0BAA0B;AAC1B,OAAO,EACN,aAAa,GAEb,MAAM,6BAA6B,CAAC;AACrC,mEAAmE;AACnE,OAAO,EAEN,cAAc,GAId,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,kBAAkB,GAElB,MAAM,kCAAkC,CAAC;AAC1C,qBAAqB;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAEN,eAAe,GAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,cAAc,GAGd,MAAM,8BAA8B,CAAC;AAEtC,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC","sourcesContent":["// New focused script policies (replacements for PackageScripts)\n// biome-ignore lint/performance/noBarrelFile: intentional public API entry point for policies\nexport {\n\ttype ConditionalScriptEntry,\n\ttype ConditionalScriptRule,\n\tConditionalScripts,\n\ttype ConditionalScriptsConfig,\n} from \"./policies/ConditionalScripts.js\";\nexport {\n\tExactScripts,\n\ttype ExactScriptsConfig,\n} from \"./policies/ExactScripts.js\";\n// File header policies\nexport { HtmlFileHeaders } from \"./policies/HtmlFileHeaders.js\";\nexport { JsTsFileHeaders } from \"./policies/JsTsFileHeaders.js\";\n// License policies\nexport { LicenseFileExists } from \"./policies/LicenseFileExists.js\";\nexport {\n\tMutuallyExclusiveScripts,\n\ttype MutuallyExclusiveScriptsConfig,\n} from \"./policies/MutuallyExclusiveScripts.js\";\n// File extension policies\nexport { NoJsFileExtensions } from \"./policies/NoJsFileExtensions.js\";\n// File size policies\nexport { NoLargeBinaryFiles } from \"./policies/NoLargeBinaryFiles.js\";\n// Dependency policies\nexport { NoPrivateWorkspaceDependencies } from \"./policies/NoPrivateWorkspaceDependencies.js\";\n// Package naming policies\nexport {\n\tPackageAllowedScopes,\n\ttype PackageAllowedScopesConfig,\n} from \"./policies/PackageAllowedScopes.js\";\n// Package type policies\nexport {\n\tPackageEsmType,\n\ttype PackageEsmTypeConfig,\n} from \"./policies/PackageEsmType.js\";\nexport {\n\tPackageFolderName,\n\ttype PackageFolderNameConfig,\n} from \"./policies/PackageFolderName.js\";\n// Package.json field policies\nexport { PackageJsonProperties } from \"./policies/PackageJsonProperties.js\";\nexport { PackageJsonRepoDirectoryProperty } from \"./policies/PackageJsonRepoDirectoryProperty.js\";\nexport { PackageJsonSorted } from \"./policies/PackageJsonSorted.js\";\nexport {\n\tPackageLicense,\n\ttype PackageLicenseSettings,\n} from \"./policies/PackageLicense.js\";\nexport {\n\tPackagePrivateField,\n\ttype PackagePrivateFieldConfig,\n} from \"./policies/PackagePrivateField.js\";\n// Package readme policies\nexport {\n\tPackageReadme,\n\ttype PackageReadmeSettings,\n} from \"./policies/PackageReadme.js\";\n// Package script policies (legacy - prefer focused policies above)\nexport {\n\ttype ConditionalScriptRule as LegacyConditionalScriptRule,\n\tPackageScripts,\n\ttype PackageScriptsSettings,\n\ttype RequiredScriptEntry as LegacyRequiredScriptEntry,\n\ttype ScriptMustContainRule,\n} from \"./policies/PackageScripts.js\";\nexport {\n\tPackageTestScripts,\n\ttype PackageTestScriptsConfig,\n} from \"./policies/PackageTestScripts.js\";\n// Gitignore policies\nexport { RequiredGitignorePatterns } from \"./policies/RequiredGitignorePatterns.js\";\nexport {\n\ttype RequiredScriptEntry,\n\tRequiredScripts,\n\ttype RequiredScriptsConfig,\n} from \"./policies/RequiredScripts.js\";\nexport {\n\tScriptContains,\n\ttype ScriptContainsConfig,\n\ttype ScriptContainsRule,\n} from \"./policies/ScriptContains.js\";\n\n// Default policies\nexport { DefaultPolicies } from \"./policy.js\";\n"]}
1
+ {"version":3,"file":"policies.js","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Built-in file and repository policies and their configuration types.\n *\n * Use `makePolicy()` from `repopo` or `repopo/api` to configure these definitions.\n *\n * @packageDocumentation\n */\n\n// Cargo.toml / Rust policies\n// biome-ignore lint/performance/noBarrelFile: intentional public API entry point for policies\nexport {\n\tCargoLicenceValidated,\n\ttype CargoLicenceValidatedConfig,\n} from \"./policies/CargoLicenceValidated.js\";\nexport {\n\tCargoLintsConfigured,\n\ttype CargoLintsConfiguredConfig,\n} from \"./policies/CargoLintsConfigured.js\";\nexport {\n\tCargoLockPolicy,\n\ttype CargoLockPolicyConfig,\n} from \"./policies/CargoLockPolicy.js\";\nexport {\n\tCargoTomlRequired,\n\ttype CargoTomlRequiredConfig,\n} from \"./policies/CargoTomlRequired.js\";\nexport {\n\tCargoTomlSorted,\n\ttype CargoTomlSortedConfig,\n} from \"./policies/CargoTomlSorted.js\";\n// New focused script policies (replacements for PackageScripts)\nexport {\n\ttype ConditionalScriptEntry,\n\ttype ConditionalScriptRule,\n\tConditionalScripts,\n\ttype ConditionalScriptsConfig,\n} from \"./policies/ConditionalScripts.js\";\nexport {\n\tExactScripts,\n\ttype ExactScriptsConfig,\n} from \"./policies/ExactScripts.js\";\n// Gleam dependency policies\nexport {\n\tGleamDepVersions,\n\ttype GleamDepVersionsConfig,\n} from \"./policies/GleamDepVersions.js\";\n// Gleam documentation policies\nexport {\n\tGleamDocExists,\n\ttype GleamDocExistsConfig,\n} from \"./policies/GleamDocExists.js\";\n// Gleam internal modules policies\nexport {\n\tGleamInternalModulesConfigured,\n\ttype GleamInternalModulesConfiguredConfig,\n} from \"./policies/GleamInternalModulesConfigured.js\";\n// Gleam licence policies\nexport {\n\tGleamLicenceConfigured,\n\ttype GleamLicenceConfiguredConfig,\n} from \"./policies/GleamLicenceConfigured.js\";\n// Gleam project structure policies\nexport { GleamManifestCommitted } from \"./policies/GleamManifestCommitted.js\";\n// Gleam monorepo policies\nexport {\n\tGleamMonorepoConsistency,\n\ttype GleamMonorepoConsistencyConfig,\n} from \"./policies/GleamMonorepoConsistency.js\";\n// Gleam naming policies\nexport {\n\tGleamNameRestrictions,\n\ttype GleamNameRestrictionsConfig,\n} from \"./policies/GleamNameRestrictions.js\";\n// Gleam path dependency policies\nexport {\n\tGleamNoPathDepsInPublished,\n\ttype GleamNoPathDepsInPublishedConfig,\n} from \"./policies/GleamNoPathDepsInPublished.js\";\nexport { GleamPathDepsValid } from \"./policies/GleamPathDepsValid.js\";\nexport {\n\tGleamProjectStructure,\n\ttype GleamProjectStructureConfig,\n} from \"./policies/GleamProjectStructure.js\";\n// Gleam shared dependency version policies\nexport {\n\tGleamSharedDependencyVersions,\n\ttype GleamSharedDependencyVersionsConfig,\n} from \"./policies/GleamSharedDependencyVersions.js\";\n// Gleam toml field policies\nexport {\n\tGleamTomlRequired,\n\ttype GleamTomlRequiredConfig,\n} from \"./policies/GleamTomlRequired.js\";\nexport {\n\tGleamTomlSorted,\n\ttype GleamTomlSortedConfig,\n} from \"./policies/GleamTomlSorted.js\";\n// Gleam version constraint policies\nexport {\n\tGleamVersionConstraint,\n\ttype GleamVersionConstraintConfig,\n} from \"./policies/GleamVersionConstraint.js\";\n// File header policies\nexport { HtmlFileHeaders } from \"./policies/HtmlFileHeaders.js\";\nexport { JsTsFileHeaders } from \"./policies/JsTsFileHeaders.js\";\n// License policies\nexport {\n\tLicenseFileExists,\n\ttype LicenseFileExistsSettings,\n} from \"./policies/LicenseFileExists.js\";\nexport {\n\tMutuallyExclusiveScripts,\n\ttype MutuallyExclusiveScriptsConfig,\n} from \"./policies/MutuallyExclusiveScripts.js\";\n// Build directory policies\nexport { NoBuildDirectory } from \"./policies/NoBuildDirectory.js\";\n// File extension policies\nexport { NoJsFileExtensions } from \"./policies/NoJsFileExtensions.js\";\n// File size policies\nexport {\n\tNoLargeBinaryFiles,\n\ttype NoLargeBinaryFilesSettings,\n} from \"./policies/NoLargeBinaryFiles.js\";\n// Dependency policies\nexport {\n\tNoPrivateWorkspaceDependencies,\n\ttype NoPrivateWorkspaceDependenciesSettings,\n} from \"./policies/NoPrivateWorkspaceDependencies.js\";\n// Rust build artifact policies\nexport { NoTargetArtifacts } from \"./policies/NoTargetArtifacts.js\";\n// Rust unsafe code policies\nexport {\n\tNoUnsafeWithoutJustification,\n\ttype NoUnsafeWithoutJustificationConfig,\n} from \"./policies/NoUnsafeWithoutJustification.js\";\n// Rust dependency policies\nexport {\n\tNoWildcardDependencies,\n\ttype NoWildcardDependenciesConfig,\n} from \"./policies/NoWildcardDependencies.js\";\n// Package naming policies\nexport {\n\tPackageAllowedScopes,\n\ttype PackageAllowedScopesConfig,\n} from \"./policies/PackageAllowedScopes.js\";\n// Package type policies\nexport {\n\tPackageEsmType,\n\ttype PackageEsmTypeConfig,\n} from \"./policies/PackageEsmType.js\";\nexport {\n\tPackageFolderName,\n\ttype PackageFolderNameConfig,\n} from \"./policies/PackageFolderName.js\";\n// Package.json field policies\nexport {\n\tPackageJsonProperties,\n\ttype PackageJsonPropertiesSettings,\n} from \"./policies/PackageJsonProperties.js\";\nexport { PackageJsonRepoDirectoryProperty } from \"./policies/PackageJsonRepoDirectoryProperty.js\";\nexport { PackageJsonSorted } from \"./policies/PackageJsonSorted.js\";\nexport {\n\tPackageLicense,\n\ttype PackageLicenseSettings,\n} from \"./policies/PackageLicense.js\";\nexport {\n\tPackagePrivateField,\n\ttype PackagePrivateFieldConfig,\n} from \"./policies/PackagePrivateField.js\";\n// Package readme policies\nexport {\n\tPackageReadme,\n\ttype PackageReadmeSettings,\n} from \"./policies/PackageReadme.js\";\n// Package script policies (legacy - prefer focused policies above)\nexport {\n\ttype ConditionalScriptRule as LegacyConditionalScriptRule,\n\tPackageScripts,\n\ttype PackageScriptsSettings,\n\ttype RequiredScriptEntry as LegacyRequiredScriptEntry,\n\ttype ScriptMustContainRule,\n} from \"./policies/PackageScripts.js\";\nexport {\n\tPackageTestScripts,\n\ttype PackageTestScriptsConfig,\n} from \"./policies/PackageTestScripts.js\";\n// Rust documentation policies\nexport {\n\tPublicApiDocumented,\n\ttype PublicApiDocumentedConfig,\n} from \"./policies/PublicApiDocumented.js\";\n// Gitignore policies\nexport {\n\tRequiredGitignorePatterns,\n\ttype RequiredGitignorePatternsSettings,\n} from \"./policies/RequiredGitignorePatterns.js\";\nexport {\n\ttype RequiredScriptEntry,\n\tRequiredScripts,\n\ttype RequiredScriptsConfig,\n} from \"./policies/RequiredScripts.js\";\n// Rust documentation file policies\nexport {\n\tRustDocExists,\n\ttype RustDocExistsConfig,\n} from \"./policies/RustDocExists.js\";\n// Rust project structure policies\nexport {\n\tRustfmtConfigExists,\n\ttype RustfmtConfigExistsConfig,\n} from \"./policies/RustfmtConfigExists.js\";\nexport {\n\tRustToolchainExists,\n\ttype RustToolchainExistsConfig,\n} from \"./policies/RustToolchainExists.js\";\nexport {\n\tScriptContains,\n\ttype ScriptContainsConfig,\n\ttype ScriptContainsRule,\n} from \"./policies/ScriptContains.js\";\n// Cargo workspace policies\nexport {\n\tSharedDependencyVersions,\n\ttype SharedDependencyVersionsConfig,\n} from \"./policies/SharedDependencyVersions.js\";\nexport {\n\tWorkspaceInheritance,\n\ttype WorkspaceInheritanceConfig,\n} from \"./policies/WorkspaceInheritance.js\";\nexport {\n\tWorkspaceMembersValid,\n\ttype WorkspaceMembersValidConfig,\n} from \"./policies/WorkspaceMembersValid.js\";\n// Default policies\nexport { DefaultPolicies } from \"./policy.js\";\nexport type {\n\tFileHeaderGeneratorConfig,\n\tFileHeaderPolicyConfig,\n} from \"./policyDefiners/defineFileHeaderPolicy.js\";\n"]}
package/esm/policy.d.ts CHANGED
@@ -1,289 +1,85 @@
1
1
  import type { Operation } from "effection";
2
- /**
3
- * A type representing a policy name.
4
- *
5
- * @alpha
6
- */
2
+ /** Display name of a policy. @public */
7
3
  export type PolicyName = string;
8
- /**
9
- * Arguments passed to policy handler functions.
10
- *
11
- * @alpha
12
- */
4
+ /** Stable configured-instance identity. @public */
5
+ export type PolicyInstanceId = string;
6
+ /** Arguments supplied to a file handler. @public */
13
7
  export interface PolicyArgs<C = void> {
14
- /**
15
- * Path to the file, relative to the repo root.
16
- */
17
8
  file: string;
18
- /**
19
- * Absolute path to the root of the repo.
20
- */
21
9
  root: string;
22
- /**
23
- * If true, the handler should resolve any violations automatically if possible.
24
- */
25
10
  resolve: boolean;
26
- /**
27
- * Optional configuration for the policy.
28
- */
29
11
  config?: C | undefined;
30
12
  }
31
- /**
32
- * @deprecated Use {@link PolicyArgs} instead.
33
- * @alpha
34
- */
35
- export type PolicyFunctionArguments<C> = PolicyArgs<C>;
36
- /**
37
- * A policy error returned when a file fails a policy check.
38
- *
39
- * @alpha
40
- */
41
- export interface PolicyError {
42
- /**
43
- * The error message describing what failed.
44
- */
45
- error: string;
46
- /**
47
- * Set to `true` if the policy violation can be fixed automatically.
48
- */
49
- fixable?: boolean | undefined;
50
- /**
51
- * Set to `true` if the violation was successfully fixed (only set when resolve=true).
52
- */
53
- fixed?: boolean | undefined;
54
- /**
55
- * An optional string that tells the user how to manually fix the failure.
56
- */
57
- manualFix?: string | undefined;
13
+ /** Arguments supplied to a repository handler; selection never limits files. @public */
14
+ export interface RepositoryPolicyArgs<C = void> extends Omit<PolicyArgs<C>, "file"> {
15
+ files: readonly string[];
58
16
  }
59
- /**
60
- * The result of a policy handler.
61
- * Returns `true` if the file passes the policy, or a {@link PolicyError} if it fails.
62
- *
63
- * @alpha
64
- */
65
- export type PolicyResult = true | PolicyError;
66
- /**
67
- * A policy failure (legacy format).
68
- *
69
- * @deprecated Use {@link PolicyError} instead, which has a simpler API.
70
- *
71
- * @alpha
72
- */
73
- export interface PolicyFailure {
74
- /**
75
- * Name of the policy that failed.
76
- */
77
- name: PolicyName;
78
- /**
79
- * Path to the file that failed the policy.
80
- */
81
- file: string;
82
- /**
83
- * Set to `true` if the policy can be fixed automatically.
84
- */
85
- autoFixable?: boolean | undefined;
86
- /**
87
- * An optional error message accompanying the failure.
88
- */
89
- errorMessages: string[];
90
- /**
91
- * An optional string that tells the user how to fix the failure(s).
92
- */
17
+ /** A single independently actionable violation or recorded fix. @public */
18
+ export interface PolicyFinding {
19
+ message: string;
93
20
  manualFix?: string | undefined;
21
+ fixStatus?: "available" | "fixed" | "failed" | undefined;
22
+ /** Repo-relative affected files. Only repository handlers may supply this. */
23
+ files?: readonly string[] | undefined;
94
24
  }
95
- /**
96
- * The result of an automatic fix for a failing policy (legacy format).
97
- *
98
- * @deprecated Use {@link PolicyError} with `fixed: boolean` instead.
99
- *
100
- * @alpha
101
- */
102
- export interface PolicyFixResult extends PolicyFailure {
103
- /**
104
- * Set to true if the failure was resolved by the automated fixer.
105
- */
106
- resolved: boolean;
107
- }
108
- /**
109
- * Result type that accepts both legacy and new formats.
110
- *
111
- * @alpha
112
- */
113
- export type PolicyHandlerResult = true | PolicyFailure | PolicyFixResult | PolicyError;
114
- /**
115
- * A policy handler function that checks a file against a policy.
116
- *
117
- * @remarks
118
- * Policy handlers can be implemented in two ways:
119
- * - As an async function returning a Promise
120
- * - As an Effection generator function returning an Operation
121
- *
122
- * Both styles are supported. Async handlers are automatically wrapped for Effection.
123
- *
124
- * Handlers can return either the legacy format ({@link PolicyFailure}) or
125
- * the new format ({@link PolicyError}). The new format is simpler and recommended
126
- * for new policies.
127
- *
128
- * @alpha
129
- */
130
- export type PolicyHandler<C = unknown | undefined> = ((args: PolicyArgs<C>) => Promise<PolicyHandlerResult>) | ((args: PolicyArgs<C>) => Operation<PolicyHandlerResult>);
131
- /**
132
- * A standalone resolver function that can fix policy violations (legacy format).
133
- *
134
- * @deprecated Use {@link PolicyResolver} instead, which uses {@link PolicyError}.
135
- *
136
- * @alpha
137
- */
138
- export type PolicyStandaloneResolver<C = undefined> = (args: Omit<PolicyArgs<C>, "resolve">) => Promise<PolicyFixResult> | Operation<PolicyFixResult>;
139
- /**
140
- * A standalone resolver function using the new format.
141
- *
142
- * @alpha
143
- */
144
- export type PolicyResolver<C = void> = (args: Omit<PolicyArgs<C>, "resolve">) => Promise<PolicyError> | Operation<PolicyError>;
145
- /**
146
- * Interface describing the shape of a policy definition.
147
- *
148
- * @typeParam C - Type of configuration object used by the policy
149
- *
150
- * @alpha
151
- */
152
- export interface PolicyShape<C = void> {
153
- /**
154
- * The name of the policy; displayed in UI and used in settings.
155
- */
25
+ /** Empty means pass. Fixed findings remain visible. @public */
26
+ export type PolicyResult = readonly PolicyFinding[];
27
+ /** Standalone file fixers receive and return the complete findings list. @public */
28
+ export type PolicyResolver<C = void> = {
29
+ resolve(args: Omit<PolicyArgs<C>, "resolve"> & {
30
+ findings: PolicyResult;
31
+ }): Promise<PolicyResult> | Operation<PolicyResult>;
32
+ }["resolve"];
33
+ /** File scope is the default. @public */
34
+ export interface FilePolicyDefinition<C = void> {
156
35
  name: PolicyName;
157
- /**
158
- * A detailed description of the policy and its purpose.
159
- */
160
36
  description: string;
161
- /**
162
- * A regular expression that matches files this policy applies to.
163
- */
37
+ scope?: "file";
164
38
  match: RegExp;
165
- /**
166
- * The handler function that checks if a file complies with the policy.
167
- */
168
- handler: PolicyHandler<C>;
169
- /**
170
- * An optional resolver function that can automatically fix violations.
171
- */
172
- resolver?: PolicyStandaloneResolver<C> | undefined;
173
- /**
174
- * A default configuration that will be used if none is provided.
175
- */
39
+ handler(args: PolicyArgs<C>): Promise<PolicyResult> | Operation<PolicyResult>;
40
+ resolver?: PolicyResolver<C> | undefined;
176
41
  defaultConfig?: C | undefined;
42
+ requiresConfig?: boolean | undefined;
177
43
  }
178
- /**
179
- * Abstract base class for creating policies with object-based construction.
180
- *
181
- * @remarks
182
- * This class accepts a {@link PolicyShape} object in its constructor,
183
- * making it easier to add new optional properties in the future without breaking changes.
184
- *
185
- * @alpha
186
- */
187
- export declare abstract class Policy<C = void> implements PolicyShape<C> {
188
- readonly name: string;
189
- readonly description: string;
190
- readonly match: RegExp;
191
- readonly handler: PolicyHandler<C>;
192
- readonly defaultConfig?: C | undefined;
193
- readonly resolver?: PolicyStandaloneResolver<C> | undefined;
194
- constructor(definition: PolicyShape<C>);
195
- }
196
- /**
197
- * @deprecated Use {@link PolicyShape} instead.
198
- * @alpha
199
- */
200
- export type PolicyDefinition<C = undefined> = PolicyShape<C>;
201
- /**
202
- * A policy instance with configuration and exclusion settings applied.
203
- *
204
- * @typeParam C - Type of configuration object used by the policy
205
- *
206
- * @alpha
207
- */
208
- export interface ConfiguredPolicy<C = void> extends PolicyShape<C> {
209
- /**
210
- * The configuration applied to this policy instance.
211
- */
212
- config?: C | undefined;
213
- /**
214
- * File paths matching these patterns will be excluded from this policy.
215
- * @deprecated Use `excludeFiles` instead for backward compatibility.
216
- */
217
- exclude?: (string | RegExp)[] | undefined;
218
- /**
219
- * File paths matching these patterns will be excluded from this policy.
220
- */
221
- excludeFiles?: (string | RegExp)[] | undefined;
222
- /**
223
- * Internal normalized handler (always an Effection Operation).
224
- * This is set by the policy() function and used by the execution engine.
225
- * @internal
226
- */
227
- _internalHandler?: (args: PolicyArgs<C>) => Operation<PolicyHandlerResult>;
44
+ /** Repository scope is explicit; repository fixers are inline only. @public */
45
+ export interface RepositoryPolicyDefinition<C = void> {
46
+ name: PolicyName;
47
+ description: string;
48
+ scope: "repository";
49
+ handler(args: RepositoryPolicyArgs<C>): Promise<PolicyResult> | Operation<PolicyResult>;
50
+ resolver?: never;
51
+ defaultConfig?: C | undefined;
52
+ requiresConfig?: boolean | undefined;
228
53
  }
229
- /**
230
- * Settings for configuring a policy instance.
231
- * @alpha
232
- */
233
- export interface PolicyInstanceSettings<C> {
234
- /**
235
- * An array of strings/regular expressions. File paths that match any of these expressions will be completely excluded
236
- * from policy.
237
- *
238
- * Paths will be matched relative to the root of the repo.
239
- */
240
- excludeFiles?: (string | RegExp)[];
241
- /**
242
- * The config that is applied to the policy instance.
243
- */
54
+ /** A canonical policy definition. @public */
55
+ export type PolicyDefinition<C = void> = FilePolicyDefinition<C> | RepositoryPolicyDefinition<C>;
56
+ /** Async and Effection file handlers are supported. @public */
57
+ export type PolicyHandler<C = void> = FilePolicyDefinition<C>["handler"];
58
+ /** Async and Effection repository handlers are supported. @public */
59
+ export type RepositoryPolicyHandler<C = void> = RepositoryPolicyDefinition<C>["handler"];
60
+ /** Exclude undefined (including void) while preserving allowed null values. @internal */
61
+ export type DefinedConfig<C> = NonNullable<C> | (C & null);
62
+ /** Instance configuration and repo-relative regex exclusions. @public */
63
+ export interface PolicyOptions<C = void> {
244
64
  config?: C | undefined;
65
+ exclude?: readonly (string | RegExp)[] | undefined;
66
+ instanceId?: PolicyInstanceId | undefined;
245
67
  }
246
- /**
247
- * @deprecated Use {@link ConfiguredPolicy} instead.
248
- * @alpha
249
- */
250
- export type PolicyInstance<C = undefined> = ConfiguredPolicy<C>;
251
- /**
252
- * Type guard to check if a result is a {@link PolicyFixResult} (legacy).
253
- *
254
- * @deprecated Use {@link isPolicyError} instead when working with the new {@link PolicyError} format.
255
- *
256
- * @alpha
257
- */
258
- export declare function isPolicyFixResult(toCheck: any): toCheck is PolicyFixResult;
259
- /**
260
- * Type guard to check if a result is a PolicyError (new format).
261
- *
262
- * @alpha
263
- */
264
- export declare function isPolicyError(toCheck: any): toCheck is PolicyError;
265
- /**
266
- * Type guard to check if a result is a {@link PolicyFailure} (legacy format).
267
- *
268
- * @deprecated Use {@link isPolicyError} instead when working with the new {@link PolicyError} format.
269
- *
270
- * @alpha
271
- */
272
- export declare function isPolicyFailure(toCheck: any): toCheck is PolicyFailure;
273
- /**
274
- * Converts a legacy PolicyFailure/PolicyFixResult to the new PolicyError format.
275
- * @internal
276
- */
277
- export declare function convertLegacyResult(result: PolicyHandlerResult, _file: string): PolicyResult;
278
- /**
279
- * Converts a new PolicyError to the legacy PolicyFailure format.
280
- * @internal
281
- */
282
- export declare function convertToLegacyResult(result: PolicyError, policyName: string, file: string): PolicyFailure | PolicyFixResult;
283
- /**
284
- * Default policies included with repopo.
285
- *
286
- * @alpha
287
- */
288
- export declare const DefaultPolicies: Policy<any>[];
68
+ /** A configured file policy. @public */
69
+ export type ConfiguredFilePolicy<C = void> = FilePolicyDefinition<C> & PolicyOptions<C>;
70
+ /** A configured repository policy. @public */
71
+ export type ConfiguredRepositoryPolicy<C = void> = RepositoryPolicyDefinition<C> & PolicyOptions<C>;
72
+ /** A configured policy, retaining scope discrimination. @public */
73
+ export type ConfiguredPolicy<C = unknown> = ConfiguredFilePolicy<C> | ConfiguredRepositoryPolicy<C>;
74
+ /** A configured policy with a validated stable identity. @public */
75
+ export type IdentifiedPolicy<C = unknown> = ConfiguredPolicy<C> & {
76
+ instanceId: PolicyInstanceId;
77
+ };
78
+ /** The default definitions, configured when no policies are supplied. @public */
79
+ export declare const DefaultPolicies: readonly [{
80
+ name: string;
81
+ description: string;
82
+ match: RegExp;
83
+ handler: () => Operation<PolicyFinding[]>;
84
+ }, FilePolicyDefinition<void>, FilePolicyDefinition<void>];
289
85
  //# sourceMappingURL=policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}