pepr 0.46.1-nightly.1 → 0.46.1-nightly.10

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 (276) hide show
  1. package/dist/.github/workflows/pepr-excellent-examples-matrix.d.ts +2 -0
  2. package/dist/.github/workflows/pepr-excellent-examples-matrix.d.ts.map +1 -0
  3. package/dist/cli.js +2 -2
  4. package/dist/commitlint.config.d.ts +4 -0
  5. package/dist/commitlint.config.d.ts.map +1 -0
  6. package/dist/controller.js +1 -1
  7. package/dist/integration/helpers/cmd.d.ts +22 -0
  8. package/dist/integration/helpers/cmd.d.ts.map +1 -0
  9. package/dist/integration/helpers/pepr.d.ts +5 -0
  10. package/dist/integration/helpers/pepr.d.ts.map +1 -0
  11. package/dist/integration/helpers/resource.d.ts +18 -0
  12. package/dist/integration/helpers/resource.d.ts.map +1 -0
  13. package/dist/integration/helpers/time.d.ts +4 -0
  14. package/dist/integration/helpers/time.d.ts.map +1 -0
  15. package/dist/integration/helpers/workdir.d.ts +12 -0
  16. package/dist/integration/helpers/workdir.d.ts.map +1 -0
  17. package/dist/lib.js +27 -24
  18. package/dist/lib.js.map +4 -4
  19. package/dist/scripts/set-version.d.ts +2 -0
  20. package/dist/scripts/set-version.d.ts.map +1 -0
  21. package/dist/src/cli/banner.d.ts.map +1 -0
  22. package/dist/src/cli/build.d.ts.map +1 -0
  23. package/dist/src/cli/build.helpers.d.ts.map +1 -0
  24. package/dist/src/cli/deploy.d.ts.map +1 -0
  25. package/dist/src/cli/dev.d.ts.map +1 -0
  26. package/dist/src/cli/format.d.ts.map +1 -0
  27. package/dist/src/cli/format.helpers.d.ts.map +1 -0
  28. package/dist/src/cli/init/enums.d.ts.map +1 -0
  29. package/dist/src/cli/init/index.d.ts.map +1 -0
  30. package/dist/{cli → src/cli}/init/templates.d.ts +5 -0
  31. package/dist/src/cli/init/templates.d.ts.map +1 -0
  32. package/dist/src/cli/init/utils.d.ts.map +1 -0
  33. package/dist/src/cli/init/walkthrough.d.ts.map +1 -0
  34. package/dist/src/cli/kfc.d.ts.map +1 -0
  35. package/dist/src/cli/monitor.d.ts.map +1 -0
  36. package/dist/src/cli/root.d.ts.map +1 -0
  37. package/dist/src/cli/types.d.ts.map +1 -0
  38. package/dist/src/cli/update.d.ts.map +1 -0
  39. package/dist/src/cli/uuid.d.ts.map +1 -0
  40. package/dist/src/cli.d.ts.map +1 -0
  41. package/dist/{fixtures → src/fixtures}/loader.d.ts +1 -1
  42. package/dist/src/fixtures/loader.d.ts.map +1 -0
  43. package/dist/src/lib/assets/assets.d.ts.map +1 -0
  44. package/dist/{lib → src/lib}/assets/defaultTestObjects.d.ts +8 -0
  45. package/dist/src/lib/assets/defaultTestObjects.d.ts.map +1 -0
  46. package/dist/src/lib/assets/deploy.d.ts.map +1 -0
  47. package/dist/src/lib/assets/destroy.d.ts.map +1 -0
  48. package/dist/src/lib/assets/helm.d.ts.map +1 -0
  49. package/dist/src/lib/assets/index.d.ts.map +1 -0
  50. package/dist/src/lib/assets/loader.d.ts.map +1 -0
  51. package/dist/src/lib/assets/networking.d.ts.map +1 -0
  52. package/dist/src/lib/assets/pods.d.ts.map +1 -0
  53. package/dist/src/lib/assets/rbac.d.ts.map +1 -0
  54. package/dist/src/lib/assets/store.d.ts.map +1 -0
  55. package/dist/src/lib/assets/webhooks.d.ts.map +1 -0
  56. package/dist/src/lib/assets/yaml/generateAllYaml.d.ts.map +1 -0
  57. package/dist/src/lib/assets/yaml/generateZarfYaml.d.ts.map +1 -0
  58. package/dist/{lib → src/lib}/assets/yaml/overridesFile.d.ts +1 -2
  59. package/dist/src/lib/assets/yaml/overridesFile.d.ts.map +1 -0
  60. package/dist/src/lib/common-types.d.ts +81 -0
  61. package/dist/src/lib/common-types.d.ts.map +1 -0
  62. package/dist/{lib → src/lib}/controller/index.d.ts +1 -1
  63. package/dist/src/lib/controller/index.d.ts.map +1 -0
  64. package/dist/{lib → src/lib}/controller/index.util.d.ts +2 -1
  65. package/dist/src/lib/controller/index.util.d.ts.map +1 -0
  66. package/dist/src/lib/controller/store.d.ts.map +1 -0
  67. package/dist/src/lib/controller/storeCache.d.ts.map +1 -0
  68. package/dist/src/lib/core/capability.d.ts.map +1 -0
  69. package/dist/src/lib/core/envChecks.d.ts.map +1 -0
  70. package/dist/src/lib/core/module.d.ts.map +1 -0
  71. package/dist/src/lib/core/queue.d.ts.map +1 -0
  72. package/dist/src/lib/core/schedule.d.ts.map +1 -0
  73. package/dist/src/lib/core/storage.d.ts.map +1 -0
  74. package/dist/src/lib/deploymentChecks.d.ts.map +1 -0
  75. package/dist/src/lib/enums.d.ts.map +1 -0
  76. package/dist/src/lib/errors.d.ts.map +1 -0
  77. package/dist/src/lib/filesystemService.d.ts.map +1 -0
  78. package/dist/{lib → src/lib}/filter/adjudicators/admissionRequest.d.ts +1 -1
  79. package/dist/src/lib/filter/adjudicators/admissionRequest.d.ts.map +1 -0
  80. package/dist/src/lib/filter/adjudicators/binding.d.ts.map +1 -0
  81. package/dist/{lib → src/lib}/filter/adjudicators/defaultTestObjects.d.ts +2 -1
  82. package/dist/src/lib/filter/adjudicators/defaultTestObjects.d.ts.map +1 -0
  83. package/dist/src/lib/filter/adjudicators/kubernetesObject.d.ts.map +1 -0
  84. package/dist/{lib → src/lib}/filter/adjudicators/mismatch.d.ts +2 -1
  85. package/dist/src/lib/filter/adjudicators/mismatch.d.ts.map +1 -0
  86. package/dist/src/lib/filter/adjudicators/postCollection.d.ts.map +1 -0
  87. package/dist/{lib → src/lib}/filter/filter.d.ts +2 -1
  88. package/dist/src/lib/filter/filter.d.ts.map +1 -0
  89. package/dist/src/lib/finalizer.d.ts.map +1 -0
  90. package/dist/src/lib/helpers.d.ts.map +1 -0
  91. package/dist/src/lib/included-files.d.ts.map +1 -0
  92. package/dist/src/lib/k8s.d.ts.map +1 -0
  93. package/dist/{lib → src/lib}/mutate-request.d.ts +2 -1
  94. package/dist/src/lib/mutate-request.d.ts.map +1 -0
  95. package/dist/src/lib/processors/decode-utils.d.ts +8 -0
  96. package/dist/src/lib/processors/decode-utils.d.ts.map +1 -0
  97. package/dist/{lib → src/lib}/processors/mutate-processor.d.ts +2 -6
  98. package/dist/src/lib/processors/mutate-processor.d.ts.map +1 -0
  99. package/dist/{lib → src/lib}/processors/validate-processor.d.ts +2 -1
  100. package/dist/src/lib/processors/validate-processor.d.ts.map +1 -0
  101. package/dist/src/lib/processors/watch-processor.d.ts.map +1 -0
  102. package/dist/src/lib/telemetry/logger.d.ts.map +1 -0
  103. package/dist/src/lib/telemetry/metrics.d.ts.map +1 -0
  104. package/dist/src/lib/telemetry/timeUtils.d.ts.map +1 -0
  105. package/dist/src/lib/telemetry/webhookTimeouts.d.ts.map +1 -0
  106. package/dist/src/lib/tls.d.ts.map +1 -0
  107. package/dist/{lib → src/lib}/types.d.ts +3 -79
  108. package/dist/src/lib/types.d.ts.map +1 -0
  109. package/dist/src/lib/utils.d.ts.map +1 -0
  110. package/dist/{lib → src/lib}/validate-request.d.ts +1 -2
  111. package/dist/src/lib/validate-request.d.ts.map +1 -0
  112. package/dist/src/lib.d.ts.map +1 -0
  113. package/dist/{runtime → src/runtime}/controller.d.ts.map +1 -1
  114. package/dist/src/sdk/cosign.d.ts.map +1 -0
  115. package/dist/src/sdk/heredoc.d.ts.map +1 -0
  116. package/dist/src/sdk/sdk.d.ts.map +1 -0
  117. package/package.json +12 -7
  118. package/src/cli/dev.ts +1 -1
  119. package/src/fixtures/loader.ts +1 -1
  120. package/src/lib/assets/defaultTestObjects.ts +18 -1
  121. package/src/lib/assets/yaml/overridesFile.ts +1 -1
  122. package/src/lib/common-types.ts +103 -0
  123. package/src/lib/controller/index.ts +1 -1
  124. package/src/lib/controller/index.util.ts +2 -1
  125. package/src/lib/core/module.ts +1 -1
  126. package/src/lib/filter/adjudicators/admissionRequest.ts +1 -1
  127. package/src/lib/filter/adjudicators/defaultTestObjects.ts +2 -1
  128. package/src/lib/filter/adjudicators/kubernetesObject.ts +5 -0
  129. package/src/lib/filter/adjudicators/mismatch.ts +6 -5
  130. package/src/lib/filter/filter.ts +2 -1
  131. package/src/lib/finalizer.ts +2 -1
  132. package/src/lib/mutate-request.ts +2 -1
  133. package/src/lib/processors/decode-utils.ts +31 -0
  134. package/src/lib/processors/mutate-processor.ts +44 -66
  135. package/src/lib/processors/validate-processor.ts +2 -1
  136. package/src/lib/telemetry/metrics.ts +0 -2
  137. package/src/lib/types.ts +3 -100
  138. package/src/lib/validate-request.ts +1 -2
  139. package/dist/cli/banner.d.ts.map +0 -1
  140. package/dist/cli/build.d.ts.map +0 -1
  141. package/dist/cli/build.helpers.d.ts.map +0 -1
  142. package/dist/cli/deploy.d.ts.map +0 -1
  143. package/dist/cli/dev.d.ts.map +0 -1
  144. package/dist/cli/format.d.ts.map +0 -1
  145. package/dist/cli/format.helpers.d.ts.map +0 -1
  146. package/dist/cli/init/enums.d.ts.map +0 -1
  147. package/dist/cli/init/index.d.ts.map +0 -1
  148. package/dist/cli/init/templates.d.ts.map +0 -1
  149. package/dist/cli/init/utils.d.ts.map +0 -1
  150. package/dist/cli/init/walkthrough.d.ts.map +0 -1
  151. package/dist/cli/kfc.d.ts.map +0 -1
  152. package/dist/cli/monitor.d.ts.map +0 -1
  153. package/dist/cli/root.d.ts.map +0 -1
  154. package/dist/cli/types.d.ts.map +0 -1
  155. package/dist/cli/update.d.ts.map +0 -1
  156. package/dist/cli/uuid.d.ts.map +0 -1
  157. package/dist/cli.d.ts.map +0 -1
  158. package/dist/fixtures/loader.d.ts.map +0 -1
  159. package/dist/lib/assets/assets.d.ts.map +0 -1
  160. package/dist/lib/assets/defaultTestObjects.d.ts.map +0 -1
  161. package/dist/lib/assets/deploy.d.ts.map +0 -1
  162. package/dist/lib/assets/destroy.d.ts.map +0 -1
  163. package/dist/lib/assets/helm.d.ts.map +0 -1
  164. package/dist/lib/assets/index.d.ts.map +0 -1
  165. package/dist/lib/assets/loader.d.ts.map +0 -1
  166. package/dist/lib/assets/networking.d.ts.map +0 -1
  167. package/dist/lib/assets/pods.d.ts.map +0 -1
  168. package/dist/lib/assets/rbac.d.ts.map +0 -1
  169. package/dist/lib/assets/store.d.ts.map +0 -1
  170. package/dist/lib/assets/webhooks.d.ts.map +0 -1
  171. package/dist/lib/assets/yaml/generateAllYaml.d.ts.map +0 -1
  172. package/dist/lib/assets/yaml/generateZarfYaml.d.ts.map +0 -1
  173. package/dist/lib/assets/yaml/overridesFile.d.ts.map +0 -1
  174. package/dist/lib/controller/index.d.ts.map +0 -1
  175. package/dist/lib/controller/index.util.d.ts.map +0 -1
  176. package/dist/lib/controller/store.d.ts.map +0 -1
  177. package/dist/lib/controller/storeCache.d.ts.map +0 -1
  178. package/dist/lib/core/capability.d.ts.map +0 -1
  179. package/dist/lib/core/envChecks.d.ts.map +0 -1
  180. package/dist/lib/core/module.d.ts.map +0 -1
  181. package/dist/lib/core/queue.d.ts.map +0 -1
  182. package/dist/lib/core/schedule.d.ts.map +0 -1
  183. package/dist/lib/core/storage.d.ts.map +0 -1
  184. package/dist/lib/deploymentChecks.d.ts.map +0 -1
  185. package/dist/lib/enums.d.ts.map +0 -1
  186. package/dist/lib/errors.d.ts.map +0 -1
  187. package/dist/lib/filesystemService.d.ts.map +0 -1
  188. package/dist/lib/filter/adjudicators/admissionRequest.d.ts.map +0 -1
  189. package/dist/lib/filter/adjudicators/binding.d.ts.map +0 -1
  190. package/dist/lib/filter/adjudicators/defaultTestObjects.d.ts.map +0 -1
  191. package/dist/lib/filter/adjudicators/kubernetesObject.d.ts.map +0 -1
  192. package/dist/lib/filter/adjudicators/mismatch.d.ts.map +0 -1
  193. package/dist/lib/filter/adjudicators/postCollection.d.ts.map +0 -1
  194. package/dist/lib/filter/filter.d.ts.map +0 -1
  195. package/dist/lib/finalizer.d.ts.map +0 -1
  196. package/dist/lib/helpers.d.ts.map +0 -1
  197. package/dist/lib/included-files.d.ts.map +0 -1
  198. package/dist/lib/k8s.d.ts.map +0 -1
  199. package/dist/lib/mutate-request.d.ts.map +0 -1
  200. package/dist/lib/processors/mutate-processor.d.ts.map +0 -1
  201. package/dist/lib/processors/validate-processor.d.ts.map +0 -1
  202. package/dist/lib/processors/watch-processor.d.ts.map +0 -1
  203. package/dist/lib/telemetry/logger.d.ts.map +0 -1
  204. package/dist/lib/telemetry/metrics.d.ts.map +0 -1
  205. package/dist/lib/telemetry/timeUtils.d.ts.map +0 -1
  206. package/dist/lib/telemetry/webhookTimeouts.d.ts.map +0 -1
  207. package/dist/lib/tls.d.ts.map +0 -1
  208. package/dist/lib/types.d.ts.map +0 -1
  209. package/dist/lib/utils.d.ts.map +0 -1
  210. package/dist/lib/validate-request.d.ts.map +0 -1
  211. package/dist/lib.d.ts.map +0 -1
  212. package/dist/sdk/cosign.d.ts.map +0 -1
  213. package/dist/sdk/heredoc.d.ts.map +0 -1
  214. package/dist/sdk/sdk.d.ts.map +0 -1
  215. /package/dist/{cli → src/cli}/banner.d.ts +0 -0
  216. /package/dist/{cli → src/cli}/build.d.ts +0 -0
  217. /package/dist/{cli → src/cli}/build.helpers.d.ts +0 -0
  218. /package/dist/{cli → src/cli}/deploy.d.ts +0 -0
  219. /package/dist/{cli → src/cli}/dev.d.ts +0 -0
  220. /package/dist/{cli → src/cli}/format.d.ts +0 -0
  221. /package/dist/{cli → src/cli}/format.helpers.d.ts +0 -0
  222. /package/dist/{cli → src/cli}/init/enums.d.ts +0 -0
  223. /package/dist/{cli → src/cli}/init/index.d.ts +0 -0
  224. /package/dist/{cli → src/cli}/init/utils.d.ts +0 -0
  225. /package/dist/{cli → src/cli}/init/walkthrough.d.ts +0 -0
  226. /package/dist/{cli → src/cli}/kfc.d.ts +0 -0
  227. /package/dist/{cli → src/cli}/monitor.d.ts +0 -0
  228. /package/dist/{cli → src/cli}/root.d.ts +0 -0
  229. /package/dist/{cli → src/cli}/types.d.ts +0 -0
  230. /package/dist/{cli → src/cli}/update.d.ts +0 -0
  231. /package/dist/{cli → src/cli}/uuid.d.ts +0 -0
  232. /package/dist/{cli.d.ts → src/cli.d.ts} +0 -0
  233. /package/dist/{lib → src/lib}/assets/assets.d.ts +0 -0
  234. /package/dist/{lib → src/lib}/assets/deploy.d.ts +0 -0
  235. /package/dist/{lib → src/lib}/assets/destroy.d.ts +0 -0
  236. /package/dist/{lib → src/lib}/assets/helm.d.ts +0 -0
  237. /package/dist/{lib → src/lib}/assets/index.d.ts +0 -0
  238. /package/dist/{lib → src/lib}/assets/loader.d.ts +0 -0
  239. /package/dist/{lib → src/lib}/assets/networking.d.ts +0 -0
  240. /package/dist/{lib → src/lib}/assets/pods.d.ts +0 -0
  241. /package/dist/{lib → src/lib}/assets/rbac.d.ts +0 -0
  242. /package/dist/{lib → src/lib}/assets/store.d.ts +0 -0
  243. /package/dist/{lib → src/lib}/assets/webhooks.d.ts +0 -0
  244. /package/dist/{lib → src/lib}/assets/yaml/generateAllYaml.d.ts +0 -0
  245. /package/dist/{lib → src/lib}/assets/yaml/generateZarfYaml.d.ts +0 -0
  246. /package/dist/{lib → src/lib}/controller/store.d.ts +0 -0
  247. /package/dist/{lib → src/lib}/controller/storeCache.d.ts +0 -0
  248. /package/dist/{lib → src/lib}/core/capability.d.ts +0 -0
  249. /package/dist/{lib → src/lib}/core/envChecks.d.ts +0 -0
  250. /package/dist/{lib → src/lib}/core/module.d.ts +0 -0
  251. /package/dist/{lib → src/lib}/core/queue.d.ts +0 -0
  252. /package/dist/{lib → src/lib}/core/schedule.d.ts +0 -0
  253. /package/dist/{lib → src/lib}/core/storage.d.ts +0 -0
  254. /package/dist/{lib → src/lib}/deploymentChecks.d.ts +0 -0
  255. /package/dist/{lib → src/lib}/enums.d.ts +0 -0
  256. /package/dist/{lib → src/lib}/errors.d.ts +0 -0
  257. /package/dist/{lib → src/lib}/filesystemService.d.ts +0 -0
  258. /package/dist/{lib → src/lib}/filter/adjudicators/binding.d.ts +0 -0
  259. /package/dist/{lib → src/lib}/filter/adjudicators/kubernetesObject.d.ts +0 -0
  260. /package/dist/{lib → src/lib}/filter/adjudicators/postCollection.d.ts +0 -0
  261. /package/dist/{lib → src/lib}/finalizer.d.ts +0 -0
  262. /package/dist/{lib → src/lib}/helpers.d.ts +0 -0
  263. /package/dist/{lib → src/lib}/included-files.d.ts +0 -0
  264. /package/dist/{lib → src/lib}/k8s.d.ts +0 -0
  265. /package/dist/{lib → src/lib}/processors/watch-processor.d.ts +0 -0
  266. /package/dist/{lib → src/lib}/telemetry/logger.d.ts +0 -0
  267. /package/dist/{lib → src/lib}/telemetry/metrics.d.ts +0 -0
  268. /package/dist/{lib → src/lib}/telemetry/timeUtils.d.ts +0 -0
  269. /package/dist/{lib → src/lib}/telemetry/webhookTimeouts.d.ts +0 -0
  270. /package/dist/{lib → src/lib}/tls.d.ts +0 -0
  271. /package/dist/{lib → src/lib}/utils.d.ts +0 -0
  272. /package/dist/{lib.d.ts → src/lib.d.ts} +0 -0
  273. /package/dist/{runtime → src/runtime}/controller.d.ts +0 -0
  274. /package/dist/{sdk → src/sdk}/cosign.d.ts +0 -0
  275. /package/dist/{sdk → src/sdk}/heredoc.d.ts +0 -0
  276. /package/dist/{sdk → src/sdk}/sdk.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../../../src/lib/processors/watch-processor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAO,gBAAgB,EAAY,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAc,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAoB,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAMlF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAkBtD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAM/E;AAuBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAMzF;AAyFD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,MAAW,EAAE,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAO9F;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,YAAY,IAAI;IACzE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC/B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAChC,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IACrC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAC5B,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAC1B,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC1C,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAClC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC/B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC/B,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC1C,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC7B,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAC/C,CAAC,CAAC,CAAC,CAAC;AAEL,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAC7E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,EAClC,QAAQ,EAAE,gBAAgB,EAC1B,gBAAgB,EAAE,wBAAwB,GACzC,IAAI,CA4BN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/lib/telemetry/logger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAkB/B,QAAA,MAAM,GAAG,uCAGP,CAAC;AAMH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CASjD;AAED,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAwB9F;AAED,eAAe,GAAG,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../src/lib/telemetry/metrics.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiB7E;;GAEG;AACH,qBAAa,gBAAgB;;IAiB3B;;;OAGG;gBACS,MAAM,SAAS;IAiC3B,UAAU,SAAU,MAAM,QAAQ,MAAM,KAAG,IAAI,CAE7C;IAEF,UAAU,SAAU,MAAM,QAAQ,MAAM,KAAG,IAAI,CAE7C;IAEF,QAAQ,SAAU,MAAM,QAAQ,MAAM,eAAe,MAAM,EAAE,KAAG,IAAI,CAElE;IAEF,UAAU,SAAU,MAAM,KAAG,IAAI,CAE/B;IAEF,QAAQ,SAAU,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAS,MAAM,KAAO,IAAI,CAEjF;IAEF;;OAEG;IACH,KAAK,QAAO,IAAI,CAA8C;IAE9D;;OAEG;IACH,KAAK,QAAO,IAAI,CAA8C;IAE9D;;;;OAIG;IACH,UAAU,cAAe,MAAM,SAAQ,MAAM,KAA8B,IAAI,CAE7E;IAEF;;;OAGG;IACH,UAAU,QAAO,OAAO,CAAC,MAAM,CAAC,CAA6B;IAE7D;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,MAAM;IAI7B;;;OAGG;IACH,YAAY,WAAY,MAAM,KAAG,IAAI,CAEnC;IAEF;;;OAGG;IACH,aAAa,UAAW,MAAM,KAAG,IAAI,CAEnC;IAEF;;;OAGG;IACH,mBAAmB,WAAY,MAAM,KAAG,IAAI,CAI1C;CAkBH;AAED,eAAO,MAAM,gBAAgB,EAAE,wBAAuD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeUtils.d.ts","sourceRoot":"","sources":["../../../../src/lib/telemetry/timeUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,QAAO,MAA2B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookTimeouts.d.ts","sourceRoot":"","sources":["../../../../src/lib/telemetry/webhookTimeouts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,qBAAa,qBAAqB;;IAGhC,OAAO,EAAE,MAAM,CAAK;gBAER,WAAW,EAAE,WAAW;IAKpC,KAAK,CAAC,OAAO,GAAE,MAAW,GAAG,IAAI;IAMjC,IAAI,IAAI,IAAI;CAab"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tls.d.ts","sourceRoot":"","sources":["../../../src/lib/tls.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyC3C"}
