@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,10 +1,8 @@
1
1
  import { CLICommandParser } from "../common";
2
- import url from "url";
3
2
  import path from "path";
3
+ import { pkgRoot } from "../../pkg-root";
4
4
 
5
- const __file__ = url.fileURLToPath(import.meta.url);
6
- const __cli__ = path.join(path.dirname(__file__), "../..", "cli");
7
- const execShPath = path.join(__cli__, "exec.sh");
5
+ const execShPath = path.join(pkgRoot, "cli/exec.sh");
8
6
 
9
7
  const oneLiner = "Runs prisma commands in the db project after injecting the environment variables";
10
8
  const keyExamples = `$ devops prisma migrate dev`;
@@ -1,12 +1,10 @@
1
- import url from "url";
2
1
  import path from "path";
3
2
  import fs from "fs-extra";
4
3
  import chalk from "chalk";
5
4
  import fg from 'fast-glob';
5
+ import { pkgRoot } from "../pkg-root";
6
6
 
7
- const __file__ = url.fileURLToPath(import.meta.url);
8
- const __root__ = path.join(path.dirname(__file__), "../..");
9
- const templatesDir = path.join(__root__, "src/target-templates");
7
+ const templatesDir = path.join(pkgRoot, "src/target-templates");
10
8
  const targetDir = process.cwd(); // User's current working directory
11
9
 
12
10
  type MessageGeneratorFn = (targetExists: boolean, fileInfo: InitGeneratorFileInfo) => string | null | undefined;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * This module provides the package root directory path.
3
+ *
4
+ * It must be at the root of the src/ directory so that when bundled with tsup,
5
+ * the import.meta.url resolves to the dist/ directory correctly.
6
+ *
7
+ * All files that need to reference paths relative to the package root should
8
+ * import pkgRoot from this module instead of using import.meta.url directly.
9
+ */
10
+ import url from "url";
11
+ import path from "path";
12
+
13
+ const __file__ = url.fileURLToPath(import.meta.url);
14
+ export const pkgRoot = path.dirname(__file__);
package/src/plugins.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  export { CommandExecutor, CLICommandParser, printUsageAndExit, StrongParams } from "./cli/common";
2
2
  export { kubectlCommand } from "./libs/k8s-helpers";
3
3
 
4
- import url from "url";
5
4
  import path from "path";
