k8ts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +3 -0
  3. package/dist/.imports.tsbuildinfo +1 -0
  4. package/dist/_imports/_mix.d.ts +4 -0
  5. package/dist/_imports/_mix.d.ts.map +1 -0
  6. package/dist/_imports/_mix.js +20 -0
  7. package/dist/_imports/_mix.js.map +1 -0
  8. package/dist/_imports/acme.cert-manager.io.d.ts +4832 -0
  9. package/dist/_imports/acme.cert-manager.io.d.ts.map +1 -0
  10. package/dist/_imports/acme.cert-manager.io.js +2476 -0
  11. package/dist/_imports/acme.cert-manager.io.js.map +1 -0
  12. package/dist/_imports/gateway.networking.k8s.io.d.ts +8786 -0
  13. package/dist/_imports/gateway.networking.k8s.io.d.ts.map +1 -0
  14. package/dist/_imports/gateway.networking.k8s.io.js +3668 -0
  15. package/dist/_imports/gateway.networking.k8s.io.js.map +1 -0
  16. package/dist/_imports/index.d.ts +3 -0
  17. package/dist/_imports/index.d.ts.map +1 -0
  18. package/dist/_imports/index.js +39 -0
  19. package/dist/_imports/index.js.map +1 -0
  20. package/dist/_imports/k8s.d.ts +18782 -0
  21. package/dist/_imports/k8s.d.ts.map +1 -0
  22. package/dist/_imports/k8s.js +12173 -0
  23. package/dist/_imports/k8s.js.map +1 -0
  24. package/dist/api-versions.d.ts +5 -0
  25. package/dist/api-versions.d.ts.map +1 -0
  26. package/dist/api-versions.js +8 -0
  27. package/dist/api-versions.js.map +1 -0
  28. package/dist/error.d.ts +5 -0
  29. package/dist/error.d.ts.map +1 -0
  30. package/dist/error.js +12 -0
  31. package/dist/error.js.map +1 -0
  32. package/dist/external/index.d.ts +13 -0
  33. package/dist/external/index.d.ts.map +1 -0
  34. package/dist/external/index.js +81 -0
  35. package/dist/external/index.js.map +1 -0
  36. package/dist/file/exports.d.ts +20 -0
  37. package/dist/file/exports.d.ts.map +1 -0
  38. package/dist/file/exports.js +62 -0
  39. package/dist/file/exports.js.map +1 -0
  40. package/dist/file/factory.d.ts +34 -0
  41. package/dist/file/factory.d.ts.map +1 -0
  42. package/dist/file/factory.js +171 -0
  43. package/dist/file/factory.js.map +1 -0
  44. package/dist/file/file.d.ts +17 -0
  45. package/dist/file/file.d.ts.map +1 -0
  46. package/dist/file/file.js +21 -0
  47. package/dist/file/file.js.map +1 -0
  48. package/dist/file/index.d.ts +2 -0
  49. package/dist/file/index.d.ts.map +1 -0
  50. package/dist/file/index.js +18 -0
  51. package/dist/file/index.js.map +1 -0
  52. package/dist/file/origin.d.ts +18 -0
  53. package/dist/file/origin.d.ts.map +1 -0
  54. package/dist/file/origin.js +27 -0
  55. package/dist/file/origin.js.map +1 -0
  56. package/dist/index.d.ts +9 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +49 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/k8ts-sys-kind.d.ts +3 -0
  61. package/dist/k8ts-sys-kind.d.ts.map +1 -0
  62. package/dist/k8ts-sys-kind.js +8 -0
  63. package/dist/k8ts-sys-kind.js.map +1 -0
  64. package/dist/kind-map.d.ts +11 -0
  65. package/dist/kind-map.d.ts.map +1 -0
  66. package/dist/kind-map.js +29 -0
  67. package/dist/kind-map.js.map +1 -0
  68. package/dist/meta/k8ts-section.d.ts +3 -0
  69. package/dist/meta/k8ts-section.d.ts.map +1 -0
  70. package/dist/meta/k8ts-section.js +10 -0
  71. package/dist/meta/k8ts-section.js.map +1 -0
  72. package/dist/node/abs-resource.d.ts +15 -0
  73. package/dist/node/abs-resource.d.ts.map +1 -0
  74. package/dist/node/abs-resource.js +76 -0
  75. package/dist/node/abs-resource.js.map +1 -0
  76. package/dist/node/dependencies.d.ts +1 -0
  77. package/dist/node/dependencies.d.ts.map +1 -0
  78. package/dist/node/dependencies.js +2 -0
  79. package/dist/node/dependencies.js.map +1 -0
  80. package/dist/node/index.d.ts +2 -0
  81. package/dist/node/index.d.ts.map +1 -0
  82. package/dist/node/index.js +6 -0
  83. package/dist/node/index.js.map +1 -0
  84. package/dist/node/manifest-resource.d.ts +11 -0
  85. package/dist/node/manifest-resource.d.ts.map +1 -0
  86. package/dist/node/manifest-resource.js +19 -0
  87. package/dist/node/manifest-resource.js.map +1 -0
  88. package/dist/node/sub-resource.d.ts +8 -0
  89. package/dist/node/sub-resource.d.ts.map +1 -0
  90. package/dist/node/sub-resource.js +72 -0
  91. package/dist/node/sub-resource.js.map +1 -0
  92. package/dist/node/top-resource.d.ts +7 -0
  93. package/dist/node/top-resource.d.ts.map +1 -0
  94. package/dist/node/top-resource.js +8 -0
  95. package/dist/node/top-resource.js.map +1 -0
  96. package/dist/paths.d.ts +2 -0
  97. package/dist/paths.d.ts.map +1 -0
  98. package/dist/paths.js +5 -0
  99. package/dist/paths.js.map +1 -0
  100. package/dist/resources/configmap/configmap.d.ts +12 -0
  101. package/dist/resources/configmap/configmap.d.ts.map +1 -0
  102. package/dist/resources/configmap/configmap.js +79 -0
  103. package/dist/resources/configmap/configmap.js.map +1 -0
  104. package/dist/resources/configmap/index.d.ts +2 -0
  105. package/dist/resources/configmap/index.d.ts.map +1 -0
  106. package/dist/resources/configmap/index.js +18 -0
  107. package/dist/resources/configmap/index.js.map +1 -0
  108. package/dist/resources/deployment/deployment.d.ts +18 -0
  109. package/dist/resources/deployment/deployment.d.ts.map +1 -0
  110. package/dist/resources/deployment/deployment.js +99 -0
  111. package/dist/resources/deployment/deployment.js.map +1 -0
  112. package/dist/resources/deployment/index.d.ts +2 -0
  113. package/dist/resources/deployment/index.d.ts.map +1 -0
  114. package/dist/resources/deployment/index.js +18 -0
  115. package/dist/resources/deployment/index.js.map +1 -0
  116. package/dist/resources/http-route/http-route.d.ts +17 -0
  117. package/dist/resources/http-route/http-route.d.ts.map +1 -0
  118. package/dist/resources/http-route/http-route.js +93 -0
  119. package/dist/resources/http-route/http-route.js.map +1 -0
  120. package/dist/resources/http-route/index.d.ts +2 -0
  121. package/dist/resources/http-route/index.d.ts.map +1 -0
  122. package/dist/resources/http-route/index.js +18 -0
  123. package/dist/resources/http-route/index.js.map +1 -0
  124. package/dist/resources/index.d.ts +9 -0
  125. package/dist/resources/index.d.ts.map +1 -0
  126. package/dist/resources/index.js +25 -0
  127. package/dist/resources/index.js.map +1 -0
  128. package/dist/resources/namespace/index.d.ts +2 -0
  129. package/dist/resources/namespace/index.d.ts.map +1 -0
  130. package/dist/resources/namespace/index.js +18 -0
  131. package/dist/resources/namespace/index.js.map +1 -0
  132. package/dist/resources/namespace/namespace.d.ts +13 -0
  133. package/dist/resources/namespace/namespace.d.ts.map +1 -0
  134. package/dist/resources/namespace/namespace.js +79 -0
  135. package/dist/resources/namespace/namespace.js.map +1 -0
  136. package/dist/resources/persistent/access-mode.d.ts +8 -0
  137. package/dist/resources/persistent/access-mode.d.ts.map +1 -0
  138. package/dist/resources/persistent/access-mode.js +29 -0
  139. package/dist/resources/persistent/access-mode.js.map +1 -0
  140. package/dist/resources/persistent/block-mode.d.ts +2 -0
  141. package/dist/resources/persistent/block-mode.d.ts.map +1 -0
  142. package/dist/resources/persistent/block-mode.js +3 -0
  143. package/dist/resources/persistent/block-mode.js.map +1 -0
  144. package/dist/resources/persistent/claim/index.d.ts +2 -0
  145. package/dist/resources/persistent/claim/index.d.ts.map +1 -0
  146. package/dist/resources/persistent/claim/index.js +18 -0
  147. package/dist/resources/persistent/claim/index.js.map +1 -0
  148. package/dist/resources/persistent/claim/pvc.d.ts +23 -0
  149. package/dist/resources/persistent/claim/pvc.d.ts.map +1 -0
  150. package/dist/resources/persistent/claim/pvc.js +99 -0
  151. package/dist/resources/persistent/claim/pvc.js.map +1 -0
  152. package/dist/resources/persistent/index.d.ts +11 -0
  153. package/dist/resources/persistent/index.d.ts.map +1 -0
  154. package/dist/resources/persistent/index.js +13 -0
  155. package/dist/resources/persistent/index.js.map +1 -0
  156. package/dist/resources/persistent/volume/backend.d.ts +13 -0
  157. package/dist/resources/persistent/volume/backend.d.ts.map +1 -0
  158. package/dist/resources/persistent/volume/backend.js +3 -0
  159. package/dist/resources/persistent/volume/backend.js.map +1 -0
  160. package/dist/resources/persistent/volume/index.d.ts +2 -0
  161. package/dist/resources/persistent/volume/index.d.ts.map +1 -0
  162. package/dist/resources/persistent/volume/index.js +18 -0
  163. package/dist/resources/persistent/volume/index.js.map +1 -0
  164. package/dist/resources/persistent/volume/parse-backend.d.ts +14 -0
  165. package/dist/resources/persistent/volume/parse-backend.d.ts.map +1 -0
  166. package/dist/resources/persistent/volume/parse-backend.js +26 -0
  167. package/dist/resources/persistent/volume/parse-backend.js.map +1 -0
  168. package/dist/resources/persistent/volume/pv.d.ts +26 -0
  169. package/dist/resources/persistent/volume/pv.d.ts.map +1 -0
  170. package/dist/resources/persistent/volume/pv.js +95 -0
  171. package/dist/resources/persistent/volume/pv.js.map +1 -0
  172. package/dist/resources/pod/container/container.d.ts +44 -0
  173. package/dist/resources/pod/container/container.d.ts.map +1 -0
  174. package/dist/resources/pod/container/container.js +156 -0
  175. package/dist/resources/pod/container/container.js.map +1 -0
  176. package/dist/resources/pod/container/index.d.ts +2 -0
  177. package/dist/resources/pod/container/index.d.ts.map +1 -0
  178. package/dist/resources/pod/container/index.js +18 -0
  179. package/dist/resources/pod/container/index.js.map +1 -0
  180. package/dist/resources/pod/container/mounts.d.ts +27 -0
  181. package/dist/resources/pod/container/mounts.d.ts.map +1 -0
  182. package/dist/resources/pod/container/mounts.js +40 -0
  183. package/dist/resources/pod/container/mounts.js.map +1 -0
  184. package/dist/resources/pod/index.d.ts +4 -0
  185. package/dist/resources/pod/index.d.ts.map +1 -0
  186. package/dist/resources/pod/index.js +20 -0
  187. package/dist/resources/pod/index.js.map +1 -0
  188. package/dist/resources/pod/pod-template.d.ts +29 -0
  189. package/dist/resources/pod/pod-template.d.ts.map +1 -0
  190. package/dist/resources/pod/pod-template.js +123 -0
  191. package/dist/resources/pod/pod-template.js.map +1 -0
  192. package/dist/resources/pod/volume/devices.d.ts +23 -0
  193. package/dist/resources/pod/volume/devices.d.ts.map +1 -0
  194. package/dist/resources/pod/volume/devices.js +94 -0
  195. package/dist/resources/pod/volume/devices.js.map +1 -0
  196. package/dist/resources/pod/volume/index.d.ts +4 -0
  197. package/dist/resources/pod/volume/index.d.ts.map +1 -0
  198. package/dist/resources/pod/volume/index.js +10 -0
  199. package/dist/resources/pod/volume/index.js.map +1 -0
  200. package/dist/resources/pod/volume/volumes.d.ts +30 -0
  201. package/dist/resources/pod/volume/volumes.d.ts.map +1 -0
  202. package/dist/resources/pod/volume/volumes.js +124 -0
  203. package/dist/resources/pod/volume/volumes.js.map +1 -0
  204. package/dist/resources/secret/index.d.ts +4 -0
  205. package/dist/resources/secret/index.d.ts.map +1 -0
  206. package/dist/resources/secret/index.js +39 -0
  207. package/dist/resources/secret/index.js.map +1 -0
  208. package/dist/resources/secret/secret.d.ts +9 -0
  209. package/dist/resources/secret/secret.d.ts.map +1 -0
  210. package/dist/resources/secret/secret.js +77 -0
  211. package/dist/resources/secret/secret.js.map +1 -0
  212. package/dist/resources/service/frontend.d.ts +11 -0
  213. package/dist/resources/service/frontend.d.ts.map +1 -0
  214. package/dist/resources/service/frontend.js +3 -0
  215. package/dist/resources/service/frontend.js.map +1 -0
  216. package/dist/resources/service/index.d.ts +2 -0
  217. package/dist/resources/service/index.d.ts.map +1 -0
  218. package/dist/resources/service/index.js +18 -0
  219. package/dist/resources/service/index.js.map +1 -0
  220. package/dist/resources/service/service-port.d.ts +19 -0
  221. package/dist/resources/service/service-port.d.ts.map +1 -0
  222. package/dist/resources/service/service-port.js +21 -0
  223. package/dist/resources/service/service-port.js.map +1 -0
  224. package/dist/resources/service/service.d.ts +21 -0
  225. package/dist/resources/service/service.d.ts.map +1 -0
  226. package/dist/resources/service/service.js +99 -0
  227. package/dist/resources/service/service.js.map +1 -0
  228. package/dist/resources/utils/adapters.d.ts +8 -0
  229. package/dist/resources/utils/adapters.d.ts.map +1 -0
  230. package/dist/resources/utils/adapters.js +38 -0
  231. package/dist/resources/utils/adapters.js.map +1 -0
  232. package/dist/runner/exporter/assembler.d.ts +50 -0
  233. package/dist/runner/exporter/assembler.d.ts.map +1 -0
  234. package/dist/runner/exporter/assembler.js +122 -0
  235. package/dist/runner/exporter/assembler.js.map +1 -0
  236. package/dist/runner/exporter/index.d.ts +3 -0
  237. package/dist/runner/exporter/index.d.ts.map +1 -0
  238. package/dist/runner/exporter/index.js +19 -0
  239. package/dist/runner/exporter/index.js.map +1 -0
  240. package/dist/runner/exporter/loader.d.ts +19 -0
  241. package/dist/runner/exporter/loader.d.ts.map +1 -0
  242. package/dist/runner/exporter/loader.js +47 -0
  243. package/dist/runner/exporter/loader.js.map +1 -0
  244. package/dist/runner/exporter/manifester.d.ts +21 -0
  245. package/dist/runner/exporter/manifester.d.ts.map +1 -0
  246. package/dist/runner/exporter/manifester.js +72 -0
  247. package/dist/runner/exporter/manifester.js.map +1 -0
  248. package/dist/runner/exporter/meta.d.ts +2 -0
  249. package/dist/runner/exporter/meta.d.ts.map +1 -0
  250. package/dist/runner/exporter/meta.js +5 -0
  251. package/dist/runner/exporter/meta.js.map +1 -0
  252. package/dist/runner/exporter/progress-shower.d.ts +11 -0
  253. package/dist/runner/exporter/progress-shower.d.ts.map +1 -0
  254. package/dist/runner/exporter/progress-shower.js +68 -0
  255. package/dist/runner/exporter/progress-shower.js.map +1 -0
  256. package/dist/runner/exporter/saver.d.ts +27 -0
  257. package/dist/runner/exporter/saver.d.ts.map +1 -0
  258. package/dist/runner/exporter/saver.js +49 -0
  259. package/dist/runner/exporter/saver.js.map +1 -0
  260. package/dist/runner/exporter/serializer.d.ts +18 -0
  261. package/dist/runner/exporter/serializer.d.ts.map +1 -0
  262. package/dist/runner/exporter/serializer.js +47 -0
  263. package/dist/runner/exporter/serializer.js.map +1 -0
  264. package/dist/runner/exporter/stage.d.ts +9 -0
  265. package/dist/runner/exporter/stage.d.ts.map +1 -0
  266. package/dist/runner/exporter/stage.js +94 -0
  267. package/dist/runner/exporter/stage.js.map +1 -0
  268. package/dist/runner/exporter/trace-embedder.d.ts +1 -0
  269. package/dist/runner/exporter/trace-embedder.d.ts.map +1 -0
  270. package/dist/runner/exporter/trace-embedder.js +2 -0
  271. package/dist/runner/exporter/trace-embedder.js.map +1 -0
  272. package/dist/runner/index.d.ts +2 -0
  273. package/dist/runner/index.d.ts.map +1 -0
  274. package/dist/runner/index.js +18 -0
  275. package/dist/runner/index.js.map +1 -0
  276. package/dist/runner/proverbs.d.ts +1 -0
  277. package/dist/runner/proverbs.d.ts.map +1 -0
  278. package/dist/runner/proverbs.js +2 -0
  279. package/dist/runner/proverbs.js.map +1 -0
  280. package/dist/runner/runner.d.ts +13 -0
  281. package/dist/runner/runner.d.ts.map +1 -0
  282. package/dist/runner/runner.js +51 -0
  283. package/dist/runner/runner.js.map +1 -0
  284. package/dist/runner/silly/proverbs.d.ts +7 -0
  285. package/dist/runner/silly/proverbs.d.ts.map +1 -0
  286. package/dist/runner/silly/proverbs.js +20 -0
  287. package/dist/runner/silly/proverbs.js.map +1 -0
  288. package/dist/runner/summarizer.d.ts +23 -0
  289. package/dist/runner/summarizer.d.ts.map +1 -0
  290. package/dist/runner/summarizer.js +115 -0
  291. package/dist/runner/summarizer.js.map +1 -0
  292. package/dist/src.tsbuildinfo +1 -0
  293. package/dist/test.tsbuildinfo +1 -0
  294. package/dist/version.d.ts +2 -0
  295. package/dist/version.d.ts.map +1 -0
  296. package/dist/version.js +5 -0
  297. package/dist/version.js.map +1 -0
  298. package/dist/world/index.d.ts +2 -0
  299. package/dist/world/index.d.ts.map +1 -0
  300. package/dist/world/index.js +18 -0
  301. package/dist/world/index.js.map +1 -0
  302. package/dist/world/world.d.ts +28 -0
  303. package/dist/world/world.d.ts.map +1 -0
  304. package/dist/world/world.js +41 -0
  305. package/dist/world/world.js.map +1 -0
  306. package/package.json +106 -0
  307. package/proverbs.txt +23 -0
  308. package/src/_imports/_mix.ts +3 -0
  309. package/src/_imports/acme.cert-manager.io.ts +8202 -0
  310. package/src/_imports/gateway.networking.k8s.io.ts +12226 -0
  311. package/src/_imports/index.ts +2 -0
  312. package/src/_imports/k8s.ts +31028 -0
  313. package/src/_imports/tsconfig.json +22 -0
  314. package/src/api-versions.ts +5 -0
  315. package/src/error.ts +7 -0
  316. package/src/external/index.ts +34 -0
  317. package/src/file/exports.ts +63 -0
  318. package/src/file/factory.ts +150 -0
  319. package/src/file/file.ts +34 -0
  320. package/src/file/index.ts +1 -0
  321. package/src/file/origin.ts +38 -0
  322. package/src/index.ts +8 -0
  323. package/src/k8ts-sys-kind.ts +4 -0
  324. package/src/kind-map.ts +39 -0
  325. package/src/meta/k8ts-section.ts +6 -0
  326. package/src/node/abs-resource.ts +32 -0
  327. package/src/node/dependencies.ts +0 -0
  328. package/src/node/index.ts +1 -0
  329. package/src/node/manifest-resource.ts +19 -0
  330. package/src/node/sub-resource.ts +20 -0
  331. package/src/node/top-resource.ts +7 -0
  332. package/src/paths.ts +1 -0
  333. package/src/resources/configmap/configmap.ts +26 -0
  334. package/src/resources/configmap/index.ts +1 -0
  335. package/src/resources/deployment/deployment.ts +54 -0
  336. package/src/resources/deployment/index.ts +1 -0
  337. package/src/resources/http-route/http-route.ts +45 -0
  338. package/src/resources/http-route/index.ts +1 -0
  339. package/src/resources/index.ts +8 -0
  340. package/src/resources/namespace/index.ts +1 -0
  341. package/src/resources/namespace/namespace.ts +26 -0
  342. package/src/resources/persistent/access-mode.ts +29 -0
  343. package/src/resources/persistent/block-mode.ts +1 -0
  344. package/src/resources/persistent/claim/index.ts +1 -0
  345. package/src/resources/persistent/claim/pvc.ts +52 -0
  346. package/src/resources/persistent/index.ts +10 -0
  347. package/src/resources/persistent/volume/backend.ts +14 -0
  348. package/src/resources/persistent/volume/index.ts +1 -0
  349. package/src/resources/persistent/volume/parse-backend.ts +23 -0
  350. package/src/resources/persistent/volume/pv.ts +56 -0
  351. package/src/resources/pod/container/container.ts +137 -0
  352. package/src/resources/pod/container/index.ts +1 -0
  353. package/src/resources/pod/container/mounts.ts +45 -0
  354. package/src/resources/pod/index.ts +3 -0
  355. package/src/resources/pod/pod-template.ts +73 -0
  356. package/src/resources/pod/volume/devices.ts +50 -0
  357. package/src/resources/pod/volume/index.ts +3 -0
  358. package/src/resources/pod/volume/volumes.ts +90 -0
  359. package/src/resources/secret/index.ts +3 -0
  360. package/src/resources/secret/secret.ts +25 -0
  361. package/src/resources/service/frontend.ts +11 -0
  362. package/src/resources/service/index.ts +1 -0
  363. package/src/resources/service/service-port.ts +24 -0
  364. package/src/resources/service/service.ts +53 -0
  365. package/src/resources/utils/adapters.ts +36 -0
  366. package/src/runner/exporter/FILE xyz.md +47 -0
  367. package/src/runner/exporter/assembler.ts +170 -0
  368. package/src/runner/exporter/index.ts +2 -0
  369. package/src/runner/exporter/loader.ts +54 -0
  370. package/src/runner/exporter/manifester.ts +77 -0
  371. package/src/runner/exporter/meta.ts +1 -0
  372. package/src/runner/exporter/progress-shower.ts +77 -0
  373. package/src/runner/exporter/saver.ts +62 -0
  374. package/src/runner/exporter/serializer.ts +49 -0
  375. package/src/runner/exporter/stage.ts +36 -0
  376. package/src/runner/exporter/trace-embedder.ts +0 -0
  377. package/src/runner/index.ts +1 -0
  378. package/src/runner/proverbs.ts +0 -0
  379. package/src/runner/runner.ts +53 -0
  380. package/src/runner/silly/proverbs.ts +14 -0
  381. package/src/runner/summarizer.ts +133 -0
  382. package/src/tsconfig.json +16 -0
  383. package/src/version.ts +1 -0
  384. package/src/world/index.ts +1 -0
  385. package/src/world/world.ts +62 -0