@@ -1,11 +1,12 @@
1
1
  import { GenericClass, GroupVersionKind, KubernetesObject } from "kubernetes-fluent-client";
2
- import { Event, Operation } from "./enums";
2
+ import { Event } from "./enums";
3
3
  import { WatchPhase } from "kubernetes-fluent-client/dist/fluent/types";
4
4
  import { Logger } from "pino";
5
5
  import { PeprMutateRequest } from "./mutate-request";
6
6
  import { PeprValidateRequest } from "./validate-request";
7
7
  import { V1PolicyRule as PolicyRule } from "@kubernetes/client-node";
8
8
  import { WebhookIgnore, MutateResponse, ValidateResponse } from "./k8s";
9
+ import { AdmissionRequest, ValidateActionResponse } from "./common-types";
9
10
  /**
10
11
  * Specifically for deploying images with a private registry
11
12
  */
@@ -205,11 +206,6 @@ export type MutateActionChain<T extends GenericClass> = ValidateActionChain<T> &
205
206
  export type MutateAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (req: PeprMutateRequest<K>, logger?: Logger) => Promise<void> | void | Promise<PeprMutateRequest<K>> | PeprMutateRequest<K>;
206
207
  export type ValidateAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (req: PeprValidateRequest<K>, logger?: Logger) => Promise<ValidateActionResponse> | ValidateActionResponse;
