@vaharoni/devops 1.2.13 → 1.2.14

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 (323) hide show
  1. package/dist/chunk-N7EX3HJH.js +139 -0
  2. package/dist/chunk-RZ46YYZZ.js +420 -0
  3. package/dist/chunk-WKP7EQNU.js +421 -0
  4. package/dist/devops.d.ts +0 -2
  5. package/dist/devops.js +3235 -91
  6. package/dist/index.d.ts +972 -4
  7. package/dist/index.js +67 -3
  8. package/dist/plugins.d.ts +95 -4
  9. package/dist/plugins.js +20 -6
  10. package/dist/src/target-templates/README.md +1 -0
  11. package/dist/src/target-templates/cluster-resource-options/README.md +2 -0
  12. package/dist/src/target-templates/cluster-resource-options/dns-test/dns-test.yaml +60 -0
  13. package/dist/src/target-templates/cluster-resource-options/milvus/production/milvus-values.yaml +2 -0
  14. package/dist/src/target-templates/cluster-resource-options/milvus/staging/milvus-values.yaml +2 -0
  15. package/dist/src/target-templates/cluster-resource-options/monitoring-ingress/monitoring-ingress.yaml +62 -0
  16. package/dist/src/target-templates/cluster-resource-options/postgres/daily-operator-restart.yaml +54 -0
  17. package/dist/src/target-templates/cluster-resource-options/postgres/production/cluster/PodDisruptionBudget.yaml +27 -0
  18. package/dist/src/target-templates/cluster-resource-options/postgres/production/cluster/SGCluster.yaml +47 -0
  19. package/dist/src/target-templates/cluster-resource-options/postgres/production/cluster/StackGres-alerts.yaml +191 -0
  20. package/dist/src/target-templates/cluster-resource-options/postgres/production/configurations/06-SGDistributedLogs.yaml +11 -0
  21. package/dist/src/target-templates/cluster-resource-options/postgres/production/configurations/07-SGObjectStorage.yaml +18 -0
  22. package/dist/src/target-templates/cluster-resource-options/postgres/production/configurations/08-SGScript.yaml +12 -0
  23. package/dist/src/target-templates/cluster-resource-options/postgres/stackgres-ui-ingress.yaml +35 -0
  24. package/dist/src/target-templates/cluster-resource-options/postgres/staging/cluster/SGCluster.yaml +42 -0
  25. package/dist/src/target-templates/cluster-resource-options/postgres/staging/configurations/07-SGObjectStorage.yaml +18 -0
  26. package/dist/src/target-templates/cluster-resource-options/postgres/staging/configurations/08-SGScript.yaml +12 -0
  27. package/dist/src/target-templates/cluster-resource-options/prefect/production/prefect-values.yaml +14 -0
  28. package/dist/src/target-templates/cluster-resource-options/prefect/staging/prefect-values.yaml +14 -0
  29. package/dist/src/target-templates/cluster-resource-options/redis/production/redis-values.yaml +20 -0
  30. package/dist/src/target-templates/cluster-resource-options/redis/staging/redis-values.yaml +8 -0
  31. package/dist/src/target-templates/infra-variants/README.md +2 -0
  32. package/dist/src/target-templates/infra-variants/digitalocean/.devops/config/constants.yaml +18 -0
  33. package/dist/src/target-templates/infra-variants/digitalocean/.github/workflows/k8s-build.yaml +91 -0
  34. package/dist/src/target-templates/infra-variants/gcloud/.devops/config/constants.yaml +15 -0
  35. package/dist/src/target-templates/infra-variants/gcloud/.devops/manifests/ingress.yaml.hb +22 -0
  36. package/dist/src/target-templates/infra-variants/gcloud/.github/workflows/k8s-build.yaml +95 -0
  37. package/dist/src/target-templates/infra-variants/hetzner/.devops/config/constants.yaml +18 -0
  38. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/abandoned/harbor-values.yaml +30 -0
  39. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/abandoned/hcloud-config.yaml +134 -0
  40. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/cert-manager.yaml +25 -0
  41. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/harbor-cert.yaml +13 -0
  42. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/harbor-values.yaml +76 -0
  43. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/hcloud-config.yaml +113 -0
  44. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/ingress-nginx-annotations.yaml +49 -0
  45. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/ingress-nginx-configmap.yaml +8 -0
  46. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/retain-storage-class.yaml +8 -0
  47. package/dist/src/target-templates/infra-variants/hetzner/.github/workflows/k8s-build.yaml +93 -0
  48. package/dist/src/target-templates/lang-variants-common/README.md +4 -0
  49. package/dist/src/target-templates/lang-variants-common/python/.cursor/rules/monorepo-python.mdc +56 -0
  50. package/dist/src/target-templates/lang-variants-common/python/.devops/config/images.yaml +89 -0
  51. package/dist/src/target-templates/lang-variants-common/python/.devops/docker-images/python-services/python-exec.sh +8 -0
  52. package/dist/src/target-templates/lang-variants-common/python/.devops/docker-images/python-services/python-run.sh +8 -0
  53. package/dist/src/target-templates/lang-variants-common/python/.devops/docker-images/python-services.Dockerfile +29 -0
  54. package/dist/src/target-templates/lang-variants-common/python/.devops/manifests/_index.yaml +21 -0
  55. package/dist/src/target-templates/lang-variants-common/python/.devops/manifests/prefect.yaml.hb +63 -0
  56. package/dist/src/target-templates/lang-variants-common/python/applications/example-data-pipeline/pyproject.toml +14 -0
  57. package/dist/src/target-templates/lang-variants-common/python/applications/example-data-pipeline/src/example_data_pipeline/main.py +38 -0
  58. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/pyproject.toml +20 -0
  59. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/src/example_python/__init__.py +0 -0
  60. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/src/example_python/main.py +13 -0
  61. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/src/example_python/scripts.py +17 -0
  62. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/tests/__init__.py +0 -0
  63. package/dist/src/target-templates/lang-variants-common/python/devopspy +3 -0
  64. package/dist/src/target-templates/lang-variants-common/python/libs/example-python-lib/pyproject.toml +11 -0
  65. package/dist/src/target-templates/lang-variants-common/python/libs/example-python-lib/src/example_python_lib/__init__.py +2 -0
  66. package/dist/src/target-templates/lang-variants-common/python/pyproject.toml +16 -0
  67. package/dist/src/target-templates/lang-variants-common/typescript/.cursor/rules/monorepo-typescript.mdc +51 -0
  68. package/dist/src/target-templates/lang-variants-common/typescript/.devops/config/images.yaml +69 -0
  69. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/cloudrun.Dockerfile +31 -0
  70. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/common/docker-common.sh +23 -0
  71. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/node-services/node-exec.sh +8 -0
  72. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/node-services/node-run.sh +8 -0
  73. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/node-services.Dockerfile +31 -0
  74. package/dist/src/target-templates/lang-variants-common/typescript/.devops/env.example.yaml +23 -0
  75. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/_index.yaml +19 -0
  76. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/cron-jobs.yaml.hb +56 -0
  77. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/db-migrate-job.yaml.hb +43 -0
  78. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/deployment-debug.yaml.hb +42 -0
  79. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/deployment-process.yaml.hb +48 -0
  80. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/deployment-web.yaml.hb +54 -0
  81. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/ingress.yaml.hb +21 -0
  82. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/service.yaml.hb +15 -0
  83. package/dist/src/target-templates/lang-variants-common/typescript/.envrc +5 -0
  84. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/build-image@v1/action.yaml +81 -0
  85. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/connect-to-digital-ocean@v1/action.yaml +29 -0
  86. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/connect-to-gke@v1/action.yaml +43 -0
  87. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/connect-to-hetzner@v1/action.yaml +31 -0
  88. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/db-migrate@v1/action.yaml +23 -0
  89. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/deploy-image-cloudrun@v1/action.yaml +71 -0
  90. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/deploy-image-k8s@v1/action.yaml +37 -0
  91. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/setup-prereq@v1/action.yaml +24 -0
  92. package/dist/src/target-templates/lang-variants-common/typescript/applications/example-node/index.ts +30 -0
  93. package/dist/src/target-templates/lang-variants-common/typescript/applications/example-node/package.json +26 -0
  94. package/dist/src/target-templates/lang-variants-common/typescript/applications/example-node/tsconfig.json +3 -0
  95. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/README.md +68 -0
  96. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/index.ts +1 -0
  97. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/package.json +30 -0
  98. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/tsconfig.json +3 -0
  99. package/dist/src/target-templates/lang-variants-common/typescript/config/.env.development +1 -0
  100. package/dist/src/target-templates/lang-variants-common/typescript/config/.env.global +4 -0
  101. package/dist/src/target-templates/lang-variants-common/typescript/config/.env.test +1 -0
  102. package/dist/src/target-templates/lang-variants-common/typescript/devops +3 -0
  103. package/dist/src/target-templates/lang-variants-common/typescript/libs/example-node-lib/index.ts +3 -0
  104. package/dist/src/target-templates/lang-variants-common/typescript/libs/example-node-lib/package.json +12 -0
  105. package/dist/src/target-templates/lang-variants-common/typescript/libs/example-node-lib/tsconfig.json +3 -0
  106. package/dist/src/target-templates/lang-variants-common/typescript/tmp/.gitkeep +0 -0
  107. package/dist/src/target-templates/lang-variants-common/typescript/tsconfig.json +27 -0
  108. package/dist/src/target-templates/lang-variants-prisma/README.md +3 -0
  109. package/dist/src/target-templates/lang-variants-prisma/python/.cursor/rules/prisma-python.mdc +55 -0
  110. package/dist/src/target-templates/lang-variants-prisma/python/.cursor/rules/testing-python.mdc +89 -0
  111. package/dist/src/target-templates/lang-variants-prisma/python/db/db/__init__.py +0 -0
  112. package/dist/src/target-templates/lang-variants-prisma/python/db/db/db_client_test.py +46 -0
  113. package/dist/src/target-templates/lang-variants-prisma/python/db/pyproject.toml +14 -0
  114. package/dist/src/target-templates/lang-variants-prisma/typescript/.cursor/rules/prisma-typescript.mdc +54 -0
  115. package/dist/src/target-templates/lang-variants-prisma/typescript/.cursor/rules/testing-typescript.mdc +103 -0
  116. package/dist/src/target-templates/lang-variants-prisma/typescript/db/db-client-test.ts +142 -0
  117. package/dist/src/target-templates/lang-variants-prisma/typescript/db/db-client.ts +19 -0
  118. package/dist/src/target-templates/lang-variants-prisma/typescript/db/env.yaml +4 -0
  119. package/dist/src/target-templates/lang-variants-prisma/typescript/db/package.json +17 -0
  120. package/dist/src/target-templates/lang-variants-prisma/typescript/db/prisma/schema.prisma +24 -0
  121. package/dist/src/target-templates/lang-variants-prisma/typescript/db/prisma-setup-vitest.ts +27 -0
  122. package/dist/src/target-templates/lang-variants-prisma/typescript/db/tsconfig.json +3 -0
  123. package/dist/src/target-templates/lang-variants-prisma/typescript/dml/package.json +7 -0
  124. package/dist/src/target-templates/lang-variants-prisma/typescript/dml/tsconfig.json +3 -0
  125. package/package.json +3 -2
  126. package/src/cli/core/exec.ts +2 -4
  127. package/src/cli/core/run.ts +2 -4
  128. package/src/cli/extensions/prisma.ts +2 -4
  129. package/src/libs/init-generator.ts +2 -4
  130. package/src/pkg-root.ts +14 -0
  131. package/src/plugins.ts +2 -4
  132. package/dist/app-support/crypto/aes.d.ts +0 -15
  133. package/dist/app-support/crypto/aes.d.ts.map +0 -1
  134. package/dist/app-support/crypto/aes.js +0 -56
  135. package/dist/app-support/crypto/aes.spec.d.ts +0 -2
  136. package/dist/app-support/crypto/aes.spec.d.ts.map +0 -1
  137. package/dist/app-support/crypto/aes.spec.js +0 -58
  138. package/dist/app-support/crypto/index.d.ts +0 -16
  139. package/dist/app-support/crypto/index.d.ts.map +0 -1
  140. package/dist/app-support/crypto/index.js +0 -31
  141. package/dist/app-support/crypto/internal-token.d.ts +0 -20
  142. package/dist/app-support/crypto/internal-token.d.ts.map +0 -1
  143. package/dist/app-support/crypto/internal-token.js +0 -42
  144. package/dist/app-support/crypto/internal-token.spec.d.ts +0 -2
  145. package/dist/app-support/crypto/internal-token.spec.d.ts.map +0 -1
  146. package/dist/app-support/crypto/internal-token.spec.js +0 -45
  147. package/dist/app-support/crypto/secret.d.ts +0 -3
  148. package/dist/app-support/crypto/secret.d.ts.map +0 -1
  149. package/dist/app-support/crypto/secret.js +0 -12
  150. package/dist/app-support/crypto/secret.spec.d.ts +0 -2
  151. package/dist/app-support/crypto/secret.spec.d.ts.map +0 -1
  152. package/dist/app-support/crypto/secret.spec.js +0 -15
  153. package/dist/app-support/discovery/dev-discovery-loader.d.ts +0 -2
  154. package/dist/app-support/discovery/dev-discovery-loader.d.ts.map +0 -1
  155. package/dist/app-support/discovery/dev-discovery-loader.js +0 -30
  156. package/dist/app-support/discovery/service-endpoint.d.ts +0 -2
  157. package/dist/app-support/discovery/service-endpoint.d.ts.map +0 -1
  158. package/dist/app-support/discovery/service-endpoint.js +0 -10
  159. package/dist/cli/common.d.ts +0 -89
  160. package/dist/cli/common.d.ts.map +0 -1
  161. package/dist/cli/common.js +0 -246
  162. package/dist/cli/common.spec.d.ts +0 -2
  163. package/dist/cli/common.spec.d.ts.map +0 -1
  164. package/dist/cli/common.spec.js +0 -64
  165. package/dist/cli/core/affected.d.ts +0 -9
  166. package/dist/cli/core/affected.d.ts.map +0 -1
  167. package/dist/cli/core/affected.js +0 -101
  168. package/dist/cli/core/cloudrun.d.ts +0 -9
  169. package/dist/cli/core/cloudrun.d.ts.map +0 -1
  170. package/dist/cli/core/cloudrun.js +0 -119
  171. package/dist/cli/core/console.d.ts +0 -10
  172. package/dist/cli/core/console.d.ts.map +0 -1
  173. package/dist/cli/core/console.js +0 -50
  174. package/dist/cli/core/constant.d.ts +0 -9
  175. package/dist/cli/core/constant.d.ts.map +0 -1
  176. package/dist/cli/core/constant.js +0 -20
  177. package/dist/cli/core/env.d.ts +0 -9
  178. package/dist/cli/core/env.d.ts.map +0 -1
  179. package/dist/cli/core/env.js +0 -65
  180. package/dist/cli/core/exec.d.ts +0 -9
  181. package/dist/cli/core/exec.d.ts.map +0 -1
  182. package/dist/cli/core/exec.js +0 -48
  183. package/dist/cli/core/image.d.ts +0 -9
  184. package/dist/cli/core/image.d.ts.map +0 -1
  185. package/dist/cli/core/image.js +0 -153
  186. package/dist/cli/core/index.d.ts +0 -16
  187. package/dist/cli/core/index.d.ts.map +0 -1
  188. package/dist/cli/core/index.js +0 -15
  189. package/dist/cli/core/init.d.ts +0 -9
  190. package/dist/cli/core/init.d.ts.map +0 -1
  191. package/dist/cli/core/init.js +0 -219
  192. package/dist/cli/core/job.d.ts +0 -9
  193. package/dist/cli/core/job.d.ts.map +0 -1
  194. package/dist/cli/core/job.js +0 -65
  195. package/dist/cli/core/namespace.d.ts +0 -9
  196. package/dist/cli/core/namespace.d.ts.map +0 -1
  197. package/dist/cli/core/namespace.js +0 -67
  198. package/dist/cli/core/prep-build.d.ts +0 -10
  199. package/dist/cli/core/prep-build.d.ts.map +0 -1
  200. package/dist/cli/core/prep-build.js +0 -109
  201. package/dist/cli/core/registry.d.ts +0 -9
  202. package/dist/cli/core/registry.d.ts.map +0 -1
  203. package/dist/cli/core/registry.js +0 -66
  204. package/dist/cli/core/run-many.d.ts +0 -10
  205. package/dist/cli/core/run-many.d.ts.map +0 -1
  206. package/dist/cli/core/run-many.js +0 -48
  207. package/dist/cli/core/run.d.ts +0 -9
  208. package/dist/cli/core/run.d.ts.map +0 -1
  209. package/dist/cli/core/run.js +0 -35
  210. package/dist/cli/core/test.d.ts +0 -9
  211. package/dist/cli/core/test.d.ts.map +0 -1
  212. package/dist/cli/core/test.js +0 -26
  213. package/dist/cli/extensions/dml.d.ts +0 -9
  214. package/dist/cli/extensions/dml.d.ts.map +0 -1
  215. package/dist/cli/extensions/dml.js +0 -114
  216. package/dist/cli/extensions/index.d.ts +0 -9
  217. package/dist/cli/extensions/index.d.ts.map +0 -1
  218. package/dist/cli/extensions/index.js +0 -8
  219. package/dist/cli/extensions/internal-curl.d.ts +0 -10
  220. package/dist/cli/extensions/internal-curl.d.ts.map +0 -1
  221. package/dist/cli/extensions/internal-curl.js +0 -41
  222. package/dist/cli/extensions/jwt.d.ts +0 -9
  223. package/dist/cli/extensions/jwt.d.ts.map +0 -1
  224. package/dist/cli/extensions/jwt.js +0 -25
  225. package/dist/cli/extensions/prisma.d.ts +0 -9
  226. package/dist/cli/extensions/prisma.d.ts.map +0 -1
  227. package/dist/cli/extensions/prisma.js +0 -23
  228. package/dist/cli/extensions/redis-bitnami.d.ts +0 -11
  229. package/dist/cli/extensions/redis-bitnami.d.ts.map +0 -1
  230. package/dist/cli/extensions/redis-bitnami.js +0 -74
  231. package/dist/cli/extensions/redis-ha.d.ts +0 -11
  232. package/dist/cli/extensions/redis-ha.d.ts.map +0 -1
  233. package/dist/cli/extensions/redis-ha.js +0 -51
  234. package/dist/cli/extensions/stackgres.d.ts +0 -10
  235. package/dist/cli/extensions/stackgres.d.ts.map +0 -1
  236. package/dist/cli/extensions/stackgres.js +0 -117
  237. package/dist/cli/extensions/template.d.ts +0 -9
  238. package/dist/cli/extensions/template.d.ts.map +0 -1
  239. package/dist/cli/extensions/template.js +0 -121
  240. package/dist/devops.d.ts.map +0 -1
  241. package/dist/index.d.ts.map +0 -1
  242. package/dist/libs/affected-entities.d.ts +0 -15
  243. package/dist/libs/affected-entities.d.ts.map +0 -1
  244. package/dist/libs/affected-entities.js +0 -52
  245. package/dist/libs/cloudrun-helpers.d.ts +0 -16
  246. package/dist/libs/cloudrun-helpers.d.ts.map +0 -1
  247. package/dist/libs/cloudrun-helpers.js +0 -81
  248. package/dist/libs/config.d.ts +0 -7
  249. package/dist/libs/config.d.ts.map +0 -1
  250. package/dist/libs/config.js +0 -102
  251. package/dist/libs/digital-ocean/container-reg.d.ts +0 -6
  252. package/dist/libs/digital-ocean/container-reg.d.ts.map +0 -1
  253. package/dist/libs/digital-ocean/container-reg.js +0 -74
  254. package/dist/libs/discovery/dependencies.d.ts +0 -19
  255. package/dist/libs/discovery/dependencies.d.ts.map +0 -1
  256. package/dist/libs/discovery/dependencies.js +0 -62
  257. package/dist/libs/discovery/dependencies.spec.d.ts +0 -2
  258. package/dist/libs/discovery/dependencies.spec.d.ts.map +0 -1
  259. package/dist/libs/discovery/dependencies.spec.js +0 -21
  260. package/dist/libs/discovery/images.d.ts +0 -5
  261. package/dist/libs/discovery/images.d.ts.map +0 -1
  262. package/dist/libs/discovery/images.js +0 -45
  263. package/dist/libs/discovery/index.d.ts +0 -6
  264. package/dist/libs/discovery/index.d.ts.map +0 -1
  265. package/dist/libs/discovery/index.js +0 -67
  266. package/dist/libs/discovery/process-common.d.ts +0 -25
  267. package/dist/libs/discovery/process-common.d.ts.map +0 -1
  268. package/dist/libs/discovery/process-common.js +0 -40
  269. package/dist/libs/discovery/process-package-json.d.ts +0 -3
  270. package/dist/libs/discovery/process-package-json.d.ts.map +0 -1
  271. package/dist/libs/discovery/process-package-json.js +0 -40
  272. package/dist/libs/discovery/process-pyproject-toml.d.ts +0 -3
  273. package/dist/libs/discovery/process-pyproject-toml.d.ts.map +0 -1
  274. package/dist/libs/discovery/process-pyproject-toml.js +0 -49
  275. package/dist/libs/git-helpers.d.ts +0 -8
  276. package/dist/libs/git-helpers.d.ts.map +0 -1
  277. package/dist/libs/git-helpers.js +0 -20
  278. package/dist/libs/hetzner/reg-secret.d.ts +0 -3
  279. package/dist/libs/hetzner/reg-secret.d.ts.map +0 -1
  280. package/dist/libs/hetzner/reg-secret.js +0 -39
  281. package/dist/libs/init-generator.d.ts +0 -41
  282. package/dist/libs/init-generator.d.ts.map +0 -1
  283. package/dist/libs/init-generator.js +0 -123
  284. package/dist/libs/k8s-constants.d.ts +0 -13
  285. package/dist/libs/k8s-constants.d.ts.map +0 -1
  286. package/dist/libs/k8s-constants.js +0 -91
  287. package/dist/libs/k8s-db.d.ts +0 -18
  288. package/dist/libs/k8s-db.d.ts.map +0 -1
  289. package/dist/libs/k8s-db.js +0 -73
  290. package/dist/libs/k8s-generate.d.ts +0 -17
  291. package/dist/libs/k8s-generate.d.ts.map +0 -1
  292. package/dist/libs/k8s-generate.js +0 -193
  293. package/dist/libs/k8s-helpers.d.ts +0 -11
  294. package/dist/libs/k8s-helpers.d.ts.map +0 -1
  295. package/dist/libs/k8s-helpers.js +0 -42
  296. package/dist/libs/k8s-image-config.d.ts +0 -8
  297. package/dist/libs/k8s-image-config.d.ts.map +0 -1
  298. package/dist/libs/k8s-image-config.js +0 -113
  299. package/dist/libs/k8s-job-waiter.d.ts +0 -8
  300. package/dist/libs/k8s-job-waiter.d.ts.map +0 -1
  301. package/dist/libs/k8s-job-waiter.js +0 -84
  302. package/dist/libs/k8s-namespace.d.ts +0 -7
  303. package/dist/libs/k8s-namespace.d.ts.map +0 -1
  304. package/dist/libs/k8s-namespace.js +0 -27
  305. package/dist/libs/k8s-redis-bitnami.d.ts +0 -6
  306. package/dist/libs/k8s-redis-bitnami.d.ts.map +0 -1
  307. package/dist/libs/k8s-redis-bitnami.js +0 -31
  308. package/dist/libs/k8s-redis-ha.d.ts +0 -3
  309. package/dist/libs/k8s-redis-ha.d.ts.map +0 -1
  310. package/dist/libs/k8s-redis-ha.js +0 -15
  311. package/dist/libs/k8s-secrets-manager.d.ts +0 -6
  312. package/dist/libs/k8s-secrets-manager.d.ts.map +0 -1
  313. package/dist/libs/k8s-secrets-manager.js +0 -64
  314. package/dist/libs/validate-env.d.ts +0 -56
  315. package/dist/libs/validate-env.d.ts.map +0 -1
  316. package/dist/libs/validate-env.js +0 -214
  317. package/dist/libs/validate-env.spec.d.ts +0 -2
  318. package/dist/libs/validate-env.spec.d.ts.map +0 -1
  319. package/dist/libs/validate-env.spec.js +0 -168
  320. package/dist/plugins.d.ts.map +0 -1
  321. package/dist/types/index.d.ts +0 -939
  322. package/dist/types/index.d.ts.map +0 -1
  323. package/dist/types/index.js +0 -82
