k8ts 0.7.3 → 0.9.1

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 (437) hide show
  1. package/dist/default-world.d.ts +5 -0
  2. package/dist/default-world.d.ts.map +1 -0
  3. package/dist/default-world.js +54 -0
  4. package/dist/default-world.js.map +1 -0
  5. package/dist/env/env.d.ts +6 -8
  6. package/dist/env/env.d.ts.map +1 -1
  7. package/dist/env/env.js +29 -28
  8. package/dist/env/env.js.map +1 -1
  9. package/dist/env/index.d.ts +1 -1
  10. package/dist/env/index.d.ts.map +1 -1
  11. package/dist/env/types.d.ts +7 -5
  12. package/dist/env/types.d.ts.map +1 -1
  13. package/dist/env/types.js +11 -0
  14. package/dist/env/types.js.map +1 -1
  15. package/dist/index.d.ts +4 -7
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +5 -31
  18. package/dist/index.js.map +1 -1
  19. package/dist/kinds/apps.d.ts +30 -0
  20. package/dist/kinds/apps.d.ts.map +1 -0
  21. package/dist/kinds/apps.js +33 -0
  22. package/dist/kinds/apps.js.map +1 -0
  23. package/dist/kinds/batch.d.ts +18 -0
  24. package/dist/kinds/batch.d.ts.map +1 -0
  25. package/dist/kinds/batch.js +21 -0
  26. package/dist/kinds/batch.js.map +1 -0
  27. package/dist/kinds/default.d.ts +74 -0
  28. package/dist/kinds/default.d.ts.map +1 -0
  29. package/dist/kinds/default.js +78 -0
  30. package/dist/kinds/default.js.map +1 -0
  31. package/dist/kinds/gateway.d.ts +30 -0
  32. package/dist/kinds/gateway.d.ts.map +1 -0
  33. package/dist/kinds/gateway.js +33 -0
  34. package/dist/kinds/gateway.js.map +1 -0
  35. package/dist/kinds/index.d.ts +9 -0
  36. package/dist/kinds/index.d.ts.map +1 -0
  37. package/dist/{_imports/_mix.js → kinds/index.js} +9 -4
  38. package/dist/kinds/index.js.map +1 -0
  39. package/dist/kinds/metrics.d.ts +18 -0
  40. package/dist/kinds/metrics.d.ts.map +1 -0
  41. package/dist/kinds/metrics.js +21 -0
  42. package/dist/kinds/metrics.js.map +1 -0
  43. package/dist/kinds/networking.d.ts +14 -0
  44. package/dist/kinds/networking.d.ts.map +1 -0
  45. package/dist/kinds/networking.js +17 -0
  46. package/dist/kinds/networking.js.map +1 -0
  47. package/dist/kinds/rbac.d.ts +26 -0
  48. package/dist/kinds/rbac.d.ts.map +1 -0
  49. package/dist/kinds/rbac.js +29 -0
  50. package/dist/kinds/rbac.js.map +1 -0
  51. package/dist/kinds/storage.d.ts +18 -0
  52. package/dist/kinds/storage.d.ts.map +1 -0
  53. package/dist/kinds/storage.js +21 -0
  54. package/dist/kinds/storage.js.map +1 -0
  55. package/dist/origins/external.d.ts +8 -0
  56. package/dist/origins/external.d.ts.map +1 -0
  57. package/dist/origins/external.js +19 -0
  58. package/dist/origins/external.js.map +1 -0
  59. package/dist/origins/file/file.d.ts +24 -0
  60. package/dist/origins/file/file.d.ts.map +1 -0
  61. package/dist/{node/sub-resource.js → origins/file/file.js} +51 -32
  62. package/dist/origins/file/file.js.map +1 -0
  63. package/dist/origins/file/index.d.ts +4 -0
  64. package/dist/origins/file/index.d.ts.map +1 -0
  65. package/dist/{file → origins/file}/index.js +2 -0
  66. package/dist/origins/file/index.js.map +1 -0
  67. package/dist/origins/file/modifier.d.ts +10 -0
  68. package/dist/origins/file/modifier.d.ts.map +1 -0
  69. package/dist/origins/file/modifier.js +21 -0
  70. package/dist/origins/file/modifier.js.map +1 -0
  71. package/dist/origins/file/section.d.ts +18 -0
  72. package/dist/origins/file/section.d.ts.map +1 -0
  73. package/dist/{external/index.js → origins/file/section.js} +40 -41
  74. package/dist/origins/file/section.js.map +1 -0
  75. package/dist/origins/index.d.ts +4 -0
  76. package/dist/origins/index.d.ts.map +1 -0
  77. package/dist/{world → origins}/index.js +2 -0
  78. package/dist/origins/index.js.map +1 -0
  79. package/dist/origins/world.d.ts +13 -0
  80. package/dist/origins/world.d.ts.map +1 -0
  81. package/dist/origins/world.js +27 -0
  82. package/dist/origins/world.js.map +1 -0
  83. package/dist/resources/configmap/configmap.d.ts +10 -12
  84. package/dist/resources/configmap/configmap.d.ts.map +1 -1
  85. package/dist/resources/configmap/configmap.js +21 -72
  86. package/dist/resources/configmap/configmap.js.map +1 -1
  87. package/dist/resources/cronjob/index.d.ts +12 -12
  88. package/dist/resources/cronjob/index.d.ts.map +1 -1
  89. package/dist/resources/cronjob/index.js +29 -86
  90. package/dist/resources/cronjob/index.js.map +1 -1
  91. package/dist/resources/deployment/deployment.d.ts +28 -29
  92. package/dist/resources/deployment/deployment.d.ts.map +1 -1
  93. package/dist/resources/deployment/deployment.js +59 -109
  94. package/dist/resources/deployment/deployment.js.map +1 -1
  95. package/dist/resources/external/index.d.ts +19 -0
  96. package/dist/resources/external/index.d.ts.map +1 -0
  97. package/dist/resources/external/index.js +44 -0
  98. package/dist/resources/external/index.js.map +1 -0
  99. package/dist/resources/http-route/http-route.d.ts +31 -16
  100. package/dist/resources/http-route/http-route.d.ts.map +1 -1
  101. package/dist/resources/http-route/http-route.js +28 -80
  102. package/dist/resources/http-route/http-route.js.map +1 -1
  103. package/dist/resources/index.d.ts +4 -0
  104. package/dist/resources/index.d.ts.map +1 -1
  105. package/dist/resources/index.js +4 -0
  106. package/dist/resources/index.js.map +1 -1
  107. package/dist/resources/namespace/namespace.d.ts +10 -11
  108. package/dist/resources/namespace/namespace.d.ts.map +1 -1
  109. package/dist/resources/namespace/namespace.js +14 -70
  110. package/dist/resources/namespace/namespace.js.map +1 -1
  111. package/dist/resources/persistent/access-mode.d.ts +5 -5
  112. package/dist/resources/persistent/access-mode.d.ts.map +1 -1
  113. package/dist/resources/persistent/access-mode.js +2 -2
  114. package/dist/resources/persistent/access-mode.js.map +1 -1
  115. package/dist/resources/persistent/block-mode.d.ts +1 -1
  116. package/dist/resources/persistent/block-mode.d.ts.map +1 -1
  117. package/dist/resources/persistent/claim/pvc.d.ts +25 -24
  118. package/dist/resources/persistent/claim/pvc.d.ts.map +1 -1
  119. package/dist/resources/persistent/claim/pvc.js +40 -91
  120. package/dist/resources/persistent/claim/pvc.js.map +1 -1
  121. package/dist/resources/persistent/volume/parse-backend.d.ts +2 -2
  122. package/dist/resources/persistent/volume/parse-backend.d.ts.map +1 -1
  123. package/dist/resources/persistent/volume/parse-backend.js.map +1 -1
  124. package/dist/resources/persistent/volume/pv.d.ts +42 -27
  125. package/dist/resources/persistent/volume/pv.d.ts.map +1 -1
  126. package/dist/resources/persistent/volume/pv.js +47 -100
  127. package/dist/resources/persistent/volume/pv.js.map +1 -1
  128. package/dist/resources/pod/container/container.d.ts +42 -48
  129. package/dist/resources/pod/container/container.d.ts.map +1 -1
  130. package/dist/resources/pod/container/container.js +89 -145
  131. package/dist/resources/pod/container/container.js.map +1 -1
  132. package/dist/resources/pod/container/mounts.d.ts +29 -30
  133. package/dist/resources/pod/container/mounts.d.ts.map +1 -1
  134. package/dist/resources/pod/container/mounts.js +42 -41
  135. package/dist/resources/pod/container/mounts.js.map +1 -1
  136. package/dist/resources/pod/pod-template.d.ts +41 -40
  137. package/dist/resources/pod/pod-template.d.ts.map +1 -1
  138. package/dist/resources/pod/pod-template.js +76 -110
  139. package/dist/resources/pod/pod-template.js.map +1 -1
  140. package/dist/resources/pod/volume/devices.d.ts +18 -20
  141. package/dist/resources/pod/volume/devices.d.ts.map +1 -1
  142. package/dist/resources/pod/volume/devices.js +33 -85
  143. package/dist/resources/pod/volume/devices.js.map +1 -1
  144. package/dist/resources/pod/volume/index.d.ts +2 -3
  145. package/dist/resources/pod/volume/index.d.ts.map +1 -1
  146. package/dist/resources/pod/volume/index.js +3 -5
  147. package/dist/resources/pod/volume/index.js.map +1 -1
  148. package/dist/resources/pod/volume/volumes.d.ts +24 -25
  149. package/dist/resources/pod/volume/volumes.d.ts.map +1 -1
  150. package/dist/resources/pod/volume/volumes.js +66 -108
  151. package/dist/resources/pod/volume/volumes.js.map +1 -1
  152. package/dist/resources/rbac/cluster-role-binding.d.ts +17 -0
  153. package/dist/resources/rbac/cluster-role-binding.d.ts.map +1 -0
  154. package/dist/resources/rbac/cluster-role-binding.js +32 -0
  155. package/dist/resources/rbac/cluster-role-binding.js.map +1 -0
  156. package/dist/resources/rbac/cluster-role.d.ts +28 -0
  157. package/dist/resources/rbac/cluster-role.d.ts.map +1 -0
  158. package/dist/resources/rbac/cluster-role.js +46 -0
  159. package/dist/resources/rbac/cluster-role.js.map +1 -0
  160. package/dist/resources/rbac/service-account.d.ts +11 -0
  161. package/dist/resources/rbac/service-account.d.ts.map +1 -0
  162. package/dist/resources/rbac/service-account.js +21 -0
  163. package/dist/resources/rbac/service-account.js.map +1 -0
  164. package/dist/resources/secret/index.d.ts +1 -3
  165. package/dist/resources/secret/index.d.ts.map +1 -1
  166. package/dist/resources/secret/index.js +4 -25
  167. package/dist/resources/secret/index.js.map +1 -1
  168. package/dist/resources/secret/secret.d.ts +8 -4
  169. package/dist/resources/secret/secret.d.ts.map +1 -1
  170. package/dist/resources/secret/secret.js +12 -65
  171. package/dist/resources/secret/secret.js.map +1 -1
  172. package/dist/resources/service/service-port.d.ts +12 -15
  173. package/dist/resources/service/service-port.d.ts.map +1 -1
  174. package/dist/resources/service/service-port.js +21 -24
  175. package/dist/resources/service/service-port.js.map +1 -1
  176. package/dist/resources/service/service.d.ts +33 -27
  177. package/dist/resources/service/service.d.ts.map +1 -1
  178. package/dist/resources/service/service.js +63 -123
  179. package/dist/resources/service/service.js.map +1 -1
  180. package/dist/resources/utils/adapters.d.ts +3 -3
  181. package/dist/resources/utils/adapters.d.ts.map +1 -1
  182. package/dist/resources/utils/adapters.js +5 -4
  183. package/dist/resources/utils/adapters.js.map +1 -1
  184. package/dist/runner/exporter/assembler.d.ts +5 -6
  185. package/dist/runner/exporter/assembler.d.ts.map +1 -1
  186. package/dist/runner/exporter/assembler.js +4 -3
  187. package/dist/runner/exporter/assembler.js.map +1 -1
  188. package/dist/runner/exporter/loader.d.ts +3 -5
  189. package/dist/runner/exporter/loader.d.ts.map +1 -1
  190. package/dist/runner/exporter/loader.js +18 -31
  191. package/dist/runner/exporter/loader.js.map +1 -1
  192. package/dist/runner/exporter/manifester.d.ts +5 -5
  193. package/dist/runner/exporter/manifester.d.ts.map +1 -1
  194. package/dist/runner/exporter/manifester.js +11 -3
  195. package/dist/runner/exporter/manifester.js.map +1 -1
  196. package/dist/runner/exporter/meta.d.ts +1 -1
  197. package/dist/runner/exporter/meta.d.ts.map +1 -1
  198. package/dist/runner/exporter/meta.js +0 -2
  199. package/dist/runner/exporter/meta.js.map +1 -1
  200. package/dist/runner/exporter/saver.d.ts +2 -2
  201. package/dist/runner/exporter/saver.d.ts.map +1 -1
  202. package/dist/runner/exporter/saver.js.map +1 -1
  203. package/dist/runner/exporter/serializer.d.ts +4 -4
  204. package/dist/runner/exporter/serializer.d.ts.map +1 -1
  205. package/dist/runner/exporter/serializer.js +13 -5
  206. package/dist/runner/exporter/serializer.js.map +1 -1
  207. package/dist/runner/exporter/validator.d.ts +2 -2
  208. package/dist/runner/exporter/validator.d.ts.map +1 -1
  209. package/dist/runner/exporter/validator.js +1 -14
  210. package/dist/runner/exporter/validator.js.map +1 -1
  211. package/dist/runner/paths.d.ts.map +1 -0
  212. package/dist/runner/paths.js.map +1 -0
  213. package/dist/runner/runner.d.ts +2 -2
  214. package/dist/runner/runner.d.ts.map +1 -1
  215. package/dist/runner/runner.js +11 -6
  216. package/dist/runner/runner.js.map +1 -1
  217. package/dist/runner/summarizer.d.ts +4 -4
  218. package/dist/runner/summarizer.d.ts.map +1 -1
  219. package/dist/runner/summarizer.js +3 -3
  220. package/dist/runner/summarizer.js.map +1 -1
  221. package/dist/version.d.ts +2 -1
  222. package/dist/version.d.ts.map +1 -1
  223. package/dist/version.js +2 -1
  224. package/dist/version.js.map +1 -1
  225. package/package.json +12 -18
  226. package/src/default-world.ts +66 -0
  227. package/src/env/env.ts +42 -36
  228. package/src/env/index.ts +1 -1
  229. package/src/env/types.ts +15 -5
  230. package/src/index.ts +4 -7
  231. package/src/kinds/apps.ts +30 -0
  232. package/src/kinds/batch.ts +18 -0
  233. package/src/kinds/default.ts +81 -0
  234. package/src/kinds/gateway.ts +30 -0
  235. package/src/kinds/index.ts +9 -0
  236. package/src/kinds/metrics.ts +18 -0
  237. package/src/kinds/networking.ts +14 -0
  238. package/src/kinds/rbac.ts +26 -0
  239. package/src/kinds/storage.ts +18 -0
  240. package/src/origins/external.ts +14 -0
  241. package/src/origins/file/file.ts +72 -0
  242. package/src/origins/file/index.ts +3 -0
  243. package/src/origins/file/modifier.ts +21 -0
  244. package/src/origins/file/section.ts +43 -0
  245. package/src/origins/index.ts +3 -0
  246. package/src/origins/world.ts +40 -0
  247. package/src/resources/configmap/configmap.ts +26 -31
  248. package/src/resources/cronjob/index.ts +33 -43
  249. package/src/resources/deployment/deployment.ts +85 -76
  250. package/src/resources/external/index.ts +49 -0
  251. package/src/resources/http-route/http-route.ts +40 -39
  252. package/src/resources/index.ts +4 -0
  253. package/src/resources/namespace/namespace.ts +16 -24
  254. package/src/resources/persistent/access-mode.ts +6 -6
  255. package/src/resources/persistent/block-mode.ts +1 -1
  256. package/src/resources/persistent/claim/pvc.ts +54 -55
  257. package/src/resources/persistent/volume/parse-backend.ts +2 -2
  258. package/src/resources/persistent/volume/pv.ts +87 -69
  259. package/src/resources/pod/container/container.ts +113 -121
  260. package/src/resources/pod/container/mounts.ts +42 -39
  261. package/src/resources/pod/pod-template.ts +80 -67
  262. package/src/resources/pod/volume/devices.ts +41 -42
  263. package/src/resources/pod/volume/index.ts +2 -3
  264. package/src/resources/pod/volume/volumes.ts +92 -70
  265. package/src/resources/rbac/cluster-role-binding.ts +40 -0
  266. package/src/resources/rbac/cluster-role.ts +99 -0
  267. package/src/resources/rbac/service-account.ts +25 -0
  268. package/src/resources/secret/index.ts +1 -3
  269. package/src/resources/secret/secret.ts +11 -17
  270. package/src/resources/service/service-port.ts +21 -25
  271. package/src/resources/service/service.ts +84 -92
  272. package/src/resources/utils/adapters.ts +4 -3
  273. package/src/runner/exporter/assembler.ts +9 -9
  274. package/src/runner/exporter/loader.ts +24 -40
  275. package/src/runner/exporter/manifester.ts +24 -14
  276. package/src/runner/exporter/meta.ts +0 -1
  277. package/src/runner/exporter/saver.ts +3 -2
  278. package/src/runner/exporter/serializer.ts +20 -7
  279. package/src/runner/exporter/validator.ts +3 -17
  280. package/src/runner/runner.ts +17 -12
  281. package/src/runner/summarizer.ts +9 -9
  282. package/src/version.ts +2 -1
  283. package/dist/_imports/_mix.d.ts +0 -4
  284. package/dist/_imports/_mix.d.ts.map +0 -1
  285. package/dist/_imports/_mix.js.map +0 -1
  286. package/dist/_imports/acme.cert-manager.io.d.ts +0 -4832
  287. package/dist/_imports/acme.cert-manager.io.d.ts.map +0 -1
  288. package/dist/_imports/acme.cert-manager.io.js +0 -2476
  289. package/dist/_imports/acme.cert-manager.io.js.map +0 -1
  290. package/dist/_imports/gateway.networking.k8s.io.d.ts +0 -8786
  291. package/dist/_imports/gateway.networking.k8s.io.d.ts.map +0 -1
  292. package/dist/_imports/gateway.networking.k8s.io.js +0 -3668
  293. package/dist/_imports/gateway.networking.k8s.io.js.map +0 -1
  294. package/dist/_imports/helm.toolkit.fluxcd.io.d.ts +0 -4894
  295. package/dist/_imports/helm.toolkit.fluxcd.io.d.ts.map +0 -1
  296. package/dist/_imports/helm.toolkit.fluxcd.io.js +0 -2430
  297. package/dist/_imports/helm.toolkit.fluxcd.io.js.map +0 -1
  298. package/dist/_imports/index.d.ts +0 -3
  299. package/dist/_imports/index.d.ts.map +0 -1
  300. package/dist/_imports/index.js +0 -39
  301. package/dist/_imports/index.js.map +0 -1
  302. package/dist/_imports/k8s.d.ts +0 -18782
  303. package/dist/_imports/k8s.d.ts.map +0 -1
  304. package/dist/_imports/k8s.js +0 -12173
  305. package/dist/_imports/k8s.js.map +0 -1
  306. package/dist/_imports/kustomize.toolkit.fluxcd.io.d.ts +0 -2367
  307. package/dist/_imports/kustomize.toolkit.fluxcd.io.d.ts.map +0 -1
  308. package/dist/_imports/kustomize.toolkit.fluxcd.io.js +0 -1285
  309. package/dist/_imports/kustomize.toolkit.fluxcd.io.js.map +0 -1
  310. package/dist/_imports/notification.toolkit.fluxcd.io.d.ts +0 -2005
  311. package/dist/_imports/notification.toolkit.fluxcd.io.d.ts.map +0 -1
  312. package/dist/_imports/notification.toolkit.fluxcd.io.js +0 -1575
  313. package/dist/_imports/notification.toolkit.fluxcd.io.js.map +0 -1
  314. package/dist/_imports/source.toolkit.fluxcd.io.d.ts +0 -4158
  315. package/dist/_imports/source.toolkit.fluxcd.io.d.ts.map +0 -1
  316. package/dist/_imports/source.toolkit.fluxcd.io.js +0 -2739
  317. package/dist/_imports/source.toolkit.fluxcd.io.js.map +0 -1
  318. package/dist/external/index.d.ts +0 -13
  319. package/dist/external/index.d.ts.map +0 -1
  320. package/dist/external/index.js.map +0 -1
  321. package/dist/file/exports.d.ts +0 -19
  322. package/dist/file/exports.d.ts.map +0 -1
  323. package/dist/file/exports.js +0 -53
  324. package/dist/file/exports.js.map +0 -1
  325. package/dist/file/factory.d.ts +0 -41
  326. package/dist/file/factory.d.ts.map +0 -1
  327. package/dist/file/factory.js +0 -197
  328. package/dist/file/factory.js.map +0 -1
  329. package/dist/file/file.d.ts +0 -16
  330. package/dist/file/file.d.ts.map +0 -1
  331. package/dist/file/file.js +0 -21
  332. package/dist/file/file.js.map +0 -1
  333. package/dist/file/index.d.ts +0 -2
  334. package/dist/file/index.d.ts.map +0 -1
  335. package/dist/file/index.js.map +0 -1
  336. package/dist/file/origin.d.ts +0 -21
  337. package/dist/file/origin.d.ts.map +0 -1
  338. package/dist/file/origin.js +0 -27
  339. package/dist/file/origin.js.map +0 -1
  340. package/dist/k8ts-sys-kind.d.ts +0 -3
  341. package/dist/k8ts-sys-kind.d.ts.map +0 -1
  342. package/dist/k8ts-sys-kind.js +0 -8
  343. package/dist/k8ts-sys-kind.js.map +0 -1
  344. package/dist/kind-map.d.ts +0 -12
  345. package/dist/kind-map.d.ts.map +0 -1
  346. package/dist/kind-map.js +0 -30
  347. package/dist/kind-map.js.map +0 -1
  348. package/dist/kinds.d.ts +0 -115
  349. package/dist/kinds.d.ts.map +0 -1
  350. package/dist/kinds.js +0 -95
  351. package/dist/kinds.js.map +0 -1
  352. package/dist/meta/k8ts-section.d.ts +0 -3
  353. package/dist/meta/k8ts-section.d.ts.map +0 -1
  354. package/dist/meta/k8ts-section.js +0 -10
  355. package/dist/meta/k8ts-section.js.map +0 -1
  356. package/dist/node/abs-resource.d.ts +0 -16
  357. package/dist/node/abs-resource.d.ts.map +0 -1
  358. package/dist/node/abs-resource.js +0 -79
  359. package/dist/node/abs-resource.js.map +0 -1
  360. package/dist/node/dependencies.d.ts +0 -2
  361. package/dist/node/dependencies.d.ts.map +0 -1
  362. package/dist/node/dependencies.js +0 -3
  363. package/dist/node/dependencies.js.map +0 -1
  364. package/dist/node/equiv-cdk8s.d.ts +0 -9
  365. package/dist/node/equiv-cdk8s.d.ts.map +0 -1
  366. package/dist/node/equiv-cdk8s.js +0 -17
  367. package/dist/node/equiv-cdk8s.js.map +0 -1
  368. package/dist/node/index.d.ts +0 -5
  369. package/dist/node/index.d.ts.map +0 -1
  370. package/dist/node/index.js +0 -12
  371. package/dist/node/index.js.map +0 -1
  372. package/dist/node/manifest-resource.d.ts +0 -15
  373. package/dist/node/manifest-resource.d.ts.map +0 -1
  374. package/dist/node/manifest-resource.js +0 -20
  375. package/dist/node/manifest-resource.js.map +0 -1
  376. package/dist/node/sub-resource.d.ts +0 -8
  377. package/dist/node/sub-resource.d.ts.map +0 -1
  378. package/dist/node/sub-resource.js.map +0 -1
  379. package/dist/node/top-resource.d.ts +0 -7
  380. package/dist/node/top-resource.d.ts.map +0 -1
  381. package/dist/node/top-resource.js +0 -8
  382. package/dist/node/top-resource.js.map +0 -1
  383. package/dist/paths.d.ts.map +0 -1
  384. package/dist/paths.js.map +0 -1
  385. package/dist/resources/persistent/volume/backend.d.ts +0 -19
  386. package/dist/resources/persistent/volume/backend.d.ts.map +0 -1
  387. package/dist/resources/persistent/volume/backend.js +0 -3
  388. package/dist/resources/persistent/volume/backend.js.map +0 -1
  389. package/dist/resources/service/frontend.d.ts +0 -11
  390. package/dist/resources/service/frontend.d.ts.map +0 -1
  391. package/dist/resources/service/frontend.js +0 -3
  392. package/dist/resources/service/frontend.js.map +0 -1
  393. package/dist/runner/exporter/trace-embedder.d.ts +0 -2
  394. package/dist/runner/exporter/trace-embedder.d.ts.map +0 -1
  395. package/dist/runner/exporter/trace-embedder.js +0 -3
  396. package/dist/runner/exporter/trace-embedder.js.map +0 -1
  397. package/dist/world/index.d.ts +0 -2
  398. package/dist/world/index.d.ts.map +0 -1
  399. package/dist/world/index.js.map +0 -1
  400. package/dist/world/world.d.ts +0 -34
  401. package/dist/world/world.d.ts.map +0 -1
  402. package/dist/world/world.js +0 -69
  403. package/dist/world/world.js.map +0 -1
  404. package/src/_imports/_mix.ts +0 -3
  405. package/src/_imports/acme.cert-manager.io.ts +0 -8202
  406. package/src/_imports/gateway.networking.k8s.io.ts +0 -12226
  407. package/src/_imports/helm.toolkit.fluxcd.io.ts +0 -6748
  408. package/src/_imports/index.ts +0 -2
  409. package/src/_imports/k8s.ts +0 -31028
  410. package/src/_imports/kustomize.toolkit.fluxcd.io.ts +0 -3369
  411. package/src/_imports/notification.toolkit.fluxcd.io.ts +0 -2848
  412. package/src/_imports/source.toolkit.fluxcd.io.ts +0 -6054
  413. package/src/external/index.ts +0 -34
  414. package/src/file/exports.ts +0 -66
  415. package/src/file/factory.ts +0 -199
  416. package/src/file/file.ts +0 -33
  417. package/src/file/index.ts +0 -1
  418. package/src/file/origin.ts +0 -41
  419. package/src/k8ts-sys-kind.ts +0 -4
  420. package/src/kind-map.ts +0 -42
  421. package/src/kinds.ts +0 -158
  422. package/src/meta/k8ts-section.ts +0 -6
  423. package/src/node/abs-resource.ts +0 -37
  424. package/src/node/dependencies.ts +0 -0
  425. package/src/node/equiv-cdk8s.ts +0 -19
  426. package/src/node/index.ts +0 -4
  427. package/src/node/manifest-resource.ts +0 -23
  428. package/src/node/sub-resource.ts +0 -20
  429. package/src/node/top-resource.ts +0 -7
  430. package/src/resources/persistent/volume/backend.ts +0 -20
  431. package/src/resources/service/frontend.ts +0 -11
  432. package/src/runner/exporter/trace-embedder.ts +0 -0
  433. package/src/world/index.ts +0 -1
  434. package/src/world/world.ts +0 -90
  435. /package/dist/{paths.d.ts → runner/paths.d.ts} +0 -0
  436. /package/dist/{paths.js → runner/paths.js} +0 -0
  437. /package/src/{paths.ts → runner/paths.ts} +0 -0