207
208
  export type WatchLogAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (update: K, phase: WatchPhase, logger?: Logger) => Promise<void> | void;
208
- export type ValidateActionResponse = {
209
- allowed: boolean;
210
- statusCode?: number;
211
- statusMessage?: string;
212
- };
213
209
  export type FinalizeAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (update: K, logger?: Logger) => Promise<boolean | void> | boolean | void;
214
210
  export type FinalizeActionChain<T extends GenericClass> = {
215
211
  /**
@@ -225,79 +221,7 @@ export type FinalizeActionChain<T extends GenericClass> = {
225
221
  */
226
222
  Finalize: (action: FinalizeAction<T, InstanceType<T>>) => void;
227
223
  };
228
- /**
229
- * A Kubernetes admission request to be processed by a capability.
230
- */
231
- export interface AdmissionRequest<T = KubernetesObject> {
232
- /** UID is an identifier for the individual request/response. */
233
- readonly uid: string;
234
- /** Kind is the fully-qualified type of object being submitted (for example, v1.Pod or autoscaling.v1.Scale) */
235
- readonly kind: GroupVersionKind;
236
- /** Resource is the fully-qualified resource being requested (for example, v1.pods) */
237
- readonly resource: GroupVersionResource;
238
- /** SubResource is the sub-resource being requested, if any (for example, "status" or "scale") */
239
- readonly subResource?: string;
240
- /** RequestKind is the fully-qualified type of the original API request (for example, v1.Pod or autoscaling.v1.Scale). */
241
- readonly requestKind?: GroupVersionKind;
242
- /** RequestResource is the fully-qualified resource of the original API request (for example, v1.pods). */
243
- readonly requestResource?: GroupVersionResource;
244
- /** RequestSubResource is the sub-resource of the original API request, if any (for example, "status" or "scale"). */
245
- readonly requestSubResource?: string;
246
- /**
247
- * Name is the name of the object as presented in the request. On a CREATE operation, the client may omit name and
248
- * rely on the server to generate the name. If that is the case, this method will return the empty string.
249
- */
250
- readonly name: string;
251
- /** Namespace is the namespace associated with the request (if any). */
252
- readonly namespace?: string;
253
- /**
254
- * Operation is the operation being performed. This may be different than the operation
255
- * requested. e.g. a patch can result in either a CREATE or UPDATE Operation.
256
- */
257
- readonly operation: Operation;
258
- /** UserInfo is information about the requesting user */
259
- readonly userInfo: {
260
- /** The name that uniquely identifies this user among all active users. */
261
- username?: string;
262
- /**
263
- * A unique value that identifies this user across time. If this user is deleted
264
- * and another user by the same name is added, they will have different UIDs.
265
- */
266
- uid?: string;
267
- /** The names of groups this user is a part of. */
268
- groups?: string[];
269
- /** Any additional information provided by the authenticator. */
270
- extra?: {
271
- [key: string]: string[];
272
- };
273
- };
274
- /** Object is the object from the incoming request prior to default values being applied */
275
- readonly object: T;
276
- /** OldObject is the existing object. Only populated for UPDATE or DELETE requests. */
277
- readonly oldObject?: T;
278
- /** DryRun indicates that modifications will definitely not be persisted for this request. Defaults to false. */
279
- readonly dryRun?: boolean;
280
- /**
281
- * Options contains the options for the operation being performed.
282
- * e.g. `meta.k8s.io/v1.DeleteOptions` or `meta.k8s.io/v1.CreateOptions`. This may be
283
- * different than the options the caller provided. e.g. for a patch request the performed
284
- * Operation might be a CREATE, in which case the Options will a
285
- * `meta.k8s.io/v1.CreateOptions` even though the caller provided `meta.k8s.io/v1.PatchOptions`.
286
- */
287
- readonly options?: any;
288
- }
289
- /**
290
- * GroupVersionResource unambiguously identifies a resource. It doesn't anonymously include GroupVersion
291
- * to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling
292
- */
293
- export interface GroupVersionResource {
294
- readonly group: string;
295
- readonly version: string;
296
- readonly resource: string;
297
- }
298
- export type DeepPartial<T> = {
299
- [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
300
- }; /** Custom Labels Type for package.json */
224
+ /** Custom Labels Type for package.json */
301
225
  export type CustomLabels = {
302
226
  namespace: Record<string, string>;
303
227
  } | Record<string, never>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAKA,uCAAuC;AACvC,eAAO,MAAM,OAAO,EAAE,MAA2B,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAO/F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,MAAM,EAAE,CAmBrF;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,gCAAgC;AAChC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -1,6 +1,5 @@
1
1
  import { KubernetesObject } from "kubernetes-fluent-client";
2
- import { AdmissionRequest } from "./types";
3
- import { ValidateActionResponse } from "./types";
2
+ import { AdmissionRequest, ValidateActionResponse } from "./common-types";
4
3
  /**
5
4
  * The RequestWrapper class provides methods to modify Kubernetes objects in the context
6
5
  * of a mutating webhook request.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-request.d.ts","sourceRoot":"","sources":["../../../src/lib/validate-request.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,gBAAgB;;IACzD,GAAG,EAAE,CAAC,CAAC;IAIP;;;OAGG;IACH,IAAI,WAAW,IAAI,gBAAgB,GAAG,SAAS,CAE9C;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAEhD;IAED;;;OAGG;gBACS,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAgBtC;;;;;OAKG;IACH,QAAQ,QAAS,MAAM,KAAG,OAAO,CAE/B;IAEF;;;;;OAKG;IACH,aAAa,QAAS,MAAM,KAAG,OAAO,CAEpC;IAEF;;;;OAIG;IACH,OAAO,QAAO,sBAAsB,CAIlC;IAEF;;;;;;OAMG;IACH,IAAI,mBAAoB,MAAM,eAAe,MAAM,KAAG,sBAAsB,CAM1E;CACH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,GAAG,MAAM,wBAAwB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,GAAG,EACH,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,CAAC,EACD,YAAY,EACZ,CAAC,EACD,KAAK,EACL,WAAW,EACX,IAAI,EACJ,GAAG,GACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/runtime/controller.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/runtime/controller.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosign.d.ts","sourceRoot":"","sources":["../../../src/sdk/cosign.ts"],"names":[],"mappings":"AAWA,oBAAY,iBAAiB;IAC3B,QAAQ,yDAAyD;CAClE;AAED,oBAAY,cAAc;IACxB,QAAQ,+CAA+C;IACvD,KAAK,4CAA4C;CAClD;AAGD,wBAAsB,IAAI,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAClC,OAAO,CAAC,GAAG,CAAC,CAwCd;AAGD,wBAAsB,GAAG,CACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAClC,OAAO,CAAC,GAAG,CAAC,CAmDd;AAGD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAClC,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAMD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,OAAO,CAAC,CAsIlB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heredoc.d.ts","sourceRoot":"","sources":["../../../src/sdk/heredoc.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAgClF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAO,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EACpE,aAAa,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,qBAAqB,GACtE,WAAW,EAAE,CAef;AAED;;;;;;;;;GASG;AAEH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAC9B,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,WAAW,EAC3B,kBAAkB,CAAC,EAAE,OAAO,EAC5B,UAAU,CAAC,EAAE,OAAO,GACnB,gBAAgB,EAAE,CAcpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYzD"}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "!src/**/*.test.ts",
16
16
  "!dist/**/*.test.d.ts*"
17
17
  ],