@@ -1,56 +0,0 @@
1
- type EnvRequirement = 'optional' | 'boolean' | 'required' | string[];
2
- type ParsedEnvYaml = Record<string, EnvRequirement>;
3
- type CombinedErrors = Record<string, string[]>;
4
- type KeysFromFiles = Record<string, string[]>;
5
- export declare class CombinedEnvValidator {
6
- envYamlPaths: string[];
7
- dotEnvPaths: string[];
8
- yamlValidators: SingleEnvValidator[];
9
- dotEnvParsers: DotEnvParser[];
10
- keysFromYamlFiles: Set<string>;
11
- keysFromDotEnvFiles: KeysFromFiles;
12
- errors: CombinedErrors;
13
- warnings: string[];
14
- constructor(envYamlPaths: string[], dotEnvPaths?: string[]);
15
- validate(): void;
16
- _handleYamlFiles(): void;
17
- _handleDotEnvFiles(): void;
18
- _loadYamlFiles(envYamlPaths: string[]): void;
19
- _validateYamlFiles(): void;
20
- _haltIfParsingErrors(): void;
21
- _extractErrors(): void;
22
- _loadDotEnvFiles(dotEnvPaths?: string[]): void;
23
- _parseDotEnvFiles(): void;
24
- _combineDotEnvFiles(): void;
25
- _extractWarnings(): void;
26
- _finalize(): void;
27
- }
28
- /**
29
- * While we don't strictly need to parse .env files (we can simply use process.env), it is useful to give
30
- * warnings to the user that there are unused entries in .env files compared to the stated requirements
31
- * captured in env.yaml files.
32
- */
33
- export declare class DotEnvParser {
34
- path: string;
35
- keys: string[] | undefined;
36
- constructor(path: string);
37
- parse(): void;
38
- _readFile(path: string): string | undefined;
39
- _parse(text: string): string[];
40
- }
41
- export declare class SingleEnvValidator {
42
- envYamlPath: string;
43
- parsedEnvYaml: ParsedEnvYaml | undefined;
44
- parsingError: string | undefined;
45
- errors: Record<string, string>;
46
- constructor(envYamlPath: string);
47
- validate(): void;
48
- _readFile(): any;
49
- _generateError(message: string): string;
50
- _setParsingError(message: string): void;
51
- _addError(key: string, message: string): void;
52
- _parse(): ParsedEnvYaml | undefined;
53
- _addAllErrors(): void;
54
- }
55
- export {};
56
- //# sourceMappingURL=validate-env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-env.d.ts","sourceRoot":"","sources":["../../src/libs/validate-env.ts"],"names":[],"mappings":"AAIA,KAAK,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC;AACrE,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACpD,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/C,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAE9C,qBAAa,oBAAoB;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,cAAc,EAAE,kBAAkB,EAAE,CAAM;IAC1C,aAAa,EAAE,YAAY,EAAE,CAAM;IAEnC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAC3C,mBAAmB,EAAE,aAAa,CAAM;IAExC,MAAM,EAAE,cAAc,CAAM;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAM;gBAEZ,YAAY,EAAE,MAAM,EAAE,EAAE,WAAW,GAAE,MAAM,EAAO;IAO9D,QAAQ;IAMR,gBAAgB;IAOhB,kBAAkB;IAOlB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;IAOrC,kBAAkB;IAIlB,oBAAoB;IAapB,cAAc;IAYd,gBAAgB,CAAC,WAAW,GAAE,MAAM,EAAO;IAO3C,iBAAiB;IAIjB,mBAAmB;IAUnB,gBAAgB;IAShB,SAAS;CAkBV;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;gBAEf,IAAI,EAAE,MAAM;IAIxB,KAAK;IAKL,SAAS,CAAC,IAAI,EAAE,MAAM;IAKtB,MAAM,CAAC,IAAI,EAAE,MAAM;CAWpB;AAED,qBAAa,kBAAkB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;gBAExB,WAAW,EAAE,MAAM;IAI/B,QAAQ;IAKR,SAAS;IAQT,cAAc,CAAC,OAAO,EAAE,MAAM;IAI9B,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAIhC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAItC,MAAM;IAmCN,aAAa;CAwBd"}
@@ -1,214 +0,0 @@
1
- import fs from 'fs';
2
- import yaml from 'yaml';
3
- import { IGNORED_PATHS } from './discovery/process-common';
4
- export class CombinedEnvValidator {
5
- envYamlPaths;
6
- dotEnvPaths;
7
- yamlValidators = [];
8
- dotEnvParsers = [];
9
- keysFromYamlFiles = new Set();
10
- keysFromDotEnvFiles = {};
11
- errors = {};
12
- warnings = [];
13
- constructor(envYamlPaths, dotEnvPaths = []) {
14
- this.envYamlPaths = envYamlPaths.filter(path => !IGNORED_PATHS.some((ignoredPath) => path.includes(ignoredPath)));
15
- this.dotEnvPaths = dotEnvPaths;
16
- }
17
- validate() {
18
- this._handleYamlFiles();
19
- this._handleDotEnvFiles();
20
- this._finalize();
21
- }
22
- _handleYamlFiles() {
23
- this._loadYamlFiles(this.envYamlPaths);
24
- this._validateYamlFiles();
25
- this._haltIfParsingErrors();
26
- this._extractErrors();
27
- }
28
- _handleDotEnvFiles() {
29
- this._loadDotEnvFiles(this.dotEnvPaths);
30
- this._parseDotEnvFiles();
31
- this._combineDotEnvFiles();
32
- this._extractWarnings();
33
- }
34
- _loadYamlFiles(envYamlPaths) {
35
- envYamlPaths.forEach((path) => {
36
- const validator = new SingleEnvValidator(path);
37
- this.yamlValidators.push(validator);
38
- });
39
- }
40
- _validateYamlFiles() {
41
- this.yamlValidators.forEach((x) => x.validate());
42
- }
43
- _haltIfParsingErrors() {
44
- const filesWithParsingErrors = this.yamlValidators.filter((validator) => Boolean(validator.parsingError));
45
- if (filesWithParsingErrors.length === 0)
46
- return;
47
- console.error('The following env.yaml files have parsing errors:');
48
- filesWithParsingErrors.forEach((validator) => {
49
- console.error(`\t${validator.parsingError}`);
50
- });
51
- process.exit(1);
52
- }
53
- _extractErrors() {
54
- this.yamlValidators.forEach((validator) => {
55
- Object.keys(validator.parsedEnvYaml ?? {}).forEach((envVar) => {
56
- this.keysFromYamlFiles.add(envVar);
57
- });
58
- Object.entries(validator.errors).forEach(([envVar, error]) => {
59
- this.errors[envVar] ??= [];
60
- this.errors[envVar].push(error);
61
- });
62
- });
63
- }
64
- _loadDotEnvFiles(dotEnvPaths = []) {
65
- dotEnvPaths.forEach((path) => {
66
- const parser = new DotEnvParser(path);
67
- this.dotEnvParsers.push(parser);
68
- });
69
- }
70
- _parseDotEnvFiles() {
71
- this.dotEnvParsers.forEach((x) => x.parse());
72
- }
73
- _combineDotEnvFiles() {
74
- this.dotEnvParsers.forEach((parser) => {
75
- if (!parser.keys)
76
- return;
77
- parser.keys.forEach((key) => {
78
- this.keysFromDotEnvFiles[key] ??= [];
79
- this.keysFromDotEnvFiles[key].push(parser.path);
80
- });
81
- });
82
- }
83
- _extractWarnings() {
84
- const unusedKeys = Object.keys(this.keysFromDotEnvFiles).filter((x) => !this.keysFromYamlFiles.has(x));
85
- unusedKeys.forEach((x) => {
86
- this.warnings.push(`${x} in: ${this.keysFromDotEnvFiles[x].join(', ')}`);
87
- });
88
- }
89
- _finalize() {
90
- if (this.warnings.length > 0) {
91
- console.error('WARNING: some env variables exist in .env but not in env.yaml:');
92
- this.warnings.forEach((warning) => console.error(`\t${warning}`));
93
- console.error();
94
- }
95
- if (Object.keys(this.errors).length > 0) {
96
- Object.entries(this.errors).forEach(([key, errors]) => {
97
- console.error(`Errors for ${key}:`);
98
- errors.forEach((error) => console.error(`\t${error}`));
99
- console.error();
100
- });
101
- console.error();
102
- process.exit(1);
103
- }
104
- }
105
- }
106
- /**
107
- * While we don't strictly need to parse .env files (we can simply use process.env), it is useful to give
108
- * warnings to the user that there are unused entries in .env files compared to the stated requirements
109
- * captured in env.yaml files.
110
- */
111
- export class DotEnvParser {
112
- path;
113
- keys;
114
- constructor(path) {
115
- this.path = path;
116
- }
117
- parse() {
118
- const text = this._readFile(this.path);
119
- if (text)
120
- this.keys = this._parse(text);
121
- }
122
- _readFile(path) {
123
- if (!fs.existsSync(path))
124
- return;
125
- return fs.readFileSync(path).toString();
126
- }
127
- _parse(text) {
128
- const lines = text.split('\n');
129
- const withoutComments = lines
130
- .map((x) => x.replace(/#.*$/, '').trim())
131
- .filter(Boolean);
132
- const keys = withoutComments
133
- .map((x) => x.split('=').map((y) => y.trim()))
134
- .filter((x) => x.length > 1)
135
- .map((x) => x[0]);
136
- return keys;
137
- }
138
- }
139
- export class SingleEnvValidator {
140
- envYamlPath;
141
- parsedEnvYaml;
142
- parsingError;
143
- errors = {};
144
- constructor(envYamlPath) {
145
- this.envYamlPath = envYamlPath;
146
- }
147
- validate() {
148
- this.parsedEnvYaml = this._parse();
149
- if (!this.parsingError)
150
- this._addAllErrors();
151
- }
152
- _readFile() {
153
- if (!fs.existsSync(this.envYamlPath)) {
154
- console.error(`Skipping ${this.envYamlPath}: does not exist`);
155
- return;
156
- }
157
- return yaml.parse(fs.readFileSync(this.envYamlPath).toString());
158
- }
159
- _generateError(message) {
160
- return `Error in ${this.envYamlPath}: ${message}`;
161
- }
162
- _setParsingError(message) {
163
- this.parsingError = this._generateError(message);
164
- }
165
- _addError(key, message) {
166
- this.errors[key] = this._generateError(message);
167
- }
168
- _parse() {
169
- const allEnv = {};
170
- const envManifest = this._readFile();
171
- if (!envManifest)
172
- return;
173
- if (!(envManifest instanceof Array)) {
174
- this._setParsingError(`env.yaml file must resolve to an array`);
175
- return;
176
- }
177
- envManifest.forEach((env) => {
178
- if (env instanceof Object) {
179
- const entries = Object.entries(env);
180
- if (entries.length > 1) {
181
- this._setParsingError(`every object in env.yaml must have one key. Error near: ${entries[0][0]}`);
182
- return;
183
- }
184
- const [name, value] = entries[0];
185
- if (!(value instanceof Array) &&
186
- !['optional', 'boolean'].includes(value)) {
187
- this._setParsingError(`invalid value for ${name}: ${JSON.stringify(value)}`);
188
- return;
189
- }
190
- allEnv[name] = value;
191
- }
192
- else {
193
- allEnv[env] = 'required';
194
- }
195
- });
196
- return allEnv;
197
- }
198
- _addAllErrors() {
199
- Object.entries(this.parsedEnvYaml).forEach(([key, requirement]) => {
200
- const value = process.env[key];
201
- if (requirement !== 'optional' && !value) {
202
- this._addError(key, `${key} is required but missing`);
203
- }
204
- else if (requirement === 'boolean' &&
205
- !['true', 'false'].includes(String(value))) {
206
- this._addError(key, `${key} must be either true or false. Value: ${value}`);
207
- }
208
- else if (requirement instanceof Array &&
209
- !requirement.includes(value ?? '')) {
210
- this._addError(key, `${key} must be one of ${requirement.join(', ')}. Value: ${value}`);
211
- }
212
- });
213
- }
214
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=validate-env.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-env.spec.d.ts","sourceRoot":"","sources":["../../src/libs/validate-env.spec.ts"],"names":[],"mappings":""}
@@ -1,168 +0,0 @@
1
- import { describe, expect, it, vi } from 'vitest';
2
- import { CombinedEnvValidator, DotEnvParser, SingleEnvValidator, } from './validate-env';
3
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
4
- function withEnvVars(envVars, callbackFn) {
5
- Object.entries(envVars).forEach(([key, value]) => (process.env[key] = value));
6
- try {
7
- callbackFn();
8
- }
9
- finally {
10
- Object.keys(envVars).forEach((key) => delete process.env[key]);
11
- }
12
- }
13
- describe('SingleEnvValidator', () => {
14
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
- function createSubject(yamlContent) {
16
- const subject = new SingleEnvValidator('dummy-path.yaml');
17
- vi.spyOn(subject, '_readFile').mockReturnValue(yamlContent);
18
- return subject;
19
- }
20
- describe('invalid yaml files', () => {
21
- it('contains parsingError when not an array', () => {
22
- const subject = createSubject({ DUMMY1: 'optional' });
23
- subject.validate();
24
- expect(subject.parsingError).toContain('env.yaml file must resolve to an array');
25
- });
26
- it('contains parsingError when an object has multiple keys', () => {
27
- const subject = createSubject([
28
- { DUMMY1: 'optional', DUMMY2: 'optional' },
29
- ]);
30
- subject.validate();
31
- expect(subject.parsingError).toContain('every object in env.yaml must have one key. Error near: DUMMY1');
32
- });
33
- it('contains parsingError when an object has invalid requirement', () => {
34
- const subject = createSubject([{ DUMMY1: 'optttttttional' }]);
35
- subject.validate();
36
- expect(subject.parsingError).toContain('invalid value for DUMMY1');
37
- });
38
- });
39
- describe('valid yaml file', () => {
40
- const validYaml = [
41
- 'TEST_ENV_MANDATORY',
42
- { TEST_ENV_OPTIONAL: 'optional' },
43
- { TEST_ENV_BOOLEAN1: 'boolean' },
44
- { TEST_ENV_BOOLEAN2: 'boolean' },
45
- { TEST_ENV_ENUM1: ['option1', 'option2'] },
46
- { TEST_ENV_ENUM2: ['option1', 'option2'] },
47
- ];
48
- const defaultValues = {
49
- TEST_ENV_MANDATORY: 'some_value',
50
- TEST_ENV_BOOLEAN1: 'true',
51
- TEST_ENV_BOOLEAN2: 'false',
52
- TEST_ENV_ENUM1: 'option1',
53
- TEST_ENV_ENUM2: 'option2',
54
- };
55
- function withEnvVarsHelper(envVars,
56
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
57
- callbackFn) {
58
- envVars = { ...defaultValues, ...envVars };
59
- withEnvVars(envVars, callbackFn);
60
- }
61
- it('works when all env vars are provided as expected', () => {
62
- const subject = createSubject(validYaml);
63
- withEnvVarsHelper({}, () => subject.validate());
64
- expect(subject.parsingError).toEqual(undefined);
65
- expect(subject.errors).toEqual({});
66
- });
67
- it('works when an optional varilable is provided', () => {
68
- const subject = createSubject(validYaml);
69
- withEnvVarsHelper({ TEST_ENV_OPTIONAL: 'value' }, () => subject.validate());
70
- expect(subject.parsingError).toEqual(undefined);
71
- expect(subject.errors).toEqual({});
72
- });
73
- it('contains errors when mandatory is not provided', () => {
74
- const subject = createSubject(validYaml);
75
- withEnvVarsHelper({ TEST_ENV_MANDATORY: '' }, () => subject.validate());
76
- expect(subject.parsingError).toEqual(undefined);
77
- expect(Object.keys(subject.errors)).toEqual(['TEST_ENV_MANDATORY']);
78
- });
79
- it('contains errors when boolean is different than true or false', () => {
80
- const subject = createSubject(validYaml);
81
- withEnvVarsHelper({ TEST_ENV_BOOLEAN1: 'value' }, () => subject.validate());
82
- expect(subject.parsingError).toEqual(undefined);
83
- expect(Object.keys(subject.errors)).toEqual(['TEST_ENV_BOOLEAN1']);
84
- });
85
- it('contains errors when enum is different than provided options', () => {
86
- const subject = createSubject(validYaml);
87
- withEnvVarsHelper({ TEST_ENV_ENUM1: 'option3' }, () => subject.validate());
88
- expect(subject.parsingError).toEqual(undefined);
89
- expect(Object.keys(subject.errors)).toEqual(['TEST_ENV_ENUM1']);
90
- });
91
- });
92
- });
93
- describe('DotEnvParser', () => {
94
- function createSubject(text) {
95
- const subject = new DotEnvParser('dummy-path.env');
96
- vi.spyOn(subject, '_readFile').mockReturnValue(text);
97
- return subject;
98
- }
99
- it('works, taking into account comments and ignoring empty lines', () => {
100
- const subject = createSubject(`
101
-
102
- # Ignored
103
- TEST1=hello
104
-
105
- TEST2=world # also ignored
106
-
107
-
108
- TEST3 = spaces should not normally be allowed in .env # so the parser is not strict
109
-
110
- `);
111
- subject.parse();
112
- expect(subject.keys).toEqual(['TEST1', 'TEST2', 'TEST3']);
113
- });
114
- });
115
- describe('CombinedEnvValidator', () => {
116
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
117
- function createSubject(yamlContent, dotEnvContent) {
118
- const yamlPaths = yamlContent.map((_, i) => `dummy-yaml-${i}`);
119
- const dotEnvPaths = dotEnvContent.map((_, i) => `dummy-dotenv-${i}`);
120
- const yamlValidators = yamlContent.map((content, i) => {
121
- const validator = new SingleEnvValidator(yamlPaths[i]);
122
- vi.spyOn(validator, '_readFile').mockReturnValue(content);
123
- return validator;
124
- });
125
- const dotEnvParsers = dotEnvContent.map((content, i) => {
126
- const parser = new DotEnvParser(dotEnvPaths[i]);
127
- vi.spyOn(parser, '_readFile').mockReturnValue(content);
128
- return parser;
129
- });
130
- const subject = new CombinedEnvValidator(yamlPaths, dotEnvPaths);
131
- vi.spyOn(subject, '_loadYamlFiles').mockImplementation(() => (subject.yamlValidators = yamlValidators));
132
- vi.spyOn(subject, '_loadDotEnvFiles').mockImplementation(() => (subject.dotEnvParsers = dotEnvParsers));
133
- return subject;
134
- }
135
- it('works when no errors and no warnings', () => {
136
- const yaml1 = ['TEST_ENV1', 'TEST_ENV2'];
137
- const yaml2 = [{ TEST_ENV3: 'optional' }];
138
- const dotEnv1 = 'TEST_ENV1=hi';
139
- const dotEnv2 = 'TEST_ENV2=bye';
140
- const subject = createSubject([yaml1, yaml2], [dotEnv1, dotEnv2]);
141
- withEnvVars({ TEST_ENV1: 'hi', TEST_ENV2: 'bye' }, () => subject.validate());
142
- expect(subject.warnings).toEqual([]);
143
- expect(subject.errors).toEqual({});
144
- });
145
- it('emits warnings', () => {
146
- const yaml1 = ['TEST_ENV1', 'TEST_ENV2'];
147
- const yaml2 = [{ TEST_ENV3: 'optional' }];
148
- const dotEnv1 = 'TEST_ENV1=hi';
149
- const dotEnv2 = 'TEST_ENV2=bye';
150
- const dotEnv3 = 'TEST_ENV4=boo';
151
- const subject = createSubject([yaml1, yaml2], [dotEnv1, dotEnv2, dotEnv3]);
152
- withEnvVars({ TEST_ENV1: 'hi', TEST_ENV2: 'bye' }, () => subject.validate());
153
- expect(subject.warnings.length).toEqual(1);
154
- expect(subject.warnings[0]).toContain('TEST_ENV4');
155
- expect(subject.errors).toEqual({});
156
- });
157
- it('emits errors', () => {
158
- vi.spyOn(process, 'exit').mockReturnValue(undefined);
159
- const yaml1 = ['TEST_ENV1', 'TEST_ENV2'];
160
- const yaml2 = [{ TEST_ENV3: 'optional' }];
161
- const dotEnv1 = 'TEST_ENV1=hi';
162
- const subject = createSubject([yaml1, yaml2], [dotEnv1]);
163
- withEnvVars({ TEST_ENV1: 'hi' }, () => subject.validate());
164
- expect(process.exit).toHaveBeenCalledWith(1);
165
- expect(subject.warnings).toEqual([]);
166
- expect(Object.keys(subject.errors)).toEqual(['TEST_ENV2']);
167
- });
168
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,eAAO,MAAM,UAAU,QAAgC,CAAC"}