@@ -0,0 +1,99 @@
1
+ import { Kind, Resource_Top } from "@k8ts/instruments"
2
+ import { CDK } from "@k8ts/sample-interfaces"
3
+ import { seq } from "doddle"
4
+ import { rbac } from "../../kinds/rbac"
5
+ export interface ClusterRole_Rule<
6
+ Groups extends Kind.Group[] = Kind.Group[],
7
+ Resources extends Kind.Kind<Groups[number]["name"], string, string>[] = Kind.Kind[]
8
+ > {
9
+ resources: Resources
10
+ verbs: Verbs[]
11
+ }
12
+ export type ClusterRole_RuleProducer<Rules extends ClusterRole_Rule> = (
13
+ scope: ClusterRole_Scope
14
+ ) => Iterable<Rules>
15
+ class ClusterRole_Scope {
16
+ Resources<const R extends Kind[]>(...resources: R) {
17
+ return {
18
+ verbs(...verbs: Verbs[]) {
19
+ return {
20
+ resources: resources,
21
+ verbs: verbs
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ export interface ClusterRole_Props<Rules extends ClusterRole_Rule = ClusterRole_Rule> {
28
+ rules: ClusterRole_RuleProducer<Rules>
29
+ }
30
+
31
+ export class ClusterRole<Name extends string = string> extends Resource_Top<
32
+ Name,
33
+ ClusterRole_Props
34
+ > {
35
+ get kind() {
36
+ return rbac.v1.ClusterRole._
37
+ }
38
+ constructor(name: Name, props: ClusterRole_Props) {
39
+ super(name, props)
40
+ }
41
+
42
+ private _fromObject(rule: ClusterRole_Rule) {
43
+ return {
44
+ apiGroups: rule.resources.map(x => x.parent.parent.name),
45
+ resources: rule.resources.map(r => r.plural),
46
+ verbs: rule.verbs
47
+ }
48
+ }
49
+ protected body(): CDK.KubeClusterRoleProps {
50
+ const rules = seq(this.props.rules(new ClusterRole_Scope()))
51
+ .map(rule => {
52
+ return this._fromObject(rule)
53
+ })
54
+ .toArray()
55
+ .pull()
56
+ return {
57
+ rules: rules
58
+ }
59
+ }
60
+ }
61
+
62
+ export type Verbs =
63
+ | "get"
64
+ | "list"
65
+ | "watch"
66
+ | "create"
67
+ | "update"
68
+ | "patch"
69
+ | "delete"
70
+ | "deletecollection"
71
+
72
+ export type ApiGroup =
73
+ | "namespaces"
74
+ | "pods"
75
+ | "services"
76
+ | "endpoints"
77
+ | "persistentvolumeclaims"
78
+ | "events"
79
+ | "configmaps"
80
+ | "secrets"
81
+ | "httproutes"
82
+ | "gateways"
83
+ | "jobs"
84
+ | "cronjobs"
85
+ | "deployments"
86
+ | "replicasets"
87
+ | "statefulsets"
88
+ | "daemonsets"
89
+ | "podtemplates"
90
+ | "clusterroles"
91
+ | "roles"
92
+ | "rolebindings"
93
+ | "clusterrolebindings"
94
+ | "serviceaccounts"
95
+ | "nodes"
96
+ | "persistentvolumes"
97
+ | "storageclasses"
98
+ | "volumeattachments"
99
+ | "persistentvolumeclaims"
@@ -0,0 +1,25 @@
1
+ import { Resource_Top } from "@k8ts/instruments"
2
+ import { CDK } from "@k8ts/sample-interfaces"
3
+ import { v1 } from "../../kinds/default"
4
+ export interface ServiceAccount_Props {
5
+ automountToken?: boolean
6
+ imagePullSecrets?: string[]
7
+ }
8
+
9
+ export class ServiceAccount<Name extends string = string> extends Resource_Top<
10
+ Name,
11
+ ServiceAccount_Props
12
+ > {
13
+ get kind() {
14
+ return v1.ServiceAccount._
15
+ }
16
+ protected body(): CDK.KubeServiceAccountProps {
17
+ const self = this
18
+ return {
19
+ automountServiceAccountToken: self.props.automountToken,
20
+ imagePullSecrets: self.props.imagePullSecrets?.map(name => ({
21
+ name
22
+ }))
23
+ }
24
+ }
25
+ }
@@ -1,3 +1 @@
1
- import * as Secret from "./secret"
2
- type Secret = Secret.Secret
3
- export { Secret }
1
+ export * from "./secret"
@@ -1,26 +1,20 @@
1
- import { manifest, relations } from "@k8ts/instruments"
2
- import { CDK } from "../../_imports"
3
- import { k8ts } from "../../kind-map"
4
- import { api } from "../../kinds"
5
- import { equiv_cdk8s } from "../../node/equiv-cdk8s"
6
- import { ManifestResource } from "../../node/manifest-resource"
1
+ import { Resource_Top } from "@k8ts/instruments"
2
+ import { v1 } from "../../kinds/default"
7
3
 
8
- export interface Props {
4
+ export interface Secret_Props {
9
5
  data?: Record<string, string>
10
6
  stringData?: Record<string, string>
11
7
  }
12
8
 
13
- @k8ts(api.v1_.Secret)
14
- @equiv_cdk8s(CDK.KubeSecret)
15
- @relations("none")
16
- @manifest({
17
- body(self): CDK.KubeSecretProps {
9
+ export class Secret<Name extends string = string> extends Resource_Top<Name, Secret_Props> {
10
+ get kind() {
11
+ return v1.Secret._
12
+ }
13
+
14
+ protected body() {
18
15
  return {
19
- data: self.props.data,
20
- stringData: self.props.stringData
16
+ data: this.props.data,
17
+ stringData: this.props.stringData
21
18
  }
22
19
  }
23
- })
24
- export class Secret extends ManifestResource<Props> {
25
- readonly kind = api.v1_.Secret
26
20
  }
@@ -1,32 +1,28 @@
1
- import { CDK } from "../../_imports"
2
- import type { Service } from "./service"
1
+ import { CDK } from "@k8ts/sample-interfaces"
2
+ import type { Service, Service_Ref } from "./service"
3
3
 
4
- export type Port<Port extends string> = Port.Port<Port>
5
- export namespace Port {
6
- export interface Props<Port extends string> {
7
- service: Service.AbsService<Port>
8
- name: Port
9
- }
10
-
11
- export class Port<Port extends string> {
12
- constructor(readonly props: Props<Port>) {}
4
+ export interface Service_Port_Props<Port extends string> {
5
+ service: Service_Ref<Port>
6
+ name: Port
7
+ }
13
8
 
14
- get service() {
15
- return this.props.service as Service<Port>
16
- }
9
+ export class Port<Port extends string> {
10
+ constructor(readonly props: Service_Port_Props<Port>) {}
11
+ get service() {
12
+ return this.props.service as any as Service<Port>
13
+ }
17
14
 
18
- get port() {
19
- return this.props
20
- }
15
+ get port() {
16
+ return this.props
17
+ }
21
18
 
22
- // TODO: Does this need to resolve ports?
23
- ref(): CDK.HttpRouteSpecRulesBackendRefs {
24
- return {
25
- kind: "Service",
26
- namespace: this.service.meta.tryGet("namespace"),
27
- name: this.service.meta.get("name"),
28
- port: this.service.ports.get(this.props.name).frontend
29
- }
19
+ // TODO: Does this need to resolve ports?
20
+ ref(): CDK.HttpRouteSpecRulesBackendRefs {
21
+ return {
22
+ kind: "Service",
23
+ namespace: this.service.meta.tryGet("namespace"),
24
+ name: this.service.meta.get("name"),
25
+ port: this.service.ports.get(this.props.name).frontend
30
26
  }
31
27
  }
32
28
  }
@@ -1,107 +1,99 @@
1
- import {
2
- manifest,
3
- Refable,
4
- relations,
5
- ResourceEntity,
6
- type InputPortMapping
7
- } from "@k8ts/instruments"
8
- import { Map } from "immutable"
9
- import { CDK } from "../../_imports"
1
+ import { Resource_Core_Ref, Resource_Top, type InputPortMapping } from "@k8ts/instruments"
2
+ import { CDK } from "@k8ts/sample-interfaces"
3
+ import { seq } from "doddle"
10
4
  import { MakeError } from "../../error"
11
- import { k8ts } from "../../kind-map"
12
- import { api } from "../../kinds"
13
- import { ManifestResource } from "../../node"
14
- import { equiv_cdk8s } from "../../node/equiv-cdk8s"
15
- import { Deployment } from "../deployment"
5
+ import { v1 } from "../../kinds/index"
6
+ import { Deployment, type Deployment_Ref } from "../deployment"
16
7
  import { toServicePorts } from "../utils/adapters"
17
- import { Frontend as Frontend_ } from "./frontend"
18
- import { Port as Port_ } from "./service-port"
19
- export type Service<ExposedPorts extends string = string> = Service.Service<ExposedPorts>
20
- export namespace Service {
21
- export import Port = Port_
22
- export import Frontend = Frontend_
23
- export interface Props<DeployPorts extends string, ExposedPorts extends DeployPorts> {
24
- $ports: InputPortMapping<ExposedPorts>
25
- $backend: Deployment.AbsDeployment<DeployPorts>
26
- $frontend: Frontend
8
+ import { Port } from "./service-port"
9
+ export interface Service_Frontend_ClusterIp {
10
+ type: "ClusterIP"
11
+ }
12
+
13
+ export interface Service_Frontend_LoadBalancer {
14
+ type: "LoadBalancer"
15
+ loadBalancerIP?: string
16
+ }
17
+ export type Service_Frontend = Service_Frontend_ClusterIp | Service_Frontend_LoadBalancer
18
+ export interface Service_Props<DeployPorts extends string, ExposedPorts extends DeployPorts> {
19
+ $ports: InputPortMapping<ExposedPorts>
20
+ $backend: Deployment_Ref<DeployPorts>
21
+ $frontend: Service_Frontend
22
+ }
23
+ export interface Service_Ref<ExposedPorts extends string> extends Resource_Core_Ref<v1.Service._> {
24
+ __PORTS__: ExposedPorts
25
+ }
26
+
27
+ export class Service<
28
+ Name extends string = string,
29
+ ExposedPorts extends string = string
30
+ > extends Resource_Top<Name, Service_Props<string, ExposedPorts>> {
31
+ __PORTS__!: ExposedPorts
32
+ get kind() {
33
+ return v1.Service._
34
+ }
35
+
36
+ private get backend() {
37
+ return this.props.$backend as Deployment<ExposedPorts>
27
38
  }
28
- export type AbsService<ExposedPorts extends string> = Refable<api.v1_.Service> & {
29
- __PORTS__: ExposedPorts
39
+ // TODO: Ports force evaluates the backend which is not needed
40
+ get ports() {
41
+ const srcPorts = this.backend.ports.pull()
42
+ const knownPorts = seq(Object.entries(this.props.$ports))
43
+ .filter(([, v]) => v !== undefined)
44
+ .map(([k]) => k)
45
+ .toArray()
46
+ .pull() as ExposedPorts[]
47
+ const svcPorts = srcPorts.pick(...knownPorts).map(this.props.$ports as any)
48
+ return svcPorts
30
49
  }
31
- @k8ts(api.v1_.Service)
32
- @relations({
33
- needs: self => ({
34
- backend: self.backend as ResourceEntity
35
- })
36
- })
37
- @equiv_cdk8s(CDK.KubeService)
38
- @manifest({
39
- body(self): CDK.KubeServiceProps {
40
- const svcPorts = self.ports
41
- return {
42
- spec: {
43
- ...self.props.$frontend,
44
- ports: toServicePorts(svcPorts).toArray(),
45
- selector: {
46
- app: self.props.$backend.name
47
- },
48
- ...(self.props.$frontend.type === "LoadBalancer"
49
- ? {
50
- allocateLoadBalancerNodePorts: false,
51
- externalTrafficPolicy: "Local"
52
- }
53
- : {})
54
- }
55
- }
56
- }
57
- })
58
- export class Service<ExposedPorts extends string = string> extends ManifestResource<
59
- Props<string, ExposedPorts>
60
- > {
61
- __PORTS__!: ExposedPorts
62
- kind = api.v1_.Service
63
50
 
64
- private get backend() {
65
- return this.props.$backend as Deployment<ExposedPorts>
66
- }
67
- // TODO: Ports force evaluates the backend which is not needed
68
- get ports() {
69
- const srcPorts = this.backend.ports.pull()
70
- const knownPorts = Map(this.props.$ports)
71
- .filter(x => x !== undefined)
72
- .keySeq()
73
- .toArray() as ExposedPorts[]
74
- const svcPorts = srcPorts.pick(...knownPorts).map(this.props.$ports as any)
75
- return svcPorts
51
+ protected override __needs__() {
52
+ return {
53
+ backend: this.backend
76
54
  }
55
+ }
77
56
 
78
- portRef(name: ExposedPorts) {
79
- return new Port.Port({
80
- service: this,
81
- name: name
82
- })
83
- }
57
+ portRef(name: ExposedPorts) {
58
+ return new Port({
59
+ service: this,
60
+ name: name
61
+ })
62
+ }
84
63
 
85
- get hostname() {
86
- return `${this.name}.${this.namespace}.svc.cluster.local`
64
+ get hostname() {
65
+ return `${this.name}.${this.namespace}.svc.cluster.local`
66
+ }
67
+
68
+ private _getPortoPart(port: ExposedPorts, protocol: "http" | "https") {
69
+ const portNumber = this.props.$ports[port]
70
+ if (portNumber === 80 && protocol === "http") {
71
+ return ""
72
+ }
73
+ if (portNumber === 443 && protocol === "https") {
74
+ return ""
75
+ }
76
+ if (portNumber === undefined) {
77
+ throw new MakeError(`Port ${port} is not defined in service ${this.name}`)
87
78
  }
79
+ return `:${portNumber}`
80
+ }
88
81
 
89
- private _getPortoPart(port: ExposedPorts, protocol: "http" | "https") {
90
- const portNumber = this.props.$ports[port]
91
- if (portNumber === 80 && protocol === "http") {
92
- return ""
93
- }
94
- if (portNumber === 443 && protocol === "https") {
95
- return ""
96
- }
97
- if (portNumber === undefined) {
98
- throw new MakeError(`Port ${port} is not defined in service ${this.name}`)
82
+ protected body(): CDK.KubeServiceProps {
83
+ const self = this
84
+ const svcPorts = self.ports
85
+ return {
86
+ spec: {
87
+ ...self.props.$frontend,
88
+ ports: toServicePorts(svcPorts),
89
+ selector: {
90
+ app: self.props.$backend.name
91
+ }
99
92
  }
100
- return `:${portNumber}`
101
93
  }
94
+ }
102
95
 
103
- address(protocol: "http" | "https", port: ExposedPorts) {
104
- return `${protocol}://${this.hostname}${this._getPortoPart(port, protocol)}`
105
- }
96
+ address(protocol: "http" | "https", port: ExposedPorts) {
97
+ return `${protocol}://${this.hostname}${this._getPortoPart(port, protocol)}`
106
98
  }
107
99
  }
@@ -1,5 +1,6 @@
1
1
  import type { PortMap, PortMapEntry, PortSet, PortSetEntry } from "@k8ts/instruments"
2
- import { CDK } from "../../_imports"
2
+ import { CDK } from "@k8ts/sample-interfaces"
3
+ import { seq } from "doddle"
3
4
  export function toContainerPort(entry: PortSetEntry): CDK.ContainerPort {
4
5
  return {
5
6
  containerPort: entry.port,
@@ -11,7 +12,7 @@ export function toContainerPort(entry: PortSetEntry): CDK.ContainerPort {
11
12
  }
12
13
 
13
14
  export function toContainerPorts(ports: PortSet<any>) {
14
- return ports.values.map(toContainerPort)
15
+ return seq(ports.values.values()).map(toContainerPort).toArray().pull()
15
16
  }
16
17
 
17
18
  export function toServicePort(entry: PortMapEntry): CDK.ServicePort {
@@ -24,5 +25,5 @@ export function toServicePort(entry: PortMapEntry): CDK.ServicePort {
24
25
  }
25
26
 
26
27
  export function toServicePorts(ports: PortMap<any>) {
27
- return ports.values.map(toServicePort).toList()
28
+ return seq(ports.values.values()).map(toServicePort).toArray().pull()
28
29
  }
@@ -1,9 +1,8 @@
1
- import { Origin } from "@k8ts/instruments"
1
+ import { OriginNode, type Origin_Exporter } from "@k8ts/instruments"
2
2
  import { Meta } from "@k8ts/metadata"
3
3
  import { aseq } from "doddle"
4
4
  import Emittery from "emittery"
5
5
  import { cloneDeep } from "lodash"
6
- import type { File } from "../../file"
7
6
  import { ResourceLoader, type ResourceLoaderEventsTable } from "./loader"
8
7
  import { Manifester, NodeManifest, type ManifesterEventsTable } from "./manifester"
9
8
  import { ManifestSaver, type ManifestSaverEventsTable } from "./saver"
@@ -15,7 +14,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
15
14
  super()
16
15
  }
17
16
 
18
- async assemble(inFiles: Iterable<File.Input>) {
17
+ async assemble(inFiles: Iterable<Origin_Exporter>) {
19
18
  const _emit = async <Name extends keyof AssemblerEventsTable>(
20
19
  event: Name,
21
20
  payload: AssemblerEventsTable[Name]
@@ -36,11 +35,12 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
36
35
  })
37
36
  saver.onAny(_emit)
38
37
  const reports = aseq(inFiles)
38
+ .map(x => x.node)
39
39
  .before(async () => {
40
40
  await _emit("stage", { stage: "gathering" })
41
41
  })
42
42
  .each(async file => {
43
- await _emit("received-file", { file: file.__node__ })
43
+ await _emit("received-file", { file: file })
44
44
  })
45
45
  .after(async () => {
46
46
  await _emit("stage", { stage: "loading" })
@@ -50,7 +50,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
50
50
  const loaded = await loader.load(file)
51
51
  loaded.forEach(r => r.meta!.add(this._options.meta))
52
52
  return {
53
- file: file.__entity__,
53
+ file: file,
54
54
  resources: loaded.filter(x => !x.isExternal)
55
55
  }
56
56
  })
@@ -67,7 +67,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
67
67
  .pull()
68
68
 
69
69
  return {
70
- file: file.node,
70
+ file: file,
71
71
  resources: manifests
72
72
  } satisfies FileNodes
73
73
  })
@@ -131,14 +131,14 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
131
131
  }
132
132
  }
133
133
  export interface FileNodes {
134
- file: Origin
134
+ file: OriginNode
135
135
  resources: NodeManifest[]
136
136
  }
137
137
  export interface Artifact extends NodeManifest {
138
138
  yaml: string
139
139
  }
140
140
  export interface AssembledFile {
141
- file: Origin
141
+ file: OriginNode
142
142
  path: string
143
143
  filename: string
144
144
  bytes: number
@@ -170,7 +170,7 @@ export interface AssemblerEventsTable
170
170
  ManifesterEventsTable,
171
171
  ResourceLoaderEventsTable,
172
172
  ValidatorEventsTable {
173
- ["received-file"]: { file: Origin }
173
+ ["received-file"]: { file: OriginNode }
174
174
  ["stage"]: { stage: AssemblyStage }
175
175
  }
176
176
  export type AnyAssemblerEvent = {
@@ -1,25 +1,13 @@
1
- import { ForwardRef, ResourceNode } from "@k8ts/instruments"
2
- import { seq } from "doddle"
1
+ import { OriginNode, Resource_Node, type Node, type Resource_Top } from "@k8ts/instruments"
3
2
  import Emittery from "emittery"
4
- import { Map, Set } from "immutable"
5
3
  import { MakeError } from "../../error"
6
- import type { File } from "../../file"
7
- import { k8ts_namespace } from "./meta"
8
4
  export class ResourceLoader extends Emittery<ResourceLoaderEventsTable> {
9
5
  constructor(private readonly _options: ResourceLoaderOptions) {
10
6
  super()
11
7
  }
12
8
 
13
- private _attachSourceAnnotations(loadEvent: ResourceLoadedEvent) {
14
- const { resource } = loadEvent
15
-
16
- resource.meta!.add(k8ts_namespace, {
17
- "^declared-in": `(${resource.origin.root.name}) ${resource.origin.name}`
18
- })
19
- }
20
-
21
- private _checkNames(resources: Set<ResourceNode>) {
22
- let names = Map<string, ResourceNode>()
9
+ private _checkNames(resources: Resource_Node[]) {
10
+ let names = new Map<string, Resource_Node>()
23
11
  const nameRegexp = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/
24
12
  for (const resource of resources) {
25
13
  const name = [resource.kind.name, resource.namespace, resource.name]
@@ -36,16 +24,19 @@ export class ResourceLoader extends Emittery<ResourceLoaderEventsTable> {
36
24
  `Invalid resource name ${resource.name}. Must match ${nameRegexp}`
37
25
  )
38
26
  }
39
- names = names.set(name, resource)
27
+ names.set(name, resource)
40
28
  }
41
29
  }
42
30
 
43
- async load(input: File.Input) {
31
+ async load(input: OriginNode) {
44
32
  // TODO: Handle ORIGINS that are referenced but not passed to the runner
45
- const parentOrigin = input.__node__
33
+ let resources = [] as Resource_Node[]
46
34
 
47
- const addResource = async (res: ResourceNode) => {
48
- if (resources.has(res)) {
35
+ const addResource = async (res: Node) => {
36
+ if (!(res instanceof Resource_Node)) {
37
+ throw new Error(`Expected ResourceNode, got ${res.constructor.name}`)
38
+ }
39
+ if (resources.some(r => r.equals(res))) {
49
40
  return
50
41
  }
51
42
  if (!res.isRoot) {
@@ -53,48 +44,41 @@ export class ResourceLoader extends Emittery<ResourceLoaderEventsTable> {
53
44
  }
54
45
  const origin = res.origin
55
46
 
56
- if (!origin.isChildOf(parentOrigin)) {
47
+ if (!origin.isChildOf(input)) {
57
48
  return
58
49
  }
59
50
  const event = {
60
- isExported: res.meta!.has(`#${k8ts_namespace}is-exported`),
51
+ isExported: res.meta!.has(`#k8ts.org/is-exported`),
61
52
  resource: res
62
53
  } as const
63
54
 
64
- this._attachSourceAnnotations(event)
65
55
  await this.emit("load", event)
66
- resources = resources.add(res)
56
+ origin.entity["__emit__"]("resource/loaded", {
57
+ origin: origin.entity,
58
+ resource: res.entity as Resource_Top
59
+ })
60
+ resources.push(res)
67
61
  }
68
62
 
69
- let resources = Set<ResourceNode>()
70
- // We execute the main FILE iterable to load all the resources attached to the origin
71
- seq(input).toArray().pull()
72
- for (let res of input.__node__.resources) {
73
- if (ForwardRef.is(res)) {
74
- throw new MakeError(`Resource ${res} is a forward reference`)
75
- }
76
- await addResource(res)
63
+ for (const resource of input.resources) {
64
+ await addResource(resource.node)
77
65
  }
66
+
78
67
  // Some resources might appear as dependencies to sub-resources that
79
68
  // haven't loaded. We can acquire them by getting all the needed resources
80
- for (const resource of resources.toArray()) {
69
+ for (const resource of resources) {
81
70
  for (const relation of resource.recursiveRelationsSubtree) {
82
71
  await addResource(relation.needed)
83
72
  }
84
73
  }
85
74
 
86
- // The lazy sections might have attached more resources to the origin
87
- for (const resource of parentOrigin.resources) {
88
- await addResource(resource)
89
- }
90
-
91
75
  this._checkNames(resources)
92
- return resources.toArray()
76
+ return [...resources]
93
77
  }
94
78
  }
95
79
  export interface ResourceLoadedEvent {
96
80
  isExported: boolean
97
- resource: ResourceNode
81
+ resource: Resource_Node
98
82
  }
99
83
 
100
84
  export interface ResourceLoaderEventsTable {