18
- "version": "0.46.1-nightly.1",
18
+ "version": "0.46.1-nightly.10",
19
19
  "main": "dist/lib.js",
20
20
  "types": "dist/lib.d.ts",
21
21
  "scripts": {
@@ -24,7 +24,7 @@
24
24
  "prebuild": "rm -fr dist/* && npm run gen-data-json",
25
25
  "build": "tsc && node build.mjs && npm pack",
26
26
  "build:image": "npm run build && docker buildx build --output type=docker --tag pepr:dev .",
27
- "build:image:unicorn": "npm run build && docker buildx build -f Dockerfile.unicorn --output type=docker --tag pepr:dev .",
27
+ "build:image:unicorn": "npm run build && docker buildx build -f Dockerfile --output type=docker --tag pepr:dev $(node scripts/read-unicorn-build-args.js) .",
28
28
  "set:version": "node scripts/set-version.js",
29
29
  "test": "npm run test:unit && npm run test:journey && npm run test:journey-wasm",
30
30
  "test:unit": "npm run gen-data-json && jest src --coverage --detectOpenHandles --coverageDirectory=./coverage --testPathIgnorePatterns='cosign.e2e.test.ts'",
@@ -37,7 +37,7 @@
37
37
  "test:journey-wasm:unicorn": "npm run test:journey:k3d && npm run build && npm run test:journey:image:unicorn && npm run test:journey:run-wasm",
38
38
  "test:journey:k3d": "k3d cluster delete pepr-dev && k3d cluster create pepr-dev --k3s-arg '--debug@server:0' --wait && kubectl rollout status deployment -n kube-system",
39
39
  "test:journey:image": "docker buildx build --output type=docker --tag pepr:dev . && k3d image import pepr:dev -c pepr-dev",
40
- "test:journey:image:unicorn": "docker buildx build -f Dockerfile.unicorn --output type=docker --tag pepr:dev . && k3d image import pepr:dev -c pepr-dev",
40
+ "test:journey:image:unicorn": "docker buildx build -f Dockerfile --output type=docker --tag pepr:dev $(node scripts/read-unicorn-build-args.js) . && k3d image import pepr:dev -c pepr-dev",
41
41
  "test:journey:run": "jest --detectOpenHandles journey/entrypoint.test.ts && npm run test:journey:upgrade",
42
42
  "test:journey:run-wasm": "jest --detectOpenHandles journey/entrypoint-wasm.test.ts",
43
43
  "test:journey:upgrade": "npm run test:journey:k3d && npm run test:journey:image && jest --detectOpenHandles journey/pepr-upgrade.test.ts",
@@ -52,7 +52,7 @@
52
52
  "follow-redirects": "1.15.9",
53
53
  "http-status-codes": "^2.3.0",
54
54
  "json-pointer": "^0.6.2",
55
- "kubernetes-fluent-client": "3.4.2",
55
+ "kubernetes-fluent-client": "3.4.5",
56
56
  "pino": "9.6.0",
57
57
  "pino-pretty": "13.0.0",
58
58
  "prom-client": "15.1.3",
@@ -60,8 +60,10 @@
60
60
  "sigstore": "3.1.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@commitlint/cli": "19.7.1",
64
- "@commitlint/config-conventional": "19.7.1",
63
+ "@commitlint/cli": "19.8.0",
64
+ "@commitlint/config-conventional": "19.8.0",
65
+ "@eslint/eslintrc": "^3.3.0",
66
+ "@eslint/js": "^9.21.0",
65
67
  "@fast-check/jest": "^2.0.1",
66
68
  "@jest/globals": "29.7.0",
67
69
  "@types/eslint": "9.6.1",
@@ -71,12 +73,15 @@
71
73
  "@types/node": "22.x.x",
72
74
  "@types/node-forge": "1.3.11",
73
75
  "@types/uuid": "10.0.0",
74
- "fast-check": "^3.19.0",
76
+ "eslint": "^9.21.0",
77
+ "fast-check": "^4.0.0",
78
+ "globals": "^16.0.0",
75
79
  "husky": "^9.1.6",
76
80
  "jest": "29.7.0",
77
81
  "js-yaml": "^4.1.0",
78
82
  "shellcheck": "^3.0.0",
79
83
  "ts-jest": "29.2.6",
84
+ "typescript-eslint": "^8.26.0",
80
85
  "undici": "^7.0.1"
81
86
  },