6
- const __file__ = url.fileURLToPath(import.meta.url);
7
- const __cli__ = path.join(path.dirname(__file__), "cli");
8
- export const execShPath = path.join(__cli__, "exec.sh");
5
+ import { pkgRoot } from "./pkg-root";
6
+ export const execShPath = path.join(pkgRoot, "cli/exec.sh");
@@ -1,15 +0,0 @@
1
- /**
2
- * Encrypts a plaintext string using AES-256-GCM with the given key.
3
- * @param plaintext
4
- * @param key - The key to use for encryption. If not provided, the key will be derived from the MONOREPO_BASE_SECRET environment variable.
5
- * @returns The encrypted ciphertext.
6
- */
7
- export declare function encryptAes256Gcm(plaintext: string, key?: Buffer): string;
8
- /**
9
- * Decrypts a ciphertext string using AES-256-GCM with the given key.
10
- * @param ciphertext - The ciphertext to decrypt.
11
- * @param key - The key to use for decryption. If not provided, the key will be derived from the MONOREPO_BASE_SECRET environment variable.
12
- * @returns The decrypted plaintext.
13
- */
14
- export declare function decryptAes256Gcm(ciphertext: string, key?: Buffer): string;
15
- //# sourceMappingURL=aes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aes.d.ts","sourceRoot":"","sources":["../../../src/app-support/crypto/aes.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBxE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBzE"}
@@ -1,56 +0,0 @@
1
- import crypto from "crypto";
2
- const ALGORITHM = "aes-256-gcm";
3
- const IV_LENGTH = 12; // GCM recommended IV length
4
- const AUTH_TAG_LENGTH = 16;
5
- function getKey() {
6
- const keyStr = process.env.MONOREPO_BASE_SECRET;
7
- if (!keyStr)
8
- throw new Error("MONOREPO_BASE_SECRET not set");
9
- // The secret is 32 random bytes stored as hex (64 chars) - decode it directly
10
- return Buffer.from(keyStr, "hex");
11
- }
12
- /**
13
- * Encrypts a plaintext string using AES-256-GCM with the given key.
14
- * @param plaintext
15
- * @param key - The key to use for encryption. If not provided, the key will be derived from the MONOREPO_BASE_SECRET environment variable.
16
- * @returns The encrypted ciphertext.
17
- */
18
- export function encryptAes256Gcm(plaintext, key) {
19
- key ??= getKey();
20
- const iv = crypto.randomBytes(IV_LENGTH);
21
- const cipher = crypto.createCipheriv(ALGORITHM, key, iv, {
22
- authTagLength: AUTH_TAG_LENGTH,
23
- });
24
- const encrypted = Buffer.concat([
25
- cipher.update(plaintext, "utf8"),
26
- cipher.final(),
27
- ]);
28
- const authTag = cipher.getAuthTag();
29
- // Format: iv:authTag:ciphertext (all base64)
30
- return [
31
- iv.toString("base64"),
32
- authTag.toString("base64"),
33
- encrypted.toString("base64"),
34
- ].join(":");
35
- }
36
- /**
37
- * Decrypts a ciphertext string using AES-256-GCM with the given key.
38
- * @param ciphertext - The ciphertext to decrypt.
39
- * @param key - The key to use for decryption. If not provided, the key will be derived from the MONOREPO_BASE_SECRET environment variable.
40
- * @returns The decrypted plaintext.
41
- */
42
- export function decryptAes256Gcm(ciphertext, key) {
43
- key ??= getKey();
44
- const [ivB64, authTagB64, encryptedB64] = ciphertext.split(":");
45
- const iv = Buffer.from(ivB64, "base64");
46
- const authTag = Buffer.from(authTagB64, "base64");
47
- const encrypted = Buffer.from(encryptedB64, "base64");
48
- const decipher = crypto.createDecipheriv(ALGORITHM, key, iv, {
49
- authTagLength: AUTH_TAG_LENGTH,
50
- });
51
- decipher.setAuthTag(authTag);
52
- return Buffer.concat([
53
- decipher.update(encrypted),
54
- decipher.final(),
55
- ]).toString("utf8");
56
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=aes.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aes.spec.d.ts","sourceRoot":"","sources":["../../../src/app-support/crypto/aes.spec.ts"],"names":[],"mappings":""}
@@ -1,58 +0,0 @@
1
- import { beforeEach, describe, expect, it } from 'vitest';
2
- import { encryptAes256Gcm, decryptAes256Gcm } from './aes';
3
- describe('AES-256-GCM encrypt and decrypt', () => {
4
- beforeEach(() => {
5
- // AES-256 requires a 32-byte key (64 hex characters)
6
- process.env.MONOREPO_BASE_SECRET = '1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef';
7
- });
8
- it('should encrypt and decrypt a simple string', () => {
9
- const plaintext = 'hello world';
10
- const encrypted = encryptAes256Gcm(plaintext);
11
- const decrypted = decryptAes256Gcm(encrypted);
12
- expect(decrypted).toEqual(plaintext);
13
- });
14
- it('should encrypt and decrypt an empty string', () => {
15
- const plaintext = '';
16
- const encrypted = encryptAes256Gcm(plaintext);
17
- const decrypted = decryptAes256Gcm(encrypted);
18
- expect(decrypted).toEqual(plaintext);
19
- });
20
- it('should encrypt and decrypt unicode text', () => {
21
- const plaintext = '你好世界 🌍 héllo';
22
- const encrypted = encryptAes256Gcm(plaintext);
23
- const decrypted = decryptAes256Gcm(encrypted);
24
- expect(decrypted).toEqual(plaintext);
25
- });
26
- it('should produce different ciphertexts for the same plaintext (random IV)', () => {
27
- const plaintext = 'same input';
28
- const encrypted1 = encryptAes256Gcm(plaintext);
29
- const encrypted2 = encryptAes256Gcm(plaintext);
30
- expect(encrypted1).not.toEqual(encrypted2);
31
- // But both should decrypt to the same value
32
- expect(decryptAes256Gcm(encrypted1)).toEqual(plaintext);
33
- expect(decryptAes256Gcm(encrypted2)).toEqual(plaintext);
34
- });
35
- it('should produce ciphertext in expected format (iv:authTag:ciphertext)', () => {
36
- const encrypted = encryptAes256Gcm('test');
37
- const parts = encrypted.split(':');
38
- expect(parts).toHaveLength(3);
39
- // All parts should be valid base64
40
- parts.forEach((part) => {
41
- expect(() => Buffer.from(part, 'base64')).not.toThrow();
42
- });
43
- });
44
- it('should throw on tampered ciphertext', () => {
45
- const encrypted = encryptAes256Gcm('sensitive data');
46
- const [iv, authTag, ciphertext] = encrypted.split(':');
47
- const tamperedCiphertext = `${iv}:${authTag}:${ciphertext.slice(0, -1)}x`;
48
- expect(() => decryptAes256Gcm(tamperedCiphertext)).toThrow();
49
- });
50
- it('should throw on tampered auth tag', () => {
51
- const encrypted = encryptAes256Gcm('sensitive data');
52
- const [iv, _authTag, ciphertext] = encrypted.split(':');
53
- // Use a completely different auth tag (all zeros)
54
- const fakeAuthTag = Buffer.alloc(16, 0).toString('base64');
55
- const tamperedTag = `${iv}:${fakeAuthTag}:${ciphertext}`;
56
- expect(() => decryptAes256Gcm(tamperedTag)).toThrow();
57
- });
58
- });
@@ -1,16 +0,0 @@
1
- export { encryptAes256Gcm, decryptAes256Gcm } from "./aes";
2
- /**
3
- * A simple token generation/verification class that relies on the subject field of an internal JWT-like token. It can:
4
- * - generate a short-lived (60s) token with the given subject
5
- * - verify that a token has not expired and bears the given subject
6
- *
7
- * Relies on the MONOREPO_BASE_SECRET environment variable for signing and verifying the token.
8
- */
9
- export declare class InternalToken {
10
- subject: string;
11
- constructor(subject: string);
12
- generate(): string;
13
- verifyOrThrow(token: string): void;
14
- verifyFromHeaderOrThrow(authorizationHeader?: string | null): void;
15
- }
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app-support/crypto/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAE3D;;;;;;GAMG;AACH,qBAAa,aAAa;IACL,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAElC,QAAQ;IAIR,aAAa,CAAC,KAAK,EAAE,MAAM;IAO3B,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI;CAO5D"}
@@ -1,31 +0,0 @@
1
- import { generateInternalAuthToken, parseInternalAuthTokenOrThrow } from "./internal-token";
2
- export { encryptAes256Gcm, decryptAes256Gcm } from "./aes";
3
- /**
4
- * A simple token generation/verification class that relies on the subject field of an internal JWT-like token. It can:
5
- * - generate a short-lived (60s) token with the given subject
6
- * - verify that a token has not expired and bears the given subject
7
- *
8
- * Relies on the MONOREPO_BASE_SECRET environment variable for signing and verifying the token.
9
- */
10
- export class InternalToken {
11
- subject;
12
- constructor(subject) {
13
- this.subject = subject;
14
- }
15
- generate() {
16
- return generateInternalAuthToken({ sub: this.subject });
17
- }
18
- verifyOrThrow(token) {
19
- const parsedToken = parseInternalAuthTokenOrThrow(token);
20
- if (parsedToken.sub !== this.subject) {
21
- throw new Error('Invalid token');
22
- }
23
- }
24
- verifyFromHeaderOrThrow(authorizationHeader) {
25
- if (!authorizationHeader) {
26
- throw new Error('Authorization header not found');
27
- }
28
- const token = authorizationHeader.replace('Bearer ', '');
29
- this.verifyOrThrow(token);
30
- }
31
- }
@@ -1,20 +0,0 @@
1
- export type InternalTokenClaims<CustomClaims extends object = object> = CustomClaims & {
2
- /** The token issuer */
3
- iss: string;
4
- /** Issued at */
5
- iat: number;
6
- /** Expires at */
7
- exp: number;
8
- /** The subject of the token. Should contain a string of the "service account" who bears the token. */
9
- sub?: string;
10
- /** The audience of the token. Should contain a string of who the token is intended for. */
11
- aud?: string;
12
- };
13
- export declare function generateInternalAuthToken({ customClaims, expiresInSeconds, sub, aud, }?: {
14
- customClaims?: Record<string, string>;
15
- expiresInSeconds?: number;
16
- sub?: string;
17
- aud?: string;
18
- }): string;
19
- export declare function parseInternalAuthTokenOrThrow<CustomClaims extends object = object>(token: string): InternalTokenClaims<CustomClaims>;
20
- //# sourceMappingURL=internal-token.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-token.d.ts","sourceRoot":"","sources":["../../../src/app-support/crypto/internal-token.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM,IAClE,YAAY,GAAG;IACb,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,sGAAsG;IACtG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AA4BJ,wBAAgB,yBAAyB,CAAC,EACxC,YAAiB,EACjB,gBAAqB,EACrB,GAAG,EACH,GAAG,GACJ,GAAE;IACD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACT,UAUL;AAED,wBAAgB,6BAA6B,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM,EAChF,KAAK,EAAE,MAAM,GACZ,mBAAmB,CAAC,YAAY,CAAC,CAcnC"}
@@ -1,42 +0,0 @@
1
- import { getConst } from '../../libs/config';
2
- import { sign, verify } from './secret';
3
- class InternalTokenError extends Error {
4
- constructor(message) {
5
- super(message);
6
- this.name = 'InternalTokenError';
7
- Object.setPrototypeOf(this, new.target.prototype);
8
- }
9
- }
10
- function defaultClaims({ expiresInSeconds, sub, aud, }) {
11
- return {
12
- iss: `${getConst('project-name')}-internal`,
13
- iat: Math.floor(Date.now() / 1000),
14
- exp: Math.floor(Date.now() / 1000) + expiresInSeconds,
15
- sub,
16
- aud,
17
- };
18
- }
19
- export function generateInternalAuthToken({ customClaims = {}, expiresInSeconds = 60, sub, aud, } = {}) {
20
- const data = {
21
- ...customClaims,
22
- // This should be after the customClaims so that custom claims cannot override the default claims
23
- ...defaultClaims({ expiresInSeconds, sub, aud }),
24
- };
25
- const str = JSON.stringify(data);
26
- const encodedData = Buffer.from(str).toString('base64');
27
- const signature = sign(encodedData);
28
- return `${encodedData}.${signature}`;
29
- }
30
- export function parseInternalAuthTokenOrThrow(token) {
31
- const [encodedData, signature] = token.split('.');
32
- const isSignatureOk = verify(encodedData, signature);
33
- if (!isSignatureOk) {
34
- throw new InternalTokenError('Invalid token');
35
- }
36
- const dataStr = Buffer.from(encodedData, 'base64').toString('utf-8');
37
- const data = JSON.parse(dataStr);
38
- if (data.exp < Math.floor(Date.now() / 1000)) {
39
- throw new InternalTokenError('Token expired');
40
- }
41
- return data;
42
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=internal-token.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-token.spec.d.ts","sourceRoot":"","sources":["../../../src/app-support/crypto/internal-token.spec.ts"],"names":[],"mappings":""}
@@ -1,45 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { generateInternalAuthToken, parseInternalAuthTokenOrThrow } from './internal-token';
3
- vi.mock('../../libs/config', () => ({
4
- getConst: () => 'test',
5
- }));
6
- describe('generate and verify internal token', () => {
7
- beforeEach(() => {
8
- process.env.MONOREPO_BASE_SECRET = '1234567890abcdef';
9
- });
10
- it('works for default tokens', () => {
11
- const token = generateInternalAuthToken();
12
- const parsedPayload = parseInternalAuthTokenOrThrow(token);
13
- expect(parsedPayload.iss).toEqual('test-internal');
14
- expect(parsedPayload.exp - parsedPayload.iat).toEqual(60);
15
- });
16
- it('works for custom tokens', () => {
17
- const payload = { hello: 'world' };
18
- const token = generateInternalAuthToken({
19
- customClaims: payload,
20
- expiresInSeconds: 30,
21
- aud: 'aud',
22
- sub: 'sub',
23
- });
24
- const parsedPayload = parseInternalAuthTokenOrThrow(token);
25
- expect(parsedPayload.iss).toEqual('test-internal');
26
- expect(parsedPayload.exp - parsedPayload.iat).toEqual(30);
27
- expect(parsedPayload.hello).toEqual('world');
28
- expect(parsedPayload.aud).toEqual('aud');
29
- expect(parsedPayload.sub).toEqual('sub');
30
- });
31
- it('throws for expired tokens', () => {
32
- const invalidToken = generateInternalAuthToken({
33
- expiresInSeconds: -1,
34
- });
35
- expect(() => parseInternalAuthTokenOrThrow(invalidToken)).toThrowError('Token expired');
36
- });
37
- it('throws for invalid signature', () => {
38
- const payload = { hello: 'world' };
39
- const token = generateInternalAuthToken({
40
- customClaims: payload,
41
- });
42
- const invalidToken = token.replace(/.$/, 'x');
43
- expect(() => parseInternalAuthTokenOrThrow(invalidToken)).toThrowError('Invalid token');
44
- });
45
- });
@@ -1,3 +0,0 @@
1
- export declare function sign(data: string): string;
2
- export declare function verify(data: string, signature: string): boolean;
3
- //# sourceMappingURL=secret.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/app-support/crypto/secret.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,UAKhC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAGrD"}
@@ -1,12 +0,0 @@
1
- import { createHmac } from 'crypto';
2
- export function sign(data) {
3
- const keyStr = process.env.MONOREPO_BASE_SECRET;
4
- if (!keyStr)
5
- throw new Error('Secret not set');
6
- const key = Buffer.from(keyStr, 'hex');
7
- return createHmac('sha256', key).update(data).digest('hex');
8
- }
9
- export function verify(data, signature) {
10
- const generatedSignature = sign(data);
11
- return generatedSignature === signature;
12
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=secret.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret.spec.d.ts","sourceRoot":"","sources":["../../../src/app-support/crypto/secret.spec.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- import { beforeEach, describe, expect, it } from 'vitest';
2
- import { sign, verify } from './secret';
3
- describe('sign and verify', () => {
4
- beforeEach(() => {
5
- process.env.MONOREPO_BASE_SECRET = '1234567890abcdef';
6
- });
7
- it('verify should return true for correct signature', async () => {
8
- const sig = sign('data');
9
- expect(verify('data', sig)).toEqual(true);
10
- });
11
- it('verify should return false for correct signature', async () => {
12
- const sig = sign('data');
13
- expect(verify('data2', sig)).toEqual(false);
14
- });
15
- });
@@ -1,2 +0,0 @@
1
- export declare function getPortForServiceName(serviceName: string): number;
2
- //# sourceMappingURL=dev-discovery-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev-discovery-loader.d.ts","sourceRoot":"","sources":["../../../src/app-support/discovery/dev-discovery-loader.ts"],"names":[],"mappings":"AAgCA,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,UAExD"}
@@ -1,30 +0,0 @@
1
- import { workspaces } from "../../libs/discovery";
2
- let _portLookupByServiceName = null;
3
- function getPortLookup() {
4
- if (_portLookupByServiceName)
5
- return _portLookupByServiceName;
6
- if (process.env["IS_KUBERNETES"] === "true") {
7
- throw new Error("getPortLookup() should only be used in local development. In production, the service name is sufficient.");
8
- }
9
- _portLookupByServiceName = {};
10
- Object.values(workspaces()).forEach((workspace) => {
11
- workspace.packageDataEntries.forEach((pkg) => {
12
- const serviceName = pkg.deployment?.service_name;
13
- const port = pkg.deployment?.port;
14
- if (!serviceName || !port)
15
- return;
16
- const existing = _portLookupByServiceName[serviceName];
17
- if (!existing) {
18
- _portLookupByServiceName[serviceName] = port;
19
- }
20
- else if (existing !== port) {
21
- console.error(`Service name ${serviceName} has conflicting ports: ${existing} and ${port}`);
22
- process.exit(1);
23
- }
24
- });
25
- });
26
- return _portLookupByServiceName;
27
- }
28
- export function getPortForServiceName(serviceName) {
29
- return getPortLookup()[serviceName];
30
- }
@@ -1,2 +0,0 @@
1
- export declare function getServiceEndpoint(serviceName: string): string;
2
- //# sourceMappingURL=service-endpoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-endpoint.d.ts","sourceRoot":"","sources":["../../../src/app-support/discovery/service-endpoint.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAS9D"}
@@ -1,10 +0,0 @@
1
- import { getPortForServiceName } from "./dev-discovery-loader";
2
- export function getServiceEndpoint(serviceName) {
3
- if (process.env["IS_KUBERNETES"] === "true") {
4
- return `http://${serviceName}`;
5
- }
6
- const servicePort = getPortForServiceName(serviceName);
7
- if (!servicePort)
8
- throw new Error(`Port not found for service ${serviceName}`);
9
- return `http://127.0.0.1:${servicePort}`;
10
- }
@@ -1,89 +0,0 @@
1
- type ParsedArgs<TBoolKeys extends readonly string[], TParamKeys extends readonly string[]> = {
2
- args: string[];
3
- argsStr: string;
4
- options: Partial<Record<TBoolKeys[number], true>> & Partial<Record<TParamKeys[number], string>>;
5
- passthrough?: string[];
6
- };
7
- export declare class CLICommandParser {
8
- command: string;
9
- args: string[];
10
- env: string;
11
- envForced: boolean;
12
- help: boolean;
13
- skipEnvCheck: boolean;
14
- constructor(cmdArray: string[]);
15
- executorFromEnv(commandStr: string, options?: Omit<CommandExecutorOptions, "env">): CommandExecutor;
16
- parseOptions<const TBoolKeys extends readonly string[], const TParamKeys extends readonly string[]>({ params, booleans, passthroughArgs, }?: {
17
- /** Param is used like so: --param value */
18
- params?: TParamKeys;
19
- /** Boolean flag is used like so: --flag */
20
- booleans?: TBoolKeys;
21
- /** Pass through args are used like so: -- arg1 arg2 */
22
- passthroughArgs?: boolean;
23
- }): ParsedArgs<TBoolKeys, TParamKeys>;
24
- _validateEnv(env: string): boolean;
25
- _separateOptions<const TBoolKeys extends readonly string[], const TParamKeys extends readonly string[]>(args: string[], { params, booleans, passthroughArgs, }?: {
26
- params?: TParamKeys;
27
- booleans?: TBoolKeys;
28
- passthroughArgs?: boolean;
29
- }): ParsedArgs<TBoolKeys, TParamKeys>;
30
- }
31
- type CommandExecutorOptions = {
32
- env?: string;
33
- quiet?: boolean;
34
- checkEnvYaml?: boolean;
35
- redactedCommand?: string;
36
- };
37
- export declare class CommandExecutor {
38
- commandStr: string;
39
- env?: string;
40
- quiet: boolean;
41
- redactedCommand?: string;
42
- checkEnvYaml: boolean;
43
- constructor(commandStr: string, { env, quiet, redactedCommand, checkEnvYaml, }?: CommandExecutorOptions);
44
- /** Non-interactive use only. stdout is returned. */
45
- exec(options?: {
46
- onlyStatusCode?: false;
47
- asObject?: false;
48
- env?: object;
49
- }): string;
50
- exec(options: {
51
- onlyStatusCode?: false;
52
- asObject: true;
53
- env?: object;
54
- }): {
55
- statusCode: number;
56
- stdout: string;
57
- stderr: string;
58
- };
59
- exec(options: {
60
- onlyStatusCode: true;
61
- asObject?: boolean;
62
- env?: object;
63
- }): number;
64
- /** Should be used for CLI commands intended to be used locally. Provides interactivity. Unlike exec(), stdout is not returned. */
65
- spawn({ env, pipeStdoutTo }?: {
66
- env?: object;
67
- pipeStdoutTo?: "stderr";
68
- }): Promise<unknown>;
69
- _prepareFullCommand(): string;
70
- _getProcessEnv(envOverride?: {}): {
71
- MONOREPO_ENV: string | undefined;
72
- MONOREPO_ROOT: string;
73
- TZ?: string;
74
- NODE_ENV?: string;
75
- };
76
- _envInjectorPrefix(): string;
77
- _checkEnvYamlFiles(): void;
78
- }
79
- export declare function dotEnvFilesForEnv(env?: string): string[];
80
- export declare function printUsageAndExit(text: string): never;
81
- export declare class StrongParams {
82
- private usage;
83
- private args;
84
- constructor(usage: string, args: Record<string, string | undefined>);
85
- required(key: string): string;
86
- optional(key: string): string | undefined;
87
- }
88
- export {};
89
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"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"}