@@ -0,0 +1,22 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "CommonJS",
5
+ "target": "ES2020",
6
+ "lib": ["ES2020"],
7
+ "allowSyntheticDefaultImports": true,
8
+ "esModuleInterop": true,
9
+ "moduleResolution": "Node",
10
+ "resolveJsonModule": true,
11
+ "declarationMap": true,
12
+ "sourceMap": true,
13
+ "tsBuildInfoFile": "../../dist/.imports.tsbuildinfo",
14
+ "rootDir": ".",
15
+ "noEmit": false,
16
+ "declaration": true,
17
+ "outDir": "../../dist/_imports",
18
+ "strict": false
19
+ },
20
+ "include": ["**/*.ts"],
21
+ "exclude": ["**/node_modules"]
22
+ }
@@ -0,0 +1,5 @@
1
+ import { Kind } from "@k8ts/instruments"
2
+
3
+ export const v1 = Kind.group("").version("v1")
4
+ export const apps_v1 = Kind.group("apps").version("v1")
5
+ export const gateway_v1 = Kind.group("networking.k8s.io").version("v1")
package/src/error.ts ADDED
@@ -0,0 +1,7 @@
1
+ export class MakeError extends Error {
2
+ override name = "MakeError"
3
+ constructor(message: string, details: Record<string, any> = {}) {
4
+ super(message)
5
+ Object.assign(this, details)
6
+ }
7
+ }
@@ -0,0 +1,34 @@
1
+ import { Kind, Origin, relations } from "@k8ts/instruments"
2
+ import { Meta } from "@k8ts/metadata"
3
+ import { ManifestResource } from "../node"
4
+
5
+ @relations("none")
6
+ export class External<K extends Kind> extends ManifestResource {
7
+ constructor(
8
+ origin: Origin,
9
+ readonly kind: K,
10
+ name: string,
11
+ namespace: string | undefined
12
+ ) {
13
+ super(
14
+ origin,
15
+ Meta.make({
16
+ name,
17
+ namespace
18
+ }),
19
+ {}
20
+ )
21
+ }
22
+
23
+ manifestBody(): never {
24
+ throw new Error("External resources cannot be manifested")
25
+ }
26
+
27
+ ref() {
28
+ return {
29
+ kind: this.kind.name,
30
+ name: this.name,
31
+ namespace: this.namespace
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,63 @@
1
+ import { FutureExports, Producer } from "@k8ts/instruments"
2
+ import { seq, type Seq } from "doddle"
3
+ import type { ManifestResource } from "../node"
4
+ import { k8ts_namespace } from "../runner/exporter/meta"
5
+ import { Factory } from "./factory"
6
+ import type { FileOrigin } from "./origin"
7
+
8
+ export namespace FileExports {
9
+ export type Producer<
10
+ Scope extends FileOrigin.Scope,
11
+ Produced extends object
12
+ > = Producer.Producer<Factory.FromScope<Scope>, Produced>
13
+ export interface Props<
14
+ Scope extends FileOrigin.Scope = FileOrigin.Scope,
15
+ Produced extends ManifestResource = ManifestResource
16
+ > {
17
+ origin: FileOrigin<Scope>
18
+ FILE: Producer<Scope, Produced>
19
+ }
20
+
21
+ export class Core {
22
+ #props: Props
23
+ #produced: Seq<ManifestResource>
24
+ constructor(props: Props) {
25
+ this.#props = props
26
+ const producer = Producer.map(props.FILE, () => {
27
+ if (props.origin.scope === "cluster") {
28
+ return new Factory.Cluster(props.origin.node)
29
+ } else {
30
+ return new Factory.Namespaced(props.origin.node)
31
+ }
32
+ })
33
+ this.#produced = seq(() => producer(props.origin)).each(x => {
34
+ x.meta.add(k8ts_namespace, {
35
+ "#is-exported": "true"
36
+ })
37
+ })
38
+ }
39
+
40
+ get __entity__() {
41
+ return this.#props.origin
42
+ }
43
+
44
+ get __node__() {
45
+ return this.#props.origin.node
46
+ }
47
+
48
+ [Symbol.iterator]() {
49
+ return this.#produced[Symbol.iterator]()
50
+ }
51
+ }
52
+
53
+ export function make<Scope extends FileOrigin.Scope, Produced extends ManifestResource>(
54
+ props: Props<Scope, Produced>
55
+ ): Core & FutureExports<Produced> {
56
+ const core = new Core(props)
57
+ return FutureExports.make({
58
+ actual: core,
59
+ origin: props.origin.node,
60
+ exports: core
61
+ }) as any
62
+ }
63
+ }
@@ -0,0 +1,150 @@
1
+ import { Origin, auto_register, displayers, type LiveRefable } from "@k8ts/instruments"
2
+ import chalk from "chalk"
3
+ import {
4
+ ConfigMap,
5
+ Deployment,
6
+ HttpRoute,
7
+ Namespace,
8
+ Persistent,
9
+ PodTemplate,
10
+ Secret,
11
+ Service
12
+ } from "../resources"
13
+ import { AssemblyStage } from "../runner/exporter"
14
+ import type { FileOrigin } from "./origin"
15
+
16
+ export type Factory = Factory.Factory
17
+ export namespace Factory {
18
+ export type Factory = Cluster | Namespaced
19
+ export type FromScope<FScope extends FileOrigin.Scope> = FScope extends "cluster"
20
+ ? Cluster
21
+ : Namespaced
22
+
23
+ export class Base {
24
+ constructor(readonly origin: Origin) {}
25
+
26
+ protected _metaWithName(name: string) {
27
+ return this.origin.meta.add({
28
+ name
29
+ })
30
+ }
31
+ }
32
+ @auto_register
33
+ export class Cluster extends Base {
34
+ PersistentVolume<Name extends string, Mode extends Persistent.DataMode = "Filesystem">(
35
+ name: Name,
36
+ props: Persistent.Volume.Props<Mode>
37
+ ) {
38
+ return new Persistent.Volume.Volume(
39
+ this.origin,
40
+ this._metaWithName(name),
41
+ props
42
+ ) as LiveRefable<Persistent.Volume<Mode>, Name>
43
+ }
44
+ Namespace<Name extends string>(name: Name, props?: Namespace.Props) {
45
+ return new Namespace.Namespace(
46
+ this.origin,
47
+ this._metaWithName(name),
48
+ props
49
+ ) as LiveRefable<Namespace, Name>
50
+ }
51
+ }
52
+
53
+ @auto_register
54
+ export class Namespaced extends Base {
55
+ Claim<Mode extends Persistent.DataMode, Name extends string>(
56
+ name: Name,
57
+ mode: Persistent.Claim.Props<Mode>
58
+ ) {
59
+ return new Persistent.Claim.Claim(
60
+ this.origin,
61
+ this._metaWithName(name),
62
+ mode
63
+ ) as LiveRefable<Persistent.Claim<Mode>, Name>
64
+ }
65
+ ConfigMap<Name extends string>(name: Name, props: ConfigMap.Props) {
66
+ return new ConfigMap.ConfigMap(
67
+ this.origin,
68
+ this._metaWithName(name),
69
+ props
70
+ ) as LiveRefable<ConfigMap, Name>
71
+ }
72
+ Secret<Name extends string>(name: Name, props: Secret.Props) {
73
+ return new Secret.Secret(this.origin, this._metaWithName(name), props) as LiveRefable<
74
+ Secret,
75
+ Name
76
+ >
77
+ }
78
+ Service<Name extends string, Ports extends string>(
79
+ name: Name,
80
+ props: Service.Props<Ports>
81
+ ) {
82
+ return new Service.Service(this.origin, this._metaWithName(name), props) as LiveRefable<
83
+ Service<Ports>,
84
+ Name
85
+ >
86
+ }
87
+
88
+ Deployment<Name extends string, Ports extends string>(
89
+ name: Name,
90
+ props: Deployment.Props<Ports>
91
+ ) {
92
+ return new Deployment.Deployment(
93
+ this.origin,
94
+ this._metaWithName(name),
95
+ props
96
+ ) as LiveRefable<Deployment<Ports>, Name>
97
+ }
98
+
99
+ DomainRoute<Name extends string, Ports extends string>(
100
+ name: Name,
101
+ props: HttpRoute.Props<Ports>
102
+ ) {
103
+ return new HttpRoute.HttpRoute(
104
+ this.origin,
105
+ this._metaWithName(name),
106
+ props
107
+ ) as LiveRefable<HttpRoute<Ports>, Name>
108
+ }
109
+ PodTemplate<Name extends string, Ports extends string>(
110
+ name: Name,
111
+ props: PodTemplate.Props<Ports> | PodTemplate.Props<Ports>["POD"]
112
+ ) {
113
+ const props_ = typeof props === "function" ? { POD: props } : props
114
+ return new PodTemplate.PodTemplate(
115
+ this.origin,
116
+ this._metaWithName(name),
117
+ props_
118
+ ) as LiveRefable<PodTemplate<Ports>, Name>
119
+ }
120
+ }
121
+ }
122
+ @displayers({
123
+ simple: s => s.text,
124
+ pretty: stage => chalk.bgGreenBright.bold.black(` ${stage.text} `)
125
+ })
126
+ export class Stage {
127
+ text: string
128
+ constructor(private stage: AssemblyStage) {
129
+ this.text = `${stage.toUpperCase()}`
130
+ }
131
+
132
+ private get _emoji() {
133
+ switch (this.stage) {
134
+ case "gathering":
135
+ return "🛒"
136
+ case "loading":
137
+ return "🚚"
138
+ case "manifesting":
139
+ return "👻"
140
+ case "start":
141
+ return "🚀"
142
+ case "saving":
143
+ return "💾"
144
+ case "serializing":
145
+ return "🖨️"
146
+ case "done":
147
+ return "✅"
148
+ }
149
+ }
150
+ }
@@ -0,0 +1,34 @@
1
+ import type { FutureExports, Origin } from "@k8ts/instruments"
2
+ import type { ManifestResource } from "../node"
3
+ import { FileExports as Exports_ } from "./exports"
4
+ import { Factory as Factory_ } from "./factory"
5
+ import { FileOrigin } from "./origin"
6
+ export type File<T extends ManifestResource = ManifestResource> = File.File<T>
7
+ export namespace File {
8
+ export import Factory = Factory_
9
+
10
+ export import Exports = Exports_
11
+
12
+ export interface Props<
13
+ Scope extends FileOrigin.Scope = FileOrigin.Scope,
14
+ Produced extends ManifestResource = ManifestResource
15
+ > extends FileOrigin.Props<Scope> {
16
+ FILE: Exports.Producer<Scope, Produced>
17
+ }
18
+
19
+ export type Input = Exports.Core & Iterable<ManifestResource>
20
+ export type File<T extends ManifestResource> = Exports.Core & FutureExports<T>
21
+
22
+ export function make<Scope extends FileOrigin.Scope, Produced extends ManifestResource>(
23
+ name: string,
24
+ props: Props<Scope, Produced>,
25
+ parent: Origin
26
+ ) {
27
+ const origin = FileOrigin.make(name, props, parent)
28
+ const exports = Exports.make({
29
+ origin,
30
+ FILE: props.FILE
31
+ })
32
+ return exports as File<Produced>
33
+ }
34
+ }
@@ -0,0 +1 @@
1
+ export * from "./file"
@@ -0,0 +1,38 @@
1
+ import { BaseOriginEntity, Origin, OriginEntityProps } from "@k8ts/instruments"
2
+ import { Meta } from "@k8ts/metadata"
3
+ import { k8tsBuildKind } from "../k8ts-sys-kind"
4
+ import type { Namespace } from "../resources"
5
+ export type FileOrigin<FScope extends FileOrigin.Scope = FileOrigin.Scope> =
6
+ FileOrigin.FileEntity<FScope>
7
+ export namespace FileOrigin {
8
+ export type Scope = Namespace | "cluster"
9
+
10
+ export interface Props<FScope extends Scope = Scope> extends OriginEntityProps {
11
+ meta?: Meta.Input
12
+ scope: FScope
13
+ }
14
+
15
+ const ident = k8tsBuildKind.kind("File")
16
+ export class FileEntity<FScope extends Scope> extends BaseOriginEntity<Props<FScope>> {
17
+ kind = k8tsBuildKind.kind("File")
18
+
19
+ constructor(name: string, props: Props<FScope>, parent: Origin) {
20
+ super(name, props, parent)
21
+ this.meta = this.meta.add({
22
+ namespace: props.scope === "cluster" ? undefined : props.scope.name
23
+ })
24
+ }
25
+
26
+ get scope() {
27
+ return this.props.scope
28
+ }
29
+ }
30
+
31
+ export function make<FScope extends Scope>(
32
+ name: string,
33
+ props: Props<FScope>,
34
+ parent: Origin
35
+ ): FileEntity<FScope> {
36
+ return new FileEntity(name, props, parent)
37
+ }
38
+ }
package/src/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ export { CDK } from "./_imports"
2
+ export * from "./external"
3
+ export * from "./file"
4
+ export * as ScopedFactory from "./file/factory"
5
+ export * from "./resources"
6
+ export * from "./runner"
7
+ export * from "./runner/exporter"
8
+ export * from "./world"
@@ -0,0 +1,4 @@
1
+ import { Kind } from "@k8ts/instruments"
2
+ import { version } from "./version"
3
+ const major = version.split(".")[0]
4
+ export const k8tsBuildKind = Kind.group("build.k8ts.org").version(`v${major}`)
@@ -0,0 +1,39 @@
1
+ import {
2
+ BaseOriginEntity,
3
+ Kind,
4
+ kinded,
5
+ MetadataEntity,
6
+ OriginEntityProps
7
+ } from "@k8ts/instruments"
8
+ import { k8tsBuildKind } from "./k8ts-sys-kind"
9
+ const ident = k8tsBuildKind.kind("World")
10
+
11
+ class K8tsRootOriginEntity extends BaseOriginEntity<OriginEntityProps> {
12
+ override kind = ident
13
+ constructor() {
14
+ super(
15
+ "K8ts",
16
+ {
17
+ meta: {
18
+ "^produced-by": `k8ts@${k8tsBuildKind.name.slice(1)}`
19
+ }
20
+ },
21
+ null
22
+ )
23
+ }
24
+
25
+ get decorator() {
26
+ return <Target extends new (...args: any[]) => MetadataEntity>(kind: Kind.Identifier) => {
27
+ return (ctor: Target) => {
28
+ this.node.resourceKinds.add(kind, ctor)
29
+ kinded(kind)(ctor)
30
+ return ctor
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ export const K8tsRootOrigin = new K8tsRootOriginEntity()
37
+ export const K8tsResources = K8tsRootOrigin.node.resourceKinds
38
+
39
+ export const k8ts = K8tsRootOrigin.decorator
@@ -0,0 +1,6 @@
1
+ import { Meta } from "@k8ts/metadata"
2
+ import { k8ts_namespace } from "../runner/exporter/meta"
3
+ export function k8tsSectionMeta(meta: Meta.Input) {
4
+ const m = Meta.make(meta)
5
+ return m.section(k8ts_namespace)
6
+ }
@@ -0,0 +1,32 @@
1
+ import { displayers, Kind, Origin, RefKey, ResourceNode } from "@k8ts/instruments"
2
+ import { Doddle, doddle } from "doddle"
3
+ export interface DependsOn {
4
+ resource: AbsResource
5
+ text: string
6
+ }
7
+ @displayers({
8
+ simple: s => s.node,
9
+ pretty: s => s.node
10
+ })
11
+ export abstract class AbsResource<Props extends object = object> {
12
+ abstract readonly kind: Kind.Identifier<string, Kind.Identifier>
13
+
14
+ private _node: Doddle<ResourceNode>
15
+
16
+ get node() {
17
+ return this._node.pull()
18
+ }
19
+ constructor(
20
+ origin: Origin,
21
+ readonly name: string,
22
+ readonly props: Props
23
+ ) {
24
+ this._node = doddle(() => new ResourceNode(origin, this, RefKey.make(this.kind, this.name)))
25
+ }
26
+
27
+ get shortFqn() {
28
+ return [this.node.origin.name, [this.kind.name, this.name].filter(Boolean).join("/")].join(
29
+ ":"
30
+ )
31
+ }
32
+ }
File without changes
@@ -0,0 +1 @@
1
+ export { ManifestResource } from "./manifest-resource"
@@ -0,0 +1,19 @@
1
+ import { Builder, Kind, type Origin } from "@k8ts/instruments"
2
+ import type { Meta, MutableMeta } from "@k8ts/metadata"
3
+ import { TopResource } from "./top-resource"
4
+
5
+ export abstract class ManifestResource<Props extends object = object> extends TopResource<Props> {
6
+ protected manifest() {
7
+ return Builder.get(this).manifest()
8
+ }
9
+ abstract override readonly kind: Kind.Kind
10
+ readonly meta: MutableMeta
11
+ constructor(origin: Origin, meta: Meta | MutableMeta, props: Props) {
12
+ super(origin, meta.get("name"), props)
13
+ this.meta = meta.toMutable()
14
+ }
15
+
16
+ get namespace() {
17
+ return this.meta.tryGet("namespace")
18
+ }
19
+ }
@@ -0,0 +1,20 @@
1
+ import { relations } from "@k8ts/instruments"
2
+ import { AbsResource } from "./abs-resource"
3
+ import type { ManifestResource } from "./manifest-resource"
4
+
5
+ @relations({
6
+ parent: self => self.parent
7
+ })
8
+ export abstract class SubResource<Props extends object = object> extends AbsResource<Props> {
9
+ constructor(
10
+ readonly parent: ManifestResource,
11
+ name: string,
12
+ props: Props
13
+ ) {
14
+ super(parent.node.origin, name, props)
15
+ }
16
+
17
+ get namespace() {
18
+ return this.parent.namespace
19
+ }
20
+ }
@@ -0,0 +1,7 @@
1
+ import type { Kind } from "@k8ts/instruments"
2
+ import { AbsResource } from "./abs-resource"
3
+
4
+ export abstract class TopResource<Props extends object = object> extends AbsResource<Props> {
5
+ abstract override readonly kind: Kind.Kind
6
+ abstract readonly namespace: string | undefined
7
+ }
package/src/paths.ts ADDED
@@ -0,0 +1 @@
1
+ export const proverbsPath = `${__dirname}/../proverbs.txt`
@@ -0,0 +1,26 @@
1
+ import { manifest, relations } from "@k8ts/instruments"
2
+ import type { CDK } from "../../_imports"
3
+ import { v1 } from "../../api-versions"
4
+ import { k8ts } from "../../kind-map"
5
+ import { ManifestResource } from "../../node/manifest-resource"
6
+ export type ConfigMap = ConfigMap.ConfigMap
7
+ export namespace ConfigMap {
8
+ export interface Props {
9
+ data: Record<string, string>
10
+ name: string
11
+ }
12
+
13
+ const ident = v1.kind("ConfigMap")
14
+ @k8ts(ident)
15
+ @relations("none")
16
+ @manifest({
17
+ body(self): CDK.KubeConfigMapProps {
18
+ return {
19
+ data: self.props.data
20
+ }
21
+ }
22
+ })
23
+ export class ConfigMap extends ManifestResource<Props> {
24
+ override kind = ident
25
+ }
26
+ }
@@ -0,0 +1 @@
1
+ export * from "./configmap"
@@ -0,0 +1,54 @@
1
+ import { manifest, Origin, relations } from "@k8ts/instruments"
2
+ import { Meta, MutableMeta } from "@k8ts/metadata"
3
+ import { omit } from "lodash"
4
+ import { CDK } from "../../_imports"
5
+ import { apps_v1 } from "../../api-versions"
6
+ import { k8ts } from "../../kind-map"
7
+ import { ManifestResource } from "../../node/manifest-resource"
8
+ import { PodTemplate } from "../pod/pod-template"
9
+
10
+ export type Deployment<Ports extends string> = Deployment.Deployment<Ports>
11
+ export namespace Deployment {
12
+ export type Props<Ports extends string> = Omit<CDK.DeploymentSpec, "selector" | "template"> & {
13
+ template: PodTemplate.Props<Ports>
14
+ }
15
+
16
+ const ident = apps_v1.kind("Deployment")
17
+ @k8ts(ident)
18
+ @relations({
19
+ kids: s => [s.template]
20
+ })
21
+ @manifest({
22
+ body(self): CDK.KubeDeploymentProps {
23
+ return {
24
+ spec: {
25
+ ...omit(self.props, "template"),
26
+ selector: {
27
+ matchLabels: {
28
+ app: self.name
29
+ }
30
+ },
31
+ template: self.template["manifest"]()
32
+ }
33
+ }
34
+ }
35
+ })
36
+ export class Deployment<Ports extends string = string> extends ManifestResource<Props<Ports>> {
37
+ kind = ident
38
+ template: PodTemplate<Ports>
39
+ constructor(origin: Origin, meta: Meta | MutableMeta, props: Props<Ports>) {
40
+ super(origin, meta, props)
41
+ this.template = new PodTemplate.PodTemplate(
42
+ origin,
43
+ Meta.make({
44
+ name: this.name,
45
+ "%app": this.name
46
+ }),
47
+ props.template
48
+ )
49
+ }
50
+ get ports() {
51
+ return this.template.ports
52
+ }
53
+ }
54
+ }
@@ -0,0 +1 @@
1
+ export * from "./deployment"
@@ -0,0 +1,45 @@
1
+ import { manifest, relations } from "@k8ts/instruments"
2
+ import type { CDK } from "../../_imports"
3
+ import { gateway_v1 } from "../../api-versions"
4
+ import type { External } from "../../external"
5
+ import { k8ts } from "../../kind-map"
6
+ import { ManifestResource } from "../../node"
7
+ import type { Service } from "../service"
8
+
9
+ export type HttpRoute<Ports extends string> = HttpRoute.HttpRoute<Ports>
10
+
11
+ export namespace HttpRoute {
12
+ const gwKind = gateway_v1.kind("Gateway")
13
+ export interface Props<Ports extends string> {
14
+ parent: External<typeof gwKind>
15
+ hostname: string
16
+ backend: Service.Port<Ports>
17
+ }
18
+
19
+ const kind = gateway_v1.kind("HttpRoute")
20
+ @k8ts(kind)
21
+ @relations({
22
+ needs: self => ({
23
+ gateway: self.props.parent,
24
+ service: self.props.backend.service
25
+ })
26
+ })
27
+ @manifest({
28
+ body(self): CDK.HttpRouteProps {
29
+ return {
30
+ spec: {
31
+ parentRefs: [self.props.parent.ref()],
32
+ hostnames: [self.props.hostname],
33
+ rules: [
34
+ {
35
+ backendRefs: [self.props.backend.ref()]
36
+ }
37
+ ]
38
+ }
39
+ }
40
+ }
41
+ })
42
+ export class HttpRoute<Ports extends string> extends ManifestResource<Props<Ports>> {
43
+ kind = gateway_v1.kind("HttpRoute")
44
+ }
45
+ }
@@ -0,0 +1 @@
1
+ export * from "./http-route"
@@ -0,0 +1,8 @@
1
+ export * from "./configmap"
2
+ export * from "./deployment"
3
+ export * from "./http-route/http-route"
4
+ export * from "./namespace"
5
+ export * from "./persistent"
6
+ export * from "./pod"
7
+ export * from "./secret"
8
+ export * from "./service"
@@ -0,0 +1 @@
1
+ export * from "./namespace"