82
87
  "overrides": {
package/src/cli/dev.ts CHANGED
@@ -75,7 +75,7 @@ export default function (program: RootCmd): void {
75
75
  program = fork(path, {
76
76
  env: {
77
77
  ...process.env,
78
- LOG_LEVEL: "debug",
78
+ LOG_LEVEL: process.env.LOG_LEVEL ?? "debug",
79
79
  PEPR_MODE: "dev",
80
80
  PEPR_API_PATH: webhook.apiPath,
81
81
  PEPR_PRETTY_LOGS: "true",
@@ -1,10 +1,10 @@
1
1
  import { kind } from "kubernetes-fluent-client";
2
2
 
3
- import { AdmissionRequest } from "../lib/types";
4
3
  import admissionRequestCreatePod from "./data/admission-create-pod.json";
5
4
  import admissionRequestDeletePod from "./data/admission-delete-pod.json";
6
5
  import admissionRequestCreateClusterRole from "./data/admission-create-clusterrole.json";
7
6
  import admissionRequestCreateDeployment from "./data/admission-create-deployment.json";
7
+ import { AdmissionRequest } from "../lib/common-types";
8
8
 
9
9
  export function AdmissionRequestCreateDeployment(): AdmissionRequest<kind.Deployment> {
10
10
  return cloneObject<kind.Deployment>(admissionRequestCreateDeployment);
@@ -1,8 +1,25 @@
1
- import { GenericClass } from "kubernetes-fluent-client";
1
+ import { GenericClass, GroupVersionKind } from "kubernetes-fluent-client";
2
2
  import { Event } from "../enums";
3
3
  import { Binding, CapabilityExport } from "../types";
4
4
  import { defaultFilters } from "../filter/adjudicators/defaultTestObjects";
5
5
  import { V1PolicyRule as PolicyRule } from "@kubernetes/client-node";
6
+ import { AdmissionRequest, GroupVersionResource } from "../common-types";
7
+ import { Operation } from "../enums";
8
+
9
+ export const createMockAdmissionRequest = (
10
+ kind: GroupVersionKind = { kind: "kind", group: "group", version: "version" },
11
+ resource: GroupVersionResource = { group: "group", version: "version", resource: "resource" },
12
+ object: { metadata: { name: string } } = { metadata: { name: "create-me" } },
13
+ operation: Operation = Operation.CREATE,
14
+ ): AdmissionRequest => ({
15
+ uid: "uid",
16
+ kind,
17
+ resource,
18
+ name: "",
19
+ object,
20
+ operation,
21
+ userInfo: {},
22
+ });
6
23
 
7
24
  export const createMockRbacRule = (
8
25
  apiGroups: string[] = ["pepr.dev"],
@@ -5,7 +5,7 @@ import { dumpYaml } from "@kubernetes/client-node";
5
5
  import { clusterRole } from "../rbac";
6
6
  import { promises as fs } from "fs";
7
7
 
8
- type ChartOverrides = {
8
+ export type ChartOverrides = {
9
9
  apiPath: string;
10
10
  capabilities: CapabilityExport[];
11
11
  config: ModuleConfig;
@@ -0,0 +1,103 @@
1
+ import { GroupVersionKind, KubernetesObject } from "kubernetes-fluent-client";
2
+ import { Operation } from "./enums";
3
+
4
+ /**
5
+ * A Kubernetes admission request to be processed by a capability.
6
+ */
7
+ export interface AdmissionRequest<T = KubernetesObject> {
8
+ /** UID is an identifier for the individual request/response. */
9
+ readonly uid: string;
10
+
11
+ /** Kind is the fully-qualified type of object being submitted (for example, v1.Pod or autoscaling.v1.Scale) */
12
+ readonly kind: GroupVersionKind;
13
+
14
+ /** Resource is the fully-qualified resource being requested (for example, v1.pods) */
15
+ readonly resource: GroupVersionResource;
16
+
17
+ /** SubResource is the sub-resource being requested, if any (for example, "status" or "scale") */
18
+ readonly subResource?: string;
19
+
20
+ /** RequestKind is the fully-qualified type of the original API request (for example, v1.Pod or autoscaling.v1.Scale). */
21
+ readonly requestKind?: GroupVersionKind;
22
+
23
+ /** RequestResource is the fully-qualified resource of the original API request (for example, v1.pods). */
24
+ readonly requestResource?: GroupVersionResource;
25
+
26
+ /** RequestSubResource is the sub-resource of the original API request, if any (for example, "status" or "scale"). */
27
+ readonly requestSubResource?: string;
28
+
29
+ /**
30
+ * Name is the name of the object as presented in the request. On a CREATE operation, the client may omit name and
31
+ * rely on the server to generate the name. If that is the case, this method will return the empty string.
32
+ */
33
+ readonly name: string;
34
+
35
+ /** Namespace is the namespace associated with the request (if any). */
36
+ readonly namespace?: string;
37
+
38
+ /**
39
+ * Operation is the operation being performed. This may be different than the operation
40
+ * requested. e.g. a patch can result in either a CREATE or UPDATE Operation.
41
+ */
42
+ readonly operation: Operation;
43
+
44
+ /** UserInfo is information about the requesting user */
45
+ readonly userInfo: {
46
+ /** The name that uniquely identifies this user among all active users. */
47
+ username?: string;
48
+
49
+ /**
50
+ * A unique value that identifies this user across time. If this user is deleted
51
+ * and another user by the same name is added, they will have different UIDs.
52
+ */
53
+ uid?: string;
54
+
55
+ /** The names of groups this user is a part of. */
56
+ groups?: string[];
57
+
58
+ /** Any additional information provided by the authenticator. */
59
+ extra?: {
60
+ [key: string]: string[];
61
+ };
62
+ };
63
+
64
+ /** Object is the object from the incoming request prior to default values being applied */
65
+ readonly object: T;
66
+
67
+ /** OldObject is the existing object. Only populated for UPDATE or DELETE requests. */
68
+ readonly oldObject?: T;
69
+
70
+ /** DryRun indicates that modifications will definitely not be persisted for this request. Defaults to false. */
71
+ readonly dryRun?: boolean;
72
+
73
+ /**
74
+ * Options contains the options for the operation being performed.
75
+ * e.g. `meta.k8s.io/v1.DeleteOptions` or `meta.k8s.io/v1.CreateOptions`. This may be
76
+ * different than the options the caller provided. e.g. for a patch request the performed
77
+ * Operation might be a CREATE, in which case the Options will a
78
+ * `meta.k8s.io/v1.CreateOptions` even though the caller provided `meta.k8s.io/v1.PatchOptions`.
79
+ */
80
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
+ readonly options?: any;
82
+ }
83
+
84
+ /**
85
+ * GroupVersionResource unambiguously identifies a resource. It doesn't anonymously include GroupVersion
86
+ * to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling
87
+ */
88
+ export interface GroupVersionResource {
89
+ readonly group: string;
90
+ readonly version: string;
91
+ readonly resource: string;
92
+ }
93
+
94
+ export type ValidateActionResponse = {
95
+ allowed: boolean;
96
+ statusCode?: number;
97
+ statusMessage?: string;
98
+ };
99
+
100
+ // DeepPartial utility type for deep optional properties
101
+ export type DeepPartial<T> = {
102
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
103
+ };
@@ -14,8 +14,8 @@ import { ModuleConfig } from "../types";
14
14
  import { mutateProcessor } from "../processors/mutate-processor";
15
15
  import { validateProcessor } from "../processors/validate-processor";
16
16
  import { StoreController } from "./store";
17
- import { AdmissionRequest } from "../types";
18
17
  import { karForMutate, karForValidate, KubeAdmissionReview } from "./index.util";
18
+ import { AdmissionRequest } from "../common-types";
19
19
 
20
20
  export interface ControllerHooks {
21
21
  beforeHook?: (req: AdmissionRequest) => void;
@@ -1,8 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
3
3
 
4
+ import { AdmissionRequest } from "../common-types";
4
5
  import { MutateResponse, ValidateResponse } from "../k8s";
5
- import { ResponseItem, AdmissionRequest } from "../types";
6
+ import { ResponseItem } from "../types";
6
7
 
7
8
  export interface KubeAdmissionReview {
8
9
  apiVersion: string;
@@ -6,7 +6,7 @@ import { Controller, ControllerHooks } from "../controller";
6
6
  import { ValidateError } from "../errors";
7
7
  import { CapabilityExport } from "../types";
8
8
  import { setupWatch } from "../processors/watch-processor";
9
- import { Log } from "../../lib";
9
+ import Log from "../../lib/telemetry/logger";
10
10
  import { resolveIgnoreNamespaces } from "../assets/webhooks";
11
11
  import { isBuildMode, isDevMode, isWatchMode } from "./envChecks";
12
12
  import { PackageJSON, PeprModuleOptions, ModuleConfig } from "../types";
@@ -2,9 +2,9 @@
2
2
  // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
3
3
 
4
4
  import { Operation } from "../../enums";
5
- import { AdmissionRequest } from "../../types";
6
5
  import { defaultTo, pipe } from "ramda";
7
6
  import { KubernetesObject } from "kubernetes-fluent-client";
7
+ import { AdmissionRequest } from "../../common-types";
8
8
 
9
9
  export const declaredOperation = pipe(
10
10
  (request: AdmissionRequest<KubernetesObject>): Operation => request?.operation,
@@ -1,6 +1,7 @@
1
1
  import { GroupVersionKind, kind, KubernetesObject } from "kubernetes-fluent-client";
2
2
  import { Event, Operation } from "../../enums";
3
- import { AdmissionRequest, Binding, Filters } from "../../types";
3
+ import { Binding, Filters } from "../../types";
4
+ import { AdmissionRequest } from "../../common-types";
4
5
 
5
6
  export const defaultFilters: Filters = {
6
7
  annotations: {},
@@ -62,6 +62,11 @@ export const uncarryableNamespace = allPass([
62
62
  }, not),
63
63
  ]);
64
64
 
65
+ /*
66
+ * Returns true if the object is missing a carriable namespace.
67
+ * - If the object is a Namespace, it returns true if its name is not in the namespaceSelector.
68
+ * - Otherwise, it returns true if the object does not carry a namespace.
69
+ */
65
70
  export const missingCarriableNamespace = allPass([
66
71
  pipe(nthArg(0), length, gt(__, 0)),
67
72
  pipe((namespaceSelector: string[], kubernetesObject: KubernetesObject): boolean =>
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
3
3
 
4
- import { AdmissionRequest, Binding } from "../../types";
4
+ import { Binding } from "../../types";
5
5
  import { allPass, any, anyPass, equals, not, nthArg, pipe } from "ramda";
6
6
  import {
7
7
  definedAnnotations,
@@ -34,6 +34,7 @@ import {
34
34
  } from "./kubernetesObject";
35
35
  import { declaredOperation, declaredGroup, declaredVersion, declaredKind } from "./admissionRequest";
36
36
  import { Event, Operation } from "../../enums";
37
+ import { AdmissionRequest } from "../../common-types";
37
38
 
38
39
  export const mismatchedDeletionTimestamp = allPass([
39
40
  pipe(nthArg(0), definesDeletionTimestamp),
@@ -79,10 +80,10 @@ export const metasMismatch = pipe(
79
80
  // prettier-ignore
80
81
  return (
81
82
  keyMissing ? { [key]: value } :
82
- noValue ? {} :
83
- valMissing ? { [key]: value } :
84
- valDiffers ? { [key]: value } :
85
- {}
83
+ noValue ? {} :
84
+ valMissing ? { [key]: value } :
85
+ valDiffers ? { [key]: value } :
86
+ {}
86
87
  )
87
88
  })
88
89
  .reduce((acc, cur) => ({ ...acc, ...cur }), {});
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
3
3
 
4
- import { AdmissionRequest, Binding } from "../types";
4
+ import { Binding } from "../types";
5
5
  import { Operation } from "../enums";
6
6
  import { KubernetesObject } from "kubernetes-fluent-client";
7
7
  import {
@@ -39,6 +39,7 @@ import {
39
39
  mismatchedNamespaceRegex,
40
40
  mismatchedNameRegex,
41
41
  } from "./adjudicators/mismatch";
42
+ import { AdmissionRequest } from "../common-types";
42
43
 
43
44
  type AdjudicationResult = string | null;
44
45
  type Adjudicator = () => AdjudicationResult;
@@ -3,9 +3,10 @@
3
3
 
4
4
  import { K8s, KubernetesObject, RegisterKind } from "kubernetes-fluent-client";
5
5
  import Log from "./telemetry/logger";
6
- import { Binding, DeepPartial } from "./types";
6
+ import { Binding } from "./types";
7
7
  import { Operation } from "./enums";
8
8
  import { PeprMutateRequest } from "./mutate-request";
9
+ import { DeepPartial } from "./common-types";
9
10
 
10
11
  export function addFinalizer<K extends KubernetesObject>(request: PeprMutateRequest<K>): void {
11
12
  // if a DELETE is being processed, don't add a finalizer
@@ -1,10 +1,11 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
3
3
 
4
- import { AdmissionRequest, DeepPartial } from "./types";
5
4
  import { Operation } from "./enums";
6
5
  import { KubernetesObject } from "kubernetes-fluent-client";
7
6
  import { clone, mergeDeepRight } from "ramda";
7
+ import { AdmissionRequest } from "./common-types";
8
+ import { DeepPartial } from "./common-types";
8
9
 
9
10
  // PeprMutateRequest class for mutation request handling
10
11
  export class PeprMutateRequest<T extends KubernetesObject> {
@@ -0,0 +1,31 @@
1
+ import { convertFromBase64Map, convertToBase64Map } from "../utils";
2
+ import { kind, KubernetesObject } from "kubernetes-fluent-client";
3
+ import { PeprMutateRequest } from "../mutate-request";
4
+ import { clone } from "ramda";
5
+
6
+ export function decodeData(wrapped: PeprMutateRequest<KubernetesObject>): {
7
+ skipped: string[];
8
+ wrapped: PeprMutateRequest<KubernetesObject>;
9
+ } {
10
+ let skipped: string[] = [];
11
+
12
+ const isSecret = wrapped.Request.kind.version === "v1" && wrapped.Request.kind.kind === "Secret";
13
+ if (isSecret) {
14
+ // convertFromBase64Map modifies it's arg rather than returing a mod'ed copy (ye olde side-effect special, blerg)
15
+ skipped = convertFromBase64Map(wrapped.Raw as unknown as kind.Secret);
16
+ }
17
+
18
+ return { skipped, wrapped };
19
+ }
20
+
21
+ export function reencodeData(wrapped: PeprMutateRequest<KubernetesObject>, skipped: string[]): KubernetesObject {
22
+ const transformed = clone(wrapped.Raw);
23
+
24
+ const isSecret = wrapped.Request.kind.version === "v1" && wrapped.Request.kind.kind === "Secret";
25
+ if (isSecret) {
26
+ // convertToBase64Map modifies it's arg rather than returing a mod'ed copy (ye olde side-effect special, blerg)
27
+ convertToBase64Map(transformed as unknown as kind.Secret, skipped);
28
+ }
29
+
30
+ return transformed;
31
+ }