@k8ts/instruments 0.11.3 → 0.12.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 (739) hide show
  1. package/dist/core/graph/entity.d.ts +9 -22
  2. package/dist/core/graph/entity.d.ts.map +1 -1
  3. package/dist/core/graph/entity.js +11 -19
  4. package/dist/core/graph/entity.js.map +1 -1
  5. package/dist/core/graph/error.d.ts +7 -0
  6. package/dist/core/graph/error.d.ts.map +1 -0
  7. package/dist/core/graph/error.js +12 -0
  8. package/dist/core/graph/error.js.map +1 -0
  9. package/dist/core/graph/index.d.ts +2 -2
  10. package/dist/core/graph/index.d.ts.map +1 -1
  11. package/dist/core/graph/index.js +4 -4
  12. package/dist/core/graph/index.js.map +1 -1
  13. package/dist/core/graph/origin/dummy.d.ts +13 -0
  14. package/dist/core/graph/origin/dummy.d.ts.map +1 -0
  15. package/dist/core/graph/origin/dummy.js +25 -0
  16. package/dist/core/graph/origin/dummy.js.map +1 -0
  17. package/dist/core/graph/origin/events.d.ts +19 -26
  18. package/dist/core/graph/origin/events.d.ts.map +1 -1
  19. package/dist/core/graph/origin/events.js +1 -30
  20. package/dist/core/graph/origin/events.js.map +1 -1
  21. package/dist/core/graph/origin/exporter.d.ts +10 -10
  22. package/dist/core/graph/origin/exporter.d.ts.map +1 -1
  23. package/dist/core/graph/origin/exporter.js +20 -18
  24. package/dist/core/graph/origin/exporter.js.map +1 -1
  25. package/dist/core/graph/origin/index.d.ts +5 -3
  26. package/dist/core/graph/origin/index.d.ts.map +1 -1
  27. package/dist/core/graph/origin/index.js +5 -3
  28. package/dist/core/graph/origin/index.js.map +1 -1
  29. package/dist/core/graph/origin/kind-map/index.d.ts +16 -17
  30. package/dist/core/graph/origin/kind-map/index.d.ts.map +1 -1
  31. package/dist/core/graph/origin/kind-map/index.js +35 -34
  32. package/dist/core/graph/origin/kind-map/index.js.map +1 -1
  33. package/dist/core/graph/origin/origin.d.ts +37 -0
  34. package/dist/core/graph/origin/origin.d.ts.map +1 -0
  35. package/dist/core/graph/origin/{entity.js → origin.js} +67 -58
  36. package/dist/core/graph/origin/origin.js.map +1 -0
  37. package/dist/core/graph/origin/props.d.ts +9 -0
  38. package/dist/core/graph/origin/props.d.ts.map +1 -0
  39. package/dist/core/graph/origin/props.js.map +1 -0
  40. package/dist/core/graph/origin/template.d.ts +15 -0
  41. package/dist/core/graph/origin/template.d.ts.map +1 -0
  42. package/dist/core/graph/origin/template.js +35 -0
  43. package/dist/core/graph/origin/template.js.map +1 -0
  44. package/dist/core/graph/origin/tracker.d.ts +7 -9
  45. package/dist/core/graph/origin/tracker.d.ts.map +1 -1
  46. package/dist/core/graph/origin/tracker.js +4 -15
  47. package/dist/core/graph/origin/tracker.js.map +1 -1
  48. package/dist/core/graph/origin/vertex.d.ts +21 -0
  49. package/dist/core/graph/origin/vertex.d.ts.map +1 -0
  50. package/dist/core/graph/origin/{node.js → vertex.js} +27 -17
  51. package/dist/core/graph/origin/vertex.js.map +1 -0
  52. package/dist/core/graph/relation.d.ts +4 -4
  53. package/dist/core/graph/relation.d.ts.map +1 -1
  54. package/dist/core/graph/relation.js +4 -5
  55. package/dist/core/graph/relation.js.map +1 -1
  56. package/dist/core/graph/resource/creation-options.d.ts +22 -0
  57. package/dist/core/graph/resource/creation-options.d.ts.map +1 -0
  58. package/dist/core/graph/resource/creation-options.js +3 -0
  59. package/dist/core/graph/resource/creation-options.js.map +1 -0
  60. package/dist/core/graph/resource/dummy/base.d.ts +9 -0
  61. package/dist/core/graph/resource/dummy/base.d.ts.map +1 -0
  62. package/dist/core/graph/resource/dummy/base.js +15 -0
  63. package/dist/core/graph/resource/dummy/base.js.map +1 -0
  64. package/dist/core/graph/resource/dummy/index.d.ts.map +1 -0
  65. package/dist/core/graph/resource/dummy/index.js.map +1 -0
  66. package/dist/core/graph/resource/forward/error.d.ts +5 -0
  67. package/dist/core/graph/resource/forward/error.d.ts.map +1 -0
  68. package/dist/core/graph/resource/forward/error.js +12 -0
  69. package/dist/core/graph/resource/forward/error.js.map +1 -0
  70. package/dist/core/graph/resource/forward/exports.d.ts +46 -0
  71. package/dist/core/graph/resource/forward/exports.d.ts.map +1 -0
  72. package/dist/core/graph/resource/{reference/fw-ref-exports.js → forward/exports.js} +32 -31
  73. package/dist/core/graph/resource/forward/exports.js.map +1 -0
  74. package/dist/core/graph/resource/forward/index.d.ts +3 -0
  75. package/dist/core/graph/resource/forward/index.d.ts.map +1 -0
  76. package/dist/core/graph/resource/forward/index.js +8 -0
  77. package/dist/core/graph/resource/forward/index.js.map +1 -0
  78. package/dist/core/graph/resource/{reference/fw-ref.d.ts → forward/ref.d.ts} +20 -20
  79. package/dist/core/graph/resource/forward/ref.d.ts.map +1 -0
  80. package/dist/core/graph/resource/{reference/fw-ref.js → forward/ref.js} +56 -27
  81. package/dist/core/graph/resource/forward/ref.js.map +1 -0
  82. package/dist/core/graph/resource/gvk/0-base.d.ts +17 -0
  83. package/dist/core/graph/resource/gvk/0-base.d.ts.map +1 -0
  84. package/dist/core/graph/resource/gvk/0-base.js +35 -0
  85. package/dist/core/graph/resource/gvk/0-base.js.map +1 -0
  86. package/dist/core/graph/resource/gvk/1-group.d.ts +12 -0
  87. package/dist/core/graph/resource/gvk/1-group.d.ts.map +1 -0
  88. package/dist/core/graph/resource/gvk/1-group.js +26 -0
  89. package/dist/core/graph/resource/gvk/1-group.js.map +1 -0
  90. package/dist/core/graph/resource/gvk/2=version.d.ts +11 -0
  91. package/dist/core/graph/resource/gvk/2=version.d.ts.map +1 -0
  92. package/dist/core/graph/resource/gvk/2=version.js +23 -0
  93. package/dist/core/graph/resource/gvk/2=version.js.map +1 -0
  94. package/dist/core/graph/resource/gvk/3-gvk.d.ts +16 -0
  95. package/dist/core/graph/resource/gvk/3-gvk.d.ts.map +1 -0
  96. package/dist/core/graph/resource/gvk/3-gvk.js +50 -0
  97. package/dist/core/graph/resource/gvk/3-gvk.js.map +1 -0
  98. package/dist/core/graph/resource/gvk/4-subkind.d.ts +8 -0
  99. package/dist/core/graph/resource/gvk/4-subkind.d.ts.map +1 -0
  100. package/dist/core/graph/resource/gvk/4-subkind.js +19 -0
  101. package/dist/core/graph/resource/gvk/4-subkind.js.map +1 -0
  102. package/dist/core/graph/resource/gvk/index.d.ts +6 -0
  103. package/dist/core/graph/resource/gvk/index.d.ts.map +1 -0
  104. package/dist/core/graph/resource/gvk/index.js +22 -0
  105. package/dist/core/graph/resource/gvk/index.js.map +1 -0
  106. package/dist/core/graph/resource/gvk/strings.d.ts +4 -0
  107. package/dist/core/graph/resource/gvk/strings.d.ts.map +1 -0
  108. package/dist/core/graph/resource/{reference/refable.js → gvk/strings.js} +1 -1
  109. package/dist/core/graph/resource/gvk/strings.js.map +1 -0
  110. package/dist/core/graph/resource/{ref-key/ref-key.d.ts → ident/ident.d.ts} +25 -36
  111. package/dist/core/graph/resource/ident/ident.d.ts.map +1 -0
  112. package/dist/core/graph/resource/{ref-key/ref-key.js → ident/ident.js} +38 -49
  113. package/dist/core/graph/resource/ident/ident.js.map +1 -0
  114. package/dist/core/graph/resource/ident/index.d.ts +2 -0
  115. package/dist/core/graph/resource/ident/index.d.ts.map +1 -0
  116. package/dist/core/graph/resource/{ref-key → ident}/index.js +1 -1
  117. package/dist/core/graph/resource/ident/index.js.map +1 -0
  118. package/dist/core/graph/resource/ident/parsing.d.ts +16 -0
  119. package/dist/core/graph/resource/ident/parsing.d.ts.map +1 -0
  120. package/dist/core/graph/resource/ident/parsing.js +36 -0
  121. package/dist/core/graph/resource/ident/parsing.js.map +1 -0
  122. package/dist/core/graph/resource/index.d.ts +10 -9
  123. package/dist/core/graph/resource/index.d.ts.map +1 -1
  124. package/dist/core/graph/resource/index.js +10 -9
  125. package/dist/core/graph/resource/index.js.map +1 -1
  126. package/dist/core/graph/resource/k8s-resource.d.ts +18 -0
  127. package/dist/core/graph/resource/k8s-resource.d.ts.map +1 -0
  128. package/dist/core/graph/resource/k8s-resource.js +85 -0
  129. package/dist/core/graph/resource/k8s-resource.js.map +1 -0
  130. package/dist/core/graph/resource/part.d.ts +12 -0
  131. package/dist/core/graph/resource/part.d.ts.map +1 -0
  132. package/dist/core/graph/resource/part.js +20 -0
  133. package/dist/core/graph/resource/part.js.map +1 -0
  134. package/dist/core/graph/resource/props.d.ts +9 -0
  135. package/dist/core/graph/resource/props.d.ts.map +1 -0
  136. package/dist/core/graph/resource/{field.js → props.js} +1 -1
  137. package/dist/core/graph/resource/props.js.map +1 -0
  138. package/dist/core/graph/resource/ref.d.ts +25 -0
  139. package/dist/core/graph/resource/ref.d.ts.map +1 -0
  140. package/dist/core/graph/resource/ref.js +3 -0
  141. package/dist/core/graph/resource/ref.js.map +1 -0
  142. package/dist/core/graph/resource/resource.d.ts +23 -0
  143. package/dist/core/graph/resource/resource.d.ts.map +1 -0
  144. package/dist/core/graph/resource/{entity.js → resource.js} +40 -37
  145. package/dist/core/graph/resource/resource.js.map +1 -0
  146. package/dist/core/graph/resource/vertex.d.ts +31 -0
  147. package/dist/core/graph/resource/vertex.d.ts.map +1 -0
  148. package/dist/core/graph/resource/{node.js → vertex.js} +36 -34
  149. package/dist/core/graph/resource/vertex.js.map +1 -0
  150. package/dist/core/graph/{node.d.ts → vertex.d.ts} +12 -14
  151. package/dist/core/graph/vertex.d.ts.map +1 -0
  152. package/dist/core/graph/{node.js → vertex.js} +18 -23
  153. package/dist/core/graph/vertex.js.map +1 -0
  154. package/dist/core/manifest/index.d.ts +7 -17
  155. package/dist/core/manifest/index.d.ts.map +1 -1
  156. package/dist/core/manifest/index.js +1 -1
  157. package/dist/core/manifest/index.js.map +1 -1
  158. package/dist/core/tracing/embedder.d.ts +4 -0
  159. package/dist/core/tracing/embedder.d.ts.map +1 -0
  160. package/dist/core/tracing/{traced.js → embedder.js} +2 -2
  161. package/dist/core/tracing/embedder.js.map +1 -0
  162. package/dist/core/tracing/git.d.ts +7 -7
  163. package/dist/core/tracing/git.d.ts.map +1 -1
  164. package/dist/core/tracing/git.js +7 -7
  165. package/dist/core/tracing/git.js.map +1 -1
  166. package/dist/core/tracing/index.d.ts +2 -2
  167. package/dist/core/tracing/index.d.ts.map +1 -1
  168. package/dist/core/tracing/index.js +2 -2
  169. package/dist/core/tracing/index.js.map +1 -1
  170. package/dist/core/tracing/source.d.ts +11 -0
  171. package/dist/core/tracing/source.d.ts.map +1 -0
  172. package/dist/core/tracing/{trace.js → source.js} +6 -6
  173. package/dist/core/tracing/source.js.map +1 -0
  174. package/dist/expressions/data-sources/env-var.d.ts +5 -25
  175. package/dist/expressions/data-sources/env-var.d.ts.map +1 -1
  176. package/dist/expressions/data-sources/env-var.js +58 -34
  177. package/dist/expressions/data-sources/env-var.js.map +1 -1
  178. package/dist/expressions/data-sources/error.d.ts +8 -0
  179. package/dist/expressions/data-sources/error.d.ts.map +1 -0
  180. package/dist/expressions/data-sources/error.js +13 -0
  181. package/dist/expressions/data-sources/error.js.map +1 -0
  182. package/dist/expressions/data-sources/index.d.ts +1 -1
  183. package/dist/expressions/data-sources/index.d.ts.map +1 -1
  184. package/dist/expressions/data-sources/index.js +1 -1
  185. package/dist/expressions/data-sources/index.js.map +1 -1
  186. package/dist/expressions/data-sources/interface.d.ts +9 -26
  187. package/dist/expressions/data-sources/interface.d.ts.map +1 -1
  188. package/dist/expressions/data-sources/interface.js +4 -0
  189. package/dist/expressions/data-sources/interface.js.map +1 -1
  190. package/dist/expressions/data-sources/js-object.d.ts +7 -0
  191. package/dist/expressions/data-sources/js-object.d.ts.map +1 -0
  192. package/dist/expressions/data-sources/js-object.js +98 -0
  193. package/dist/expressions/data-sources/js-object.js.map +1 -0
  194. package/dist/expressions/data-sources/local-file.d.ts +7 -28
  195. package/dist/expressions/data-sources/local-file.d.ts.map +1 -1
  196. package/dist/expressions/data-sources/local-file.js +139 -73
  197. package/dist/expressions/data-sources/local-file.js.map +1 -1
  198. package/dist/expressions/network/error.d.ts +7 -0
  199. package/dist/expressions/network/error.d.ts.map +1 -0
  200. package/dist/expressions/network/error.js +12 -0
  201. package/dist/expressions/network/error.js.map +1 -0
  202. package/dist/expressions/network/index.d.ts +5 -1
  203. package/dist/expressions/network/index.d.ts.map +1 -1
  204. package/dist/expressions/network/index.js +5 -1
  205. package/dist/expressions/network/index.js.map +1 -1
  206. package/dist/expressions/network/ip/ip4.d.ts +8 -0
  207. package/dist/expressions/network/ip/ip4.d.ts.map +1 -0
  208. package/dist/expressions/network/ip/ip4.js +14 -0
  209. package/dist/expressions/network/ip/ip4.js.map +1 -0
  210. package/dist/expressions/network/ip/subnet4.d.ts +8 -0
  211. package/dist/expressions/network/ip/subnet4.d.ts.map +1 -0
  212. package/dist/expressions/network/ip/{index.js → subnet4.js} +2 -11
  213. package/dist/expressions/network/ip/subnet4.js.map +1 -0
  214. package/dist/expressions/network/ports/entry.d.ts +5 -0
  215. package/dist/expressions/network/ports/entry.d.ts.map +1 -0
  216. package/dist/expressions/network/ports/entry.js +36 -0
  217. package/dist/expressions/network/ports/entry.js.map +1 -0
  218. package/dist/expressions/network/ports/{map.d.ts → mapping.d.ts} +15 -17
  219. package/dist/expressions/network/ports/mapping.d.ts.map +1 -0
  220. package/dist/expressions/network/ports/mapping.js +95 -0
  221. package/dist/expressions/network/ports/mapping.js.map +1 -0
  222. package/dist/expressions/network/ports/parser.d.ts +3 -0
  223. package/dist/expressions/network/ports/parser.d.ts.map +1 -0
  224. package/dist/expressions/network/ports/{tools/parse.js → parser.js} +2 -2
  225. package/dist/expressions/network/ports/parser.js.map +1 -0
  226. package/dist/expressions/network/ports/provider.d.ts +72 -0
  227. package/dist/expressions/network/ports/provider.d.ts.map +1 -0
  228. package/dist/expressions/network/ports/provider.js +143 -0
  229. package/dist/expressions/network/ports/provider.js.map +1 -0
  230. package/dist/expressions/network/ports/types.d.ts +22 -9
  231. package/dist/expressions/network/ports/types.d.ts.map +1 -1
  232. package/dist/expressions/quantities/error.d.ts +7 -0
  233. package/dist/expressions/quantities/error.d.ts.map +1 -0
  234. package/dist/expressions/quantities/error.js +12 -0
  235. package/dist/expressions/quantities/error.js.map +1 -0
  236. package/dist/expressions/quantities/index.d.ts +10 -2
  237. package/dist/expressions/quantities/index.d.ts.map +1 -1
  238. package/dist/expressions/quantities/index.js +10 -2
  239. package/dist/expressions/quantities/index.js.map +1 -1
  240. package/dist/expressions/quantities/reqs/objects.d.ts +18 -0
  241. package/dist/expressions/quantities/reqs/objects.d.ts.map +1 -0
  242. package/dist/expressions/quantities/reqs/objects.js +81 -0
  243. package/dist/expressions/quantities/reqs/objects.js.map +1 -0
  244. package/dist/expressions/quantities/reqs/parser.d.ts +4 -0
  245. package/dist/expressions/quantities/reqs/parser.d.ts.map +1 -0
  246. package/dist/expressions/quantities/{reqlem → reqs}/parser.js +2 -2
  247. package/dist/expressions/quantities/reqs/parser.js.map +1 -0
  248. package/dist/expressions/quantities/reqs/types.d.ts +28 -0
  249. package/dist/expressions/quantities/reqs/types.d.ts.map +1 -0
  250. package/dist/expressions/quantities/reqs/types.js.map +1 -0
  251. package/dist/expressions/quantities/reqs/values.d.ts +17 -0
  252. package/dist/expressions/quantities/reqs/values.d.ts.map +1 -0
  253. package/dist/expressions/quantities/reqs/values.js +42 -0
  254. package/dist/expressions/quantities/reqs/values.js.map +1 -0
  255. package/dist/expressions/quantities/units/{units.d.ts → built-in.d.ts} +6 -8
  256. package/dist/expressions/quantities/units/built-in.d.ts.map +1 -0
  257. package/dist/expressions/quantities/units/built-in.js +44 -0
  258. package/dist/expressions/quantities/units/built-in.js.map +1 -0
  259. package/dist/expressions/quantities/units/dimension.d.ts +20 -0
  260. package/dist/expressions/quantities/units/dimension.d.ts.map +1 -0
  261. package/dist/expressions/quantities/units/dimension.js +33 -0
  262. package/dist/expressions/quantities/units/dimension.js.map +1 -0
  263. package/dist/expressions/quantities/units/parser.d.ts +6 -0
  264. package/dist/expressions/quantities/units/parser.d.ts.map +1 -0
  265. package/dist/expressions/quantities/units/parser.js +11 -0
  266. package/dist/expressions/quantities/units/parser.js.map +1 -0
  267. package/dist/expressions/quantities/units/types.d.ts +2 -0
  268. package/dist/expressions/quantities/units/types.d.ts.map +1 -0
  269. package/dist/expressions/quantities/units/types.js +3 -0
  270. package/dist/expressions/quantities/units/types.js.map +1 -0
  271. package/dist/expressions/quantities/units/validator.d.ts +4 -0
  272. package/dist/expressions/quantities/units/validator.d.ts.map +1 -0
  273. package/dist/expressions/quantities/units/validator.js +16 -0
  274. package/dist/expressions/quantities/units/validator.js.map +1 -0
  275. package/dist/expressions/quantities/units/value.d.ts +10 -0
  276. package/dist/expressions/quantities/units/value.d.ts.map +1 -0
  277. package/dist/expressions/quantities/units/value.js +27 -0
  278. package/dist/expressions/quantities/units/value.js.map +1 -0
  279. package/dist/expressions/quantities/util.d.ts +11 -0
  280. package/dist/expressions/quantities/util.d.ts.map +1 -0
  281. package/dist/expressions/quantities/util.js +28 -0
  282. package/dist/expressions/quantities/util.js.map +1 -0
  283. package/dist/expressions/workload/cmd/cli-term.d.ts +7 -7
  284. package/dist/expressions/workload/cmd/cli-term.d.ts.map +1 -1
  285. package/dist/expressions/workload/cmd/cli-term.js +16 -15
  286. package/dist/expressions/workload/cmd/cli-term.js.map +1 -1
  287. package/dist/expressions/workload/cmd/cmd-line.d.ts +15 -0
  288. package/dist/expressions/workload/cmd/cmd-line.d.ts.map +1 -0
  289. package/dist/expressions/workload/cmd/{cli-command.js → cmd-line.js} +23 -27
  290. package/dist/expressions/workload/cmd/cmd-line.js.map +1 -0
  291. package/dist/expressions/workload/cmd/types.d.ts +4 -4
  292. package/dist/expressions/workload/cmd/types.d.ts.map +1 -1
  293. package/dist/expressions/workload/cronjob/parse-type.d.ts +30 -0
  294. package/dist/expressions/workload/cronjob/parse-type.d.ts.map +1 -0
  295. package/dist/{core/graph/resource/external/features.js → expressions/workload/cronjob/parse-type.js} +1 -1
  296. package/dist/expressions/workload/cronjob/parse-type.js.map +1 -0
  297. package/dist/expressions/workload/cronjob/shorthand.d.ts +13 -0
  298. package/dist/expressions/workload/cronjob/shorthand.d.ts.map +1 -0
  299. package/dist/expressions/workload/cronjob/shorthand.js +39 -0
  300. package/dist/expressions/workload/cronjob/shorthand.js.map +1 -0
  301. package/dist/expressions/workload/cronjob/stanza.d.ts +15 -0
  302. package/dist/expressions/workload/cronjob/stanza.d.ts.map +1 -0
  303. package/dist/expressions/workload/cronjob/{index.js → stanza.js} +29 -62
  304. package/dist/expressions/workload/cronjob/stanza.js.map +1 -0
  305. package/dist/expressions/workload/cronjob/types.d.ts +3 -1
  306. package/dist/expressions/workload/cronjob/types.d.ts.map +1 -1
  307. package/dist/expressions/workload/error.d.ts +7 -0
  308. package/dist/expressions/workload/error.d.ts.map +1 -0
  309. package/dist/expressions/workload/error.js +12 -0
  310. package/dist/expressions/workload/error.js.map +1 -0
  311. package/dist/expressions/workload/image/1-host.d.ts +11 -0
  312. package/dist/expressions/workload/image/1-host.d.ts.map +1 -0
  313. package/dist/expressions/workload/image/1-host.js +27 -0
  314. package/dist/expressions/workload/image/1-host.js.map +1 -0
  315. package/dist/expressions/workload/image/2-namespace.d.ts +11 -0
  316. package/dist/expressions/workload/image/2-namespace.d.ts.map +1 -0
  317. package/dist/expressions/workload/image/2-namespace.js +90 -0
  318. package/dist/expressions/workload/image/2-namespace.js.map +1 -0
  319. package/dist/expressions/workload/image/3-repository.d.ts +11 -0
  320. package/dist/expressions/workload/image/3-repository.d.ts.map +1 -0
  321. package/dist/expressions/workload/image/3-repository.js +38 -0
  322. package/dist/expressions/workload/image/3-repository.js.map +1 -0
  323. package/dist/expressions/workload/image/4-image.d.ts +22 -0
  324. package/dist/expressions/workload/image/4-image.d.ts.map +1 -0
  325. package/dist/expressions/workload/image/4-image.js +43 -0
  326. package/dist/expressions/workload/image/4-image.js.map +1 -0
  327. package/dist/expressions/workload/image/index.d.ts +4 -1
  328. package/dist/expressions/workload/image/index.d.ts.map +1 -1
  329. package/dist/expressions/workload/image/index.js +3 -6
  330. package/dist/expressions/workload/image/index.js.map +1 -1
  331. package/dist/expressions/workload/image/types.d.ts +2 -0
  332. package/dist/expressions/workload/image/types.d.ts.map +1 -0
  333. package/dist/expressions/workload/image/types.js +3 -0
  334. package/dist/expressions/workload/image/types.js.map +1 -0
  335. package/dist/expressions/workload/image/util.d.ts +2 -0
  336. package/dist/expressions/workload/image/util.d.ts.map +1 -0
  337. package/dist/expressions/workload/image/util.js +3 -0
  338. package/dist/expressions/workload/image/util.js.map +1 -0
  339. package/dist/expressions/workload/index.d.ts +9 -3
  340. package/dist/expressions/workload/index.d.ts.map +1 -1
  341. package/dist/expressions/workload/index.js +9 -3
  342. package/dist/expressions/workload/index.js.map +1 -1
  343. package/dist/expressions/workload/owner/group.d.ts +10 -0
  344. package/dist/expressions/workload/owner/group.d.ts.map +1 -0
  345. package/dist/expressions/workload/owner/group.js +27 -0
  346. package/dist/expressions/workload/owner/group.js.map +1 -0
  347. package/dist/expressions/workload/owner/index.d.ts +4 -0
  348. package/dist/expressions/workload/owner/index.d.ts.map +1 -0
  349. package/dist/expressions/workload/owner/index.js +8 -0
  350. package/dist/expressions/workload/owner/index.js.map +1 -0
  351. package/dist/expressions/workload/owner/ownership.d.ts +9 -0
  352. package/dist/expressions/workload/owner/ownership.d.ts.map +1 -0
  353. package/dist/expressions/workload/owner/ownership.js +22 -0
  354. package/dist/expressions/workload/owner/ownership.js.map +1 -0
  355. package/dist/expressions/workload/owner/user.d.ts +18 -0
  356. package/dist/expressions/workload/owner/user.d.ts.map +1 -0
  357. package/dist/expressions/workload/owner/user.js +32 -0
  358. package/dist/expressions/workload/owner/user.js.map +1 -0
  359. package/dist/utils/index.d.ts +3 -3
  360. package/dist/utils/index.d.ts.map +1 -1
  361. package/dist/utils/index.js +3 -3
  362. package/dist/utils/index.js.map +1 -1
  363. package/dist/utils/{displayers → mixin/display}/displayers.d.ts +9 -9
  364. package/dist/utils/mixin/display/displayers.d.ts.map +1 -0
  365. package/dist/utils/{displayers → mixin/display}/displayers.js +13 -7
  366. package/dist/utils/mixin/display/displayers.js.map +1 -0
  367. package/dist/utils/mixin/display/index.d.ts.map +1 -0
  368. package/dist/utils/mixin/display/index.js.map +1 -0
  369. package/dist/utils/mixin/embedder/base.d.ts.map +1 -0
  370. package/dist/utils/{embedder → mixin/embedder}/base.js +3 -2
  371. package/dist/utils/mixin/embedder/base.js.map +1 -0
  372. package/dist/utils/mixin/embedder/index.d.ts +2 -0
  373. package/dist/utils/mixin/embedder/index.d.ts.map +1 -0
  374. package/dist/{core/graph/resource/external → utils/mixin/embedder}/index.js +0 -2
  375. package/dist/utils/mixin/embedder/index.js.map +1 -0
  376. package/dist/utils/mixin/error.d.ts +5 -0
  377. package/dist/utils/mixin/error.d.ts.map +1 -0
  378. package/dist/{expressions/network/ports → utils/mixin}/error.js +4 -5
  379. package/dist/utils/mixin/error.js.map +1 -0
  380. package/dist/utils/mixin/index.d.ts +3 -0
  381. package/dist/utils/mixin/index.d.ts.map +1 -0
  382. package/dist/{expressions/quantities/reqlem → utils/mixin}/index.js +2 -2
  383. package/dist/utils/mixin/index.js.map +1 -0
  384. package/dist/utils/phrase-renderer/index.d.ts +4 -0
  385. package/dist/utils/phrase-renderer/index.d.ts.map +1 -0
  386. package/dist/utils/phrase-renderer/index.js +43 -0
  387. package/dist/utils/phrase-renderer/index.js.map +1 -0
  388. package/dist/utils/{_string/pretty-objects.d.ts → phrase-renderer/phrases.d.ts} +1 -1
  389. package/dist/utils/phrase-renderer/phrases.d.ts.map +1 -0
  390. package/dist/utils/{_string/pretty-objects.js → phrase-renderer/phrases.js} +7 -7
  391. package/dist/utils/phrase-renderer/phrases.js.map +1 -0
  392. package/dist/utils/{_string/post-processor.d.ts → phrase-renderer/renderer.d.ts} +2 -2
  393. package/dist/utils/phrase-renderer/renderer.d.ts.map +1 -0
  394. package/dist/utils/{_string/post-processor.js → phrase-renderer/renderer.js} +4 -4
  395. package/dist/utils/phrase-renderer/renderer.js.map +1 -0
  396. package/dist/utils/types.d.ts +2 -0
  397. package/dist/utils/types.d.ts.map +1 -0
  398. package/dist/utils/types.js +3 -0
  399. package/dist/utils/types.js.map +1 -0
  400. package/dist/utils/util.d.ts +6 -0
  401. package/dist/utils/util.d.ts.map +1 -0
  402. package/dist/utils/util.js +23 -0
  403. package/dist/utils/util.js.map +1 -0
  404. package/package.json +6 -4
  405. package/src/core/graph/entity.ts +22 -38
  406. package/src/core/graph/error.ts +7 -0
  407. package/src/core/graph/index.ts +2 -2
  408. package/src/core/graph/origin/dummy.ts +23 -0
  409. package/src/core/graph/origin/events.ts +21 -60
  410. package/src/core/graph/origin/exporter.ts +26 -24
  411. package/src/core/graph/origin/index.ts +5 -3
  412. package/src/core/graph/origin/kind-map/index.ts +57 -57
  413. package/src/core/graph/origin/origin.ts +144 -0
  414. package/src/core/graph/origin/props.ts +11 -0
  415. package/src/core/graph/origin/template.ts +36 -0
  416. package/src/core/graph/origin/tracker.ts +15 -26
  417. package/src/core/graph/origin/{node.ts → vertex.ts} +25 -22
  418. package/src/core/graph/relation.ts +8 -10
  419. package/src/core/graph/resource/creation-options.ts +27 -0
  420. package/src/core/graph/resource/dummy/base.ts +13 -0
  421. package/src/core/graph/resource/forward/error.ts +7 -0
  422. package/src/core/graph/resource/{reference/fw-ref-exports.ts → forward/exports.ts} +48 -43
  423. package/src/core/graph/resource/forward/index.ts +2 -0
  424. package/src/core/graph/resource/{reference/fw-ref.ts → forward/ref.ts} +76 -40
  425. package/src/core/graph/resource/gvk/0-base.ts +37 -0
  426. package/src/core/graph/resource/gvk/1-group.ts +23 -0
  427. package/src/core/graph/resource/gvk/2=version.ts +21 -0
  428. package/src/core/graph/resource/gvk/3-gvk.ts +56 -0
  429. package/src/core/graph/resource/gvk/4-subkind.ts +19 -0
  430. package/src/core/graph/resource/gvk/index.ts +5 -0
  431. package/src/core/graph/resource/gvk/strings.ts +3 -0
  432. package/src/core/graph/resource/ident/ident.ts +140 -0
  433. package/src/core/graph/resource/ident/index.ts +1 -0
  434. package/src/core/graph/resource/ident/parsing.ts +36 -0
  435. package/src/core/graph/resource/index.ts +10 -9
  436. package/src/core/graph/resource/k8s-resource.ts +98 -0
  437. package/src/core/graph/resource/part.ts +26 -0
  438. package/src/core/graph/resource/props.ts +11 -0
  439. package/src/core/graph/resource/ref.ts +33 -0
  440. package/src/core/graph/resource/resource.ts +78 -0
  441. package/src/core/graph/resource/vertex.ts +134 -0
  442. package/src/core/graph/{node.ts → vertex.ts} +35 -38
  443. package/src/core/manifest/index.ts +7 -18
  444. package/src/core/tracing/embedder.ts +4 -0
  445. package/src/core/tracing/git.ts +9 -9
  446. package/src/core/tracing/index.ts +2 -2
  447. package/src/core/tracing/{trace.ts → source.ts} +6 -6
  448. package/src/expressions/data-sources/env-var.ts +15 -33
  449. package/src/expressions/data-sources/error.ts +8 -0
  450. package/src/expressions/data-sources/index.ts +1 -1
  451. package/src/expressions/data-sources/interface.ts +14 -28
  452. package/src/expressions/data-sources/js-object.ts +39 -0
  453. package/src/expressions/data-sources/local-file.ts +55 -61
  454. package/src/expressions/network/error.ts +7 -0
  455. package/src/expressions/network/index.ts +5 -1
  456. package/src/expressions/network/ip/ip4.ts +14 -0
  457. package/src/expressions/network/ip/subnet4.ts +9 -0
  458. package/src/expressions/network/ports/entry.ts +44 -0
  459. package/src/expressions/network/ports/mapping.ts +108 -0
  460. package/src/expressions/network/ports/{tools/parse.ts → parser.ts} +4 -4
  461. package/src/expressions/network/ports/provider.ts +193 -0
  462. package/src/expressions/network/ports/types.ts +23 -9
  463. package/src/expressions/quantities/error.ts +8 -0
  464. package/src/expressions/quantities/index.ts +11 -2
  465. package/src/expressions/quantities/reqs/objects.ts +85 -0
  466. package/src/expressions/quantities/{reqlem → reqs}/parser.ts +5 -5
  467. package/src/expressions/quantities/reqs/types.ts +35 -0
  468. package/src/expressions/quantities/reqs/values.ts +47 -0
  469. package/src/expressions/quantities/units/{units.ts → built-in.ts} +14 -7
  470. package/src/expressions/quantities/units/dimension.ts +47 -0
  471. package/src/expressions/quantities/units/parser.ts +11 -0
  472. package/src/expressions/quantities/units/types.ts +1 -0
  473. package/src/expressions/quantities/units/validator.ts +17 -0
  474. package/src/expressions/quantities/units/value.ts +22 -0
  475. package/src/expressions/quantities/util.ts +37 -0
  476. package/src/expressions/workload/cmd/cli-term.ts +13 -12
  477. package/src/expressions/workload/cmd/cmd-line.ts +103 -0
  478. package/src/expressions/workload/cmd/types.ts +4 -4
  479. package/src/expressions/workload/cronjob/parse-type.ts +58 -0
  480. package/src/expressions/workload/cronjob/shorthand.ts +37 -0
  481. package/src/expressions/workload/cronjob/stanza.ts +91 -0
  482. package/src/expressions/workload/cronjob/types.ts +3 -0
  483. package/src/expressions/workload/error.ts +7 -0
  484. package/src/expressions/workload/image/1-host.ts +31 -0
  485. package/src/expressions/workload/image/2-namespace.ts +49 -0
  486. package/src/expressions/workload/image/3-repository.ts +50 -0
  487. package/src/expressions/workload/image/4-image.ts +95 -0
  488. package/src/expressions/workload/image/index.ts +4 -1
  489. package/src/expressions/workload/image/types.ts +5 -0
  490. package/src/expressions/workload/index.ts +9 -3
  491. package/src/expressions/workload/owner/group.ts +30 -0
  492. package/src/expressions/workload/owner/index.ts +3 -0
  493. package/src/expressions/workload/owner/ownership.ts +26 -0
  494. package/src/expressions/workload/owner/user.ts +34 -0
  495. package/src/utils/index.ts +3 -3
  496. package/src/utils/{displayers → mixin/display}/displayers.ts +26 -20
  497. package/src/utils/{embedder → mixin/embedder}/base.ts +4 -2
  498. package/src/utils/mixin/embedder/index.ts +1 -0
  499. package/src/{expressions/network/ports → utils/mixin}/error.ts +2 -3
  500. package/src/utils/mixin/index.ts +2 -0
  501. package/src/utils/{_string/pretty-print.ts → phrase-renderer/index.ts} +5 -3
  502. package/src/utils/{_string/pretty-objects.ts → phrase-renderer/phrases.ts} +6 -6
  503. package/src/utils/{_string/post-processor.ts → phrase-renderer/renderer.ts} +1 -1
  504. package/src/utils/types.ts +1 -0
  505. package/src/utils/util.ts +24 -0
  506. package/dist/core/graph/node.d.ts.map +0 -1
  507. package/dist/core/graph/node.js.map +0 -1
  508. package/dist/core/graph/origin/entity.d.ts +0 -37
  509. package/dist/core/graph/origin/entity.d.ts.map +0 -1
  510. package/dist/core/graph/origin/entity.js.map +0 -1
  511. package/dist/core/graph/origin/external.d.ts +0 -14
  512. package/dist/core/graph/origin/external.d.ts.map +0 -1
  513. package/dist/core/graph/origin/external.js +0 -22
  514. package/dist/core/graph/origin/external.js.map +0 -1
  515. package/dist/core/graph/origin/node.d.ts +0 -23
  516. package/dist/core/graph/origin/node.d.ts.map +0 -1
  517. package/dist/core/graph/origin/node.js.map +0 -1
  518. package/dist/core/graph/origin/origin-events.d.ts +0 -41
  519. package/dist/core/graph/origin/origin-events.d.ts.map +0 -1
  520. package/dist/core/graph/origin/origin-events.js +0 -46
  521. package/dist/core/graph/origin/origin-events.js.map +0 -1
  522. package/dist/core/graph/resource/api-kind/index.d.ts +0 -54
  523. package/dist/core/graph/resource/api-kind/index.d.ts.map +0 -1
  524. package/dist/core/graph/resource/api-kind/index.js +0 -239
  525. package/dist/core/graph/resource/api-kind/index.js.map +0 -1
  526. package/dist/core/graph/resource/api-kind/pluralize.d.ts +0 -24
  527. package/dist/core/graph/resource/api-kind/pluralize.d.ts.map +0 -1
  528. package/dist/core/graph/resource/api-kind/pluralize.js +0 -16
  529. package/dist/core/graph/resource/api-kind/pluralize.js.map +0 -1
  530. package/dist/core/graph/resource/child.d.ts +0 -11
  531. package/dist/core/graph/resource/child.d.ts.map +0 -1
  532. package/dist/core/graph/resource/child.js +0 -22
  533. package/dist/core/graph/resource/child.js.map +0 -1
  534. package/dist/core/graph/resource/entity.d.ts +0 -22
  535. package/dist/core/graph/resource/entity.d.ts.map +0 -1
  536. package/dist/core/graph/resource/entity.js.map +0 -1
  537. package/dist/core/graph/resource/external/base.d.ts +0 -14
  538. package/dist/core/graph/resource/external/base.d.ts.map +0 -1
  539. package/dist/core/graph/resource/external/base.js +0 -37
  540. package/dist/core/graph/resource/external/base.js.map +0 -1
  541. package/dist/core/graph/resource/external/features.d.ts +0 -2
  542. package/dist/core/graph/resource/external/features.d.ts.map +0 -1
  543. package/dist/core/graph/resource/external/features.js.map +0 -1
  544. package/dist/core/graph/resource/external/index.d.ts +0 -4
  545. package/dist/core/graph/resource/external/index.d.ts.map +0 -1
  546. package/dist/core/graph/resource/external/index.js.map +0 -1
  547. package/dist/core/graph/resource/external/props.d.ts +0 -15
  548. package/dist/core/graph/resource/external/props.d.ts.map +0 -1
  549. package/dist/core/graph/resource/external/props.js.map +0 -1
  550. package/dist/core/graph/resource/field.d.ts +0 -2
  551. package/dist/core/graph/resource/field.d.ts.map +0 -1
  552. package/dist/core/graph/resource/field.js.map +0 -1
  553. package/dist/core/graph/resource/node.d.ts +0 -30
  554. package/dist/core/graph/resource/node.d.ts.map +0 -1
  555. package/dist/core/graph/resource/node.js.map +0 -1
  556. package/dist/core/graph/resource/ref-key/index.d.ts +0 -2
  557. package/dist/core/graph/resource/ref-key/index.d.ts.map +0 -1
  558. package/dist/core/graph/resource/ref-key/index.js.map +0 -1
  559. package/dist/core/graph/resource/ref-key/ref-key.d.ts.map +0 -1
  560. package/dist/core/graph/resource/ref-key/ref-key.js.map +0 -1
  561. package/dist/core/graph/resource/reference/error.d.ts +0 -5
  562. package/dist/core/graph/resource/reference/error.d.ts.map +0 -1
  563. package/dist/core/graph/resource/reference/error.js +0 -11
  564. package/dist/core/graph/resource/reference/error.js.map +0 -1
  565. package/dist/core/graph/resource/reference/fw-ref-exports.d.ts +0 -46
  566. package/dist/core/graph/resource/reference/fw-ref-exports.d.ts.map +0 -1
  567. package/dist/core/graph/resource/reference/fw-ref-exports.js.map +0 -1
  568. package/dist/core/graph/resource/reference/fw-ref.d.ts.map +0 -1
  569. package/dist/core/graph/resource/reference/fw-ref.js.map +0 -1
  570. package/dist/core/graph/resource/reference/index.d.ts +0 -4
  571. package/dist/core/graph/resource/reference/index.d.ts.map +0 -1
  572. package/dist/core/graph/resource/reference/index.js +0 -8
  573. package/dist/core/graph/resource/reference/index.js.map +0 -1
  574. package/dist/core/graph/resource/reference/refable.d.ts +0 -21
  575. package/dist/core/graph/resource/reference/refable.d.ts.map +0 -1
  576. package/dist/core/graph/resource/reference/refable.js.map +0 -1
  577. package/dist/core/graph/resource/top.d.ts +0 -21
  578. package/dist/core/graph/resource/top.d.ts.map +0 -1
  579. package/dist/core/graph/resource/top.js +0 -73
  580. package/dist/core/graph/resource/top.js.map +0 -1
  581. package/dist/core/tracing/trace.d.ts +0 -11
  582. package/dist/core/tracing/trace.d.ts.map +0 -1
  583. package/dist/core/tracing/trace.js.map +0 -1
  584. package/dist/core/tracing/traced.d.ts +0 -4
  585. package/dist/core/tracing/traced.d.ts.map +0 -1
  586. package/dist/core/tracing/traced.js.map +0 -1
  587. package/dist/expressions/data-sources/base.d.ts +0 -30
  588. package/dist/expressions/data-sources/base.d.ts.map +0 -1
  589. package/dist/expressions/data-sources/base.js +0 -37
  590. package/dist/expressions/data-sources/base.js.map +0 -1
  591. package/dist/expressions/network/ip/index.d.ts +0 -14
  592. package/dist/expressions/network/ip/index.d.ts.map +0 -1
  593. package/dist/expressions/network/ip/index.js.map +0 -1
  594. package/dist/expressions/network/ports/error.d.ts +0 -5
  595. package/dist/expressions/network/ports/error.d.ts.map +0 -1
  596. package/dist/expressions/network/ports/error.js.map +0 -1
  597. package/dist/expressions/network/ports/index.d.ts +0 -7
  598. package/dist/expressions/network/ports/index.d.ts.map +0 -1
  599. package/dist/expressions/network/ports/index.js +0 -13
  600. package/dist/expressions/network/ports/index.js.map +0 -1
  601. package/dist/expressions/network/ports/map.d.ts.map +0 -1
  602. package/dist/expressions/network/ports/map.js +0 -68
  603. package/dist/expressions/network/ports/map.js.map +0 -1
  604. package/dist/expressions/network/ports/set.d.ts +0 -93
  605. package/dist/expressions/network/ports/set.d.ts.map +0 -1
  606. package/dist/expressions/network/ports/set.js +0 -125
  607. package/dist/expressions/network/ports/set.js.map +0 -1
  608. package/dist/expressions/network/ports/tools/entry.d.ts +0 -6
  609. package/dist/expressions/network/ports/tools/entry.d.ts.map +0 -1
  610. package/dist/expressions/network/ports/tools/entry.js +0 -39
  611. package/dist/expressions/network/ports/tools/entry.js.map +0 -1
  612. package/dist/expressions/network/ports/tools/parse.d.ts +0 -3
  613. package/dist/expressions/network/ports/tools/parse.d.ts.map +0 -1
  614. package/dist/expressions/network/ports/tools/parse.js.map +0 -1
  615. package/dist/expressions/quantities/reqlem/index.d.ts +0 -3
  616. package/dist/expressions/quantities/reqlem/index.d.ts.map +0 -1
  617. package/dist/expressions/quantities/reqlem/index.js.map +0 -1
  618. package/dist/expressions/quantities/reqlem/objects.d.ts +0 -24
  619. package/dist/expressions/quantities/reqlem/objects.d.ts.map +0 -1
  620. package/dist/expressions/quantities/reqlem/objects.js +0 -103
  621. package/dist/expressions/quantities/reqlem/objects.js.map +0 -1
  622. package/dist/expressions/quantities/reqlem/parser.d.ts +0 -4
  623. package/dist/expressions/quantities/reqlem/parser.d.ts.map +0 -1
  624. package/dist/expressions/quantities/reqlem/parser.js.map +0 -1
  625. package/dist/expressions/quantities/reqlem/types.d.ts +0 -23
  626. package/dist/expressions/quantities/reqlem/types.d.ts.map +0 -1
  627. package/dist/expressions/quantities/reqlem/types.js.map +0 -1
  628. package/dist/expressions/quantities/units/index.d.ts +0 -3
  629. package/dist/expressions/quantities/units/index.d.ts.map +0 -1
  630. package/dist/expressions/quantities/units/index.js +0 -22
  631. package/dist/expressions/quantities/units/index.js.map +0 -1
  632. package/dist/expressions/quantities/units/unit-parser.d.ts +0 -29
  633. package/dist/expressions/quantities/units/unit-parser.d.ts.map +0 -1
  634. package/dist/expressions/quantities/units/unit-parser.js +0 -85
  635. package/dist/expressions/quantities/units/unit-parser.js.map +0 -1
  636. package/dist/expressions/quantities/units/units.d.ts.map +0 -1
  637. package/dist/expressions/quantities/units/units.js +0 -35
  638. package/dist/expressions/quantities/units/units.js.map +0 -1
  639. package/dist/expressions/workload/_user/index.d.ts +0 -16
  640. package/dist/expressions/workload/_user/index.d.ts.map +0 -1
  641. package/dist/expressions/workload/_user/index.js +0 -33
  642. package/dist/expressions/workload/_user/index.js.map +0 -1
  643. package/dist/expressions/workload/cmd/cli-command.d.ts +0 -22
  644. package/dist/expressions/workload/cmd/cli-command.d.ts.map +0 -1
  645. package/dist/expressions/workload/cmd/cli-command.js.map +0 -1
  646. package/dist/expressions/workload/cmd/index.d.ts +0 -3
  647. package/dist/expressions/workload/cmd/index.d.ts.map +0 -1
  648. package/dist/expressions/workload/cmd/index.js +0 -7
  649. package/dist/expressions/workload/cmd/index.js.map +0 -1
  650. package/dist/expressions/workload/cronjob/index.d.ts +0 -57
  651. package/dist/expressions/workload/cronjob/index.d.ts.map +0 -1
  652. package/dist/expressions/workload/cronjob/index.js.map +0 -1
  653. package/dist/expressions/workload/image/family.d.ts +0 -30
  654. package/dist/expressions/workload/image/family.d.ts.map +0 -1
  655. package/dist/expressions/workload/image/family.js +0 -180
  656. package/dist/expressions/workload/image/family.js.map +0 -1
  657. package/dist/utils/_string/index.d.ts +0 -6
  658. package/dist/utils/_string/index.d.ts.map +0 -1
  659. package/dist/utils/_string/index.js +0 -22
  660. package/dist/utils/_string/index.js.map +0 -1
  661. package/dist/utils/_string/markers.d.ts +0 -3
  662. package/dist/utils/_string/markers.d.ts.map +0 -1
  663. package/dist/utils/_string/markers.js +0 -64
  664. package/dist/utils/_string/markers.js.map +0 -1
  665. package/dist/utils/_string/post-processor.d.ts.map +0 -1
  666. package/dist/utils/_string/post-processor.js.map +0 -1
  667. package/dist/utils/_string/pretty-objects.d.ts.map +0 -1
  668. package/dist/utils/_string/pretty-objects.js.map +0 -1
  669. package/dist/utils/_string/pretty-print.d.ts +0 -2
  670. package/dist/utils/_string/pretty-print.d.ts.map +0 -1
  671. package/dist/utils/_string/pretty-print.js +0 -27
  672. package/dist/utils/_string/pretty-print.js.map +0 -1
  673. package/dist/utils/_string/super-script.d.ts +0 -2
  674. package/dist/utils/_string/super-script.d.ts.map +0 -1
  675. package/dist/utils/_string/super-script.js +0 -20
  676. package/dist/utils/_string/super-script.js.map +0 -1
  677. package/dist/utils/displayers/displayers.d.ts.map +0 -1
  678. package/dist/utils/displayers/displayers.js.map +0 -1
  679. package/dist/utils/displayers/index.d.ts.map +0 -1
  680. package/dist/utils/displayers/index.js.map +0 -1
  681. package/dist/utils/embedder/base.d.ts.map +0 -1
  682. package/dist/utils/embedder/base.js.map +0 -1
  683. package/dist/utils/embedder/index.d.ts.map +0 -1
  684. package/dist/utils/embedder/index.js.map +0 -1
  685. package/dist/utils/tagged-template.d.ts +0 -2
  686. package/dist/utils/tagged-template.d.ts.map +0 -1
  687. package/dist/utils/tagged-template.js +0 -10
  688. package/dist/utils/tagged-template.js.map +0 -1
  689. package/src/core/graph/entities.md +0 -1
  690. package/src/core/graph/origin/entity.ts +0 -138
  691. package/src/core/graph/origin/external.ts +0 -21
  692. package/src/core/graph/origin/origin-events.ts +0 -86
  693. package/src/core/graph/readme.md +0 -161
  694. package/src/core/graph/resource/api-kind/index.ts +0 -171
  695. package/src/core/graph/resource/api-kind/pluralize.ts +0 -40
  696. package/src/core/graph/resource/child.ts +0 -23
  697. package/src/core/graph/resource/entity.ts +0 -73
  698. package/src/core/graph/resource/external/base.ts +0 -39
  699. package/src/core/graph/resource/external/index.ts +0 -3
  700. package/src/core/graph/resource/external/props.ts +0 -16
  701. package/src/core/graph/resource/field.ts +0 -0
  702. package/src/core/graph/resource/node.ts +0 -132
  703. package/src/core/graph/resource/ref-key/index.ts +0 -1
  704. package/src/core/graph/resource/ref-key/ref-key.ts +0 -156
  705. package/src/core/graph/resource/reference/error.ts +0 -7
  706. package/src/core/graph/resource/reference/index.ts +0 -3
  707. package/src/core/graph/resource/reference/refable.ts +0 -26
  708. package/src/core/graph/resource/top.ts +0 -82
  709. package/src/core/tracing/traced.ts +0 -4
  710. package/src/expressions/data-sources/base.ts +0 -38
  711. package/src/expressions/network/ip/index.ts +0 -17
  712. package/src/expressions/network/ports/index.ts +0 -8
  713. package/src/expressions/network/ports/map.ts +0 -88
  714. package/src/expressions/network/ports/set.ts +0 -178
  715. package/src/expressions/network/ports/tools/entry.ts +0 -41
  716. package/src/expressions/quantities/reqlem/index.ts +0 -2
  717. package/src/expressions/quantities/reqlem/objects.ts +0 -107
  718. package/src/expressions/quantities/reqlem/types.ts +0 -28
  719. package/src/expressions/quantities/units/index.ts +0 -2
  720. package/src/expressions/quantities/units/unit-parser.ts +0 -92
  721. package/src/expressions/workload/_user/index.ts +0 -24
  722. package/src/expressions/workload/cmd/cli-command.ts +0 -99
  723. package/src/expressions/workload/cmd/index.ts +0 -2
  724. package/src/expressions/workload/cronjob/index.ts +0 -166
  725. package/src/expressions/workload/image/family.ts +0 -87
  726. package/src/utils/_string/index.ts +0 -5
  727. package/src/utils/_string/markers.ts +0 -66
  728. package/src/utils/_string/super-script.ts +0 -17
  729. package/src/utils/tagged-template.ts +0 -6
  730. /package/dist/core/graph/{resource/external → origin}/props.js +0 -0
  731. /package/dist/{utils/embedder → core/graph/resource/dummy}/index.d.ts +0 -0
  732. /package/dist/{utils/embedder → core/graph/resource/dummy}/index.js +0 -0
  733. /package/dist/expressions/quantities/{reqlem → reqs}/types.js +0 -0
  734. /package/dist/utils/{displayers → mixin/display}/index.d.ts +0 -0
  735. /package/dist/utils/{displayers → mixin/display}/index.js +0 -0
  736. /package/dist/utils/{embedder → mixin/embedder}/base.d.ts +0 -0
  737. /package/src/{utils/embedder → core/graph/resource/dummy}/index.ts +0 -0
  738. /package/src/{core/graph/resource/external/features.ts → expressions/workload/image/util.ts} +0 -0
  739. /package/src/utils/{displayers → mixin/display}/index.ts +0 -0
@@ -0,0 +1,14 @@
1
+ import { Address4 } from "ip-address"
2
+
3
+ // TODO: Validate IP and Subnet strings more thoroughly
4
+ // TODO: Consider wrapping an existing library or just exposing that library directly
5
+ // TODO: Add IPv6 support
6
+
7
+ export type Ip4_Input_String = `${number}.${number}.${number}.${number}`
8
+
9
+ export class Ip4<Text extends Ip4_Input_String = Ip4_Input_String> {
10
+ readonly _addr4: Address4 | undefined
11
+ constructor(readonly text: Text) {
12
+ this._addr4 = new Address4(text)
13
+ }
14
+ }
@@ -0,0 +1,9 @@
1
+ import { Address4 } from "ip-address"
2
+
3
+ export type Subnet4_Input_String = `${number}.${number}.${number}.${number}/${number}`
4
+ export class Subnet4<Text extends Subnet4_Input_String = Subnet4_Input_String> {
5
+ readonly _addr4: Address4 | undefined
6
+ constructor(readonly text: Text) {
7
+ this._addr4 = new Address4(text)
8
+ }
9
+ }
@@ -0,0 +1,44 @@
1
+ import { mapValues } from "lodash"
2
+ import { Ip4 } from "../ip/ip4"
3
+ import { parsePortSpec } from "./parser"
4
+ import { PortExports } from "./provider"
5
+ import type {
6
+ Port_Full,
7
+ Port_Input,
8
+ Port_Input_Object,
9
+ Port_Protocol,
10
+ PortExports_Input
11
+ } from "./types"
12
+
13
+ function portSetEntry(name: string, value: Port_Input_Object): Port_Full {
14
+ const proto = value.protocol ? (value.protocol.toUpperCase() as Port_Protocol) : "TCP"
15
+ return {
16
+ name,
17
+ port: value.port,
18
+ protocol: proto,
19
+ hostIp: value.hostIp ? new Ip4(value.hostIp) : undefined,
20
+ hostPort: value.hostPort
21
+ }
22
+ }
23
+
24
+ export function parsePortInput(name: string, input: Port_Input): Port_Full {
25
+ if (typeof input === "string") {
26
+ return portSetEntry(name, parsePortSpec(name, input))
27
+ }
28
+ if (typeof input === "number") {
29
+ return portSetEntry(name, {
30
+ port: input,
31
+ protocol: "TCP" as const
32
+ })
33
+ }
34
+ return portSetEntry(name, input)
35
+ }
36
+
37
+ export function portRecordInput(
38
+ record: PortExports_Input<string> | PortExports<string>
39
+ ): Record<string, Port_Full> {
40
+ if ("record" in record) {
41
+ return record.record as any
42
+ }
43
+ return mapValues(record, (v, k) => parsePortInput(k, v))
44
+ }
@@ -0,0 +1,108 @@
1
+ import { mapValues, pickBy } from "lodash"
2
+ import { display } from "../../../utils/mixin/display"
3
+ import { K8tsNetworkError } from "../error"
4
+ import type { PortMap_Item } from "./types"
5
+
6
+ /**
7
+ * Represents an immutable mapping of named ports to their frontend/backend configuration.
8
+ *
9
+ * Used to define how container ports are exposed through services, mapping backend container ports
10
+ * to frontend service ports.
11
+ *
12
+ * @template Names The union type of all port names in the map.
13
+ */
14
+ export interface PortMap<Names extends string> {
15
+ /**
16
+ * Creates a new PortMap containing only the specified port names.
17
+ *
18
+ * @param name The port names to include in the new map.
19
+ * @returns A new PortMap with only the selected ports.
20
+ */
21
+ pick<InNames extends Names>(...name: InNames[]): PortMap<InNames>
22
+
23
+ /** The underlying map of port names to their mapping entries. */
24
+ get values(): Record<string, PortMap_Item>
25
+
26
+ /**
27
+ * Remaps the frontend ports to new values.
28
+ *
29
+ * @param mapping A record mapping port names to their new frontend port numbers.
30
+ * @returns A new PortMap with updated frontend ports.
31
+ */
32
+ map(mapping: Record<Names, number>): PortMap<Names>
33
+
34
+ /**
35
+ * Retrieves a port mapping entry by name.
36
+ *
37
+ * @param name The name of the port to retrieve.
38
+ * @returns The port mapping entry.
39
+ * @throws {K8tsNetworkError} If the port name is not found in the map.
40
+ */
41
+ get(name: Names): PortMap_Item
42
+
43
+ /** Converts this PortMap to a standard Map. */
44
+ toMap(): Record<string, PortMap_Item>
45
+ }
46
+
47
+ export function PortMap<Names extends string>(map: Record<string, PortMap_Item>) {
48
+ return new _PortMap(map) as any as PortMap<Names>
49
+ }
50
+
51
+ @display({
52
+ simple(self) {
53
+ return `PortMap(${Object.keys(self._map).join(", ")})`
54
+ }
55
+ })
56
+ class _PortMap {
57
+ constructor(readonly _map: Record<string, PortMap_Item>) {}
58
+
59
+ private _apply(
60
+ f: (map: Record<string, PortMap_Item>) => Record<string, PortMap_Item>
61
+ ): _PortMap {
62
+ return new _PortMap(f(this._map))
63
+ }
64
+
65
+ pick(...name: string[]): _PortMap {
66
+ return this._apply(map => pickBy(map, (_, key) => name.includes(key)))
67
+ }
68
+
69
+ get values() {
70
+ return this._map
71
+ }
72
+
73
+ map(mapping: Record<string, number>): _PortMap {
74
+ return new _PortMap(
75
+ mapValues(this._map, entry => {
76
+ return {
77
+ ...entry,
78
+ frontend: mapping[entry.name]
79
+ }
80
+ })
81
+ )
82
+ }
83
+
84
+ get(name: string): PortMap_Item {
85
+ if (!(name in this._map)) {
86
+ throw new K8tsNetworkError(`Port ${name} not found`)
87
+ }
88
+ return this._map[name] as PortMap_Item
89
+ }
90
+
91
+ toMap() {
92
+ return this._map
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Input type for creating port mappings.
98
+ *
99
+ * Each port name maps to either:
100
+ *
101
+ * - A number specifying the frontend port
102
+ * - `true` to use the same port number as the backend
103
+ *
104
+ * @template Names The union type of port names.
105
+ */
106
+ export type PortMapping_Input<Names extends string = string> = {
107
+ [K in Names]: number | true
108
+ }
@@ -1,7 +1,7 @@
1
1
  import { anyStringOf, int, string } from "parjs"
2
2
  import { map, maybe, must, qthen, then } from "parjs/combinators"
3
- import { PortError } from "../error"
4
- import type { Port_Full_Input, Port_Protocol } from "../types"
3
+ import { K8tsNetworkError } from "../error"
4
+ import type { Port_Input_Object, Port_Protocol } from "./types"
5
5
 
6
6
  function validatePort(port: number) {
7
7
  if (port < 0 || port > 65535) {
@@ -25,7 +25,7 @@ const pPortSpec = pPort.pipe(
25
25
  return {
26
26
  port,
27
27
  protocol: protocol?.toUpperCase() ?? "TCP"
28
- } as Port_Full_Input
28
+ } as Port_Input_Object
29
29
  })
30
30
  )
31
31
 
@@ -34,7 +34,7 @@ export function parsePortSpec(name: string, input: string) {
34
34
  if (result.kind === "OK") {
35
35
  return result.value
36
36
  }
37
- throw new PortError(name, {
37
+ throw new K8tsNetworkError(name, {
38
38
  parseError: result.reason
39
39
  })
40
40
  }
@@ -0,0 +1,193 @@
1
+ import { mapValues, pick } from "lodash"
2
+ import { display } from "../../../utils/mixin/display"
3
+ import { K8tsNetworkError } from "../error"
4
+ import { parsePortInput, portRecordInput } from "./entry"
5
+ import { PortMap, PortMapping_Input } from "./mapping"
6
+ import type {
7
+ Port_Full,
8
+ Port_Input_Object,
9
+ Port_Input_Protocol,
10
+ Port_Input_Scalar,
11
+ PortExports_Input
12
+ } from "./types"
13
+
14
+ /**
15
+ * An immutable dictionary of named network ports exported by a container. Each port also has an
16
+ * attached configuration.
17
+ *
18
+ * @template Names All exported port names.
19
+ */
20
+ export interface PortExports<Names extends string = never> {
21
+ /**
22
+ * Creates a new PortExports that is the union of this and another PortExports.
23
+ *
24
+ * @param other The other PortExports to merge with.
25
+ * @returns A new PortExports containing ports from both dictionaries. The 2nd dictionary's
26
+ * ports will overwrite any with the same name from the first.
27
+ */
28
+ union<InNames extends string>(other: PortExports<InNames>): PortExports<Names | InNames>
29
+
30
+ /**
31
+ * Adds a port with explicit name, port number, and protocol.
32
+ *
33
+ * @param name The unique name for the port.
34
+ * @param port The port number.
35
+ * @param protocol The protocol (TCP or UDP).
36
+ */
37
+ add<Name extends string>(
38
+ name: Name,
39
+ port: Port_Input_Scalar,
40
+ protocol: Port_Input_Protocol
41
+ ): PortExports<Names | Name>
42
+ /**
43
+ * Adds a port with a name and full port configuration.
44
+ *
45
+ * @param name The unique name for the port.
46
+ * @param entry The port configuration including number and protocol, and optional host
47
+ * settings.
48
+ */
49
+ add<Name extends string>(name: Name, entry: Port_Input_Object): PortExports<Names | Name>
50
+ /**
51
+ * Adds multiple ports from a record of port configurations.
52
+ *
53
+ * @param input A record mapping port names to their configurations.
54
+ */
55
+ add<InNames extends string>(input?: PortExports_Input<InNames>): PortExports<Names | InNames>
56
+
57
+ /**
58
+ * Creates a new PortExports containing only the specified port names.
59
+ *
60
+ * @param name The port names to include.
61
+ * @returns A new PortExports with only the selected ports.
62
+ */
63
+ pick<InNames extends Names>(...name: InNames[]): PortExports<InNames>
64
+
65
+ /** An array of all port names in this set. */
66
+ get names(): Names[]
67
+
68
+ /**
69
+ * Retrieves a port by name.
70
+ *
71
+ * @param name The name of the port to retrieve.
72
+ * @returns The full port configuration.
73
+ * @throws {K8tsNetworkError} If the port name is not found.
74
+ */
75
+ get(name: Names): Port_Full
76
+
77
+ /** The underlying map of port names to their full configurations. */
78
+ get values(): Port_Full[]
79
+
80
+ get record(): Record<Names, Port_Full>
81
+
82
+ /**
83
+ * Creates a PortMap by mapping each port to a frontend port number.
84
+ *
85
+ * @param mapping A record where each port name maps to either a frontend port number or `true`
86
+ * to use the backend port.
87
+ * @returns A new PortMap with the specified frontend mappings.
88
+ * @throws {K8tsNetworkError} If a port name is missing from the mapping or has an invalid
89
+ * value.
90
+ */
91
+ map(mapping: PortMapping_Input<Names>): PortMap<Names>
92
+ }
93
+
94
+ export function PortExports<Names extends string = never>(
95
+ record: PortExports_Input<Names> = {} as PortExports_Input<Names>
96
+ ) {
97
+ return new _PortExports(portRecordInput(record)) as any as PortExports<Names>
98
+ }
99
+
100
+ @display({
101
+ simple(self) {
102
+ return `PortExports(${Object.keys(self._rec).join(", ")})`
103
+ }
104
+ })
105
+ class _PortExports {
106
+ constructor(readonly _rec: Record<string, Port_Full>) {}
107
+
108
+ private static _make(rec: Record<string, Port_Full>) {
109
+ return new _PortExports(rec)
110
+ }
111
+
112
+ private _apply(f: (rec: Record<string, Port_Full>) => Record<string, Port_Full>): _PortExports {
113
+ return _PortExports._make(f(this._rec))
114
+ }
115
+
116
+ union(other: _PortExports): _PortExports {
117
+ return this._apply(rec => Object.assign({}, rec, other._rec))
118
+ }
119
+
120
+ add(a: any, b?: any, c?: any): any {
121
+ if (!a) {
122
+ return this
123
+ }
124
+ if (c) {
125
+ return this._apply(rec =>
126
+ Object.assign({}, rec, {
127
+ [a]: {
128
+ name: a,
129
+ port: +b,
130
+ protocol: c.toUpperCase()
131
+ }
132
+ })
133
+ )
134
+ }
135
+ if (b) {
136
+ return this._apply(rec => Object.assign({}, rec, { [a]: parsePortInput(a, b) }))
137
+ }
138
+ return this._apply(rec => {
139
+ const processed = portRecordInput(a)
140
+ return Object.assign({}, rec, processed)
141
+ })
142
+ }
143
+
144
+ pick(...name: string[]): _PortExports {
145
+ return this._apply(rec => pick(rec, name))
146
+ }
147
+
148
+ get names() {
149
+ return Object.keys(this._rec)
150
+ }
151
+
152
+ get(name: string): Port_Full {
153
+ if (!Object.hasOwn(this._rec, name)) {
154
+ throw new K8tsNetworkError(`Port ${name} not found`)
155
+ }
156
+ return this._rec[name]!
157
+ }
158
+
159
+ get values() {
160
+ return Object.values(this._rec)
161
+ }
162
+
163
+ get record() {
164
+ return this._rec
165
+ }
166
+
167
+ map(mapping: Record<string, number | boolean>): PortMap<any> {
168
+ return PortMap(
169
+ mapValues(this._rec, entry => {
170
+ if (!(entry.name in mapping)) {
171
+ throw new K8tsNetworkError(`Port ${entry.name} not found in mapping`)
172
+ }
173
+ const portIn = mapping[entry.name]
174
+ let portVal: number
175
+ if (typeof portIn === "boolean") {
176
+ portVal = entry.port
177
+ } else if (typeof portIn === "number") {
178
+ portVal = portIn
179
+ } else {
180
+ throw new K8tsNetworkError(
181
+ `Port ${entry.name} mapping value must be a number or boolean`
182
+ )
183
+ }
184
+ return {
185
+ name: entry.name,
186
+ protocol: entry.protocol,
187
+ backend: entry.name,
188
+ frontend: portVal as any
189
+ }
190
+ })
191
+ )
192
+ }
193
+ }
@@ -1,11 +1,11 @@
1
- import type { Ip4, Ip4_String } from "../ip"
1
+ import type { Ip4, Ip4_Input_String } from "../ip/ip4"
2
2
 
3
3
  type Port = number
4
- export type Port_Basic_Input = Port | `${Port}`
5
- export type Port_Protocol_Input = Port_Protocol | Lowercase<Port_Protocol>
4
+ export type Port_Input_Scalar = Port | `${Port}`
5
+ export type Port_Input_Protocol = Port_Protocol | Lowercase<Port_Protocol>
6
6
  export type Port_Protocol = "TCP" | "UDP"
7
- export type Port_WithProto_Input = `${Port}/${Port_Protocol_Input}`
8
- export interface Port_Mapping_Entry {
7
+ export type Port_Input_WithProtocol = `${Port}/${Port_Input_Protocol}`
8
+ export interface PortMap_Item {
9
9
  name: string
10
10
  protocol: Port_Protocol
11
11
  frontend: number
@@ -19,11 +19,25 @@ export interface Port_Full {
19
19
  hostPort?: number
20
20
  }
21
21
 
22
- export interface Port_Full_Input {
22
+ export interface Port_Input_Object {
23
23
  port: Port
24
- protocol?: Port_Protocol_Input
25
- hostIp?: Ip4_String
24
+ protocol?: Port_Input_Protocol
25
+ hostIp?: Ip4_Input_String
26
26
  hostPort?: Port
27
27
  }
28
28
 
29
- export type Port_Input = Port_Full_Input | Port_Basic_Input | Port_WithProto_Input
29
+ export type Port_Input = Port_Input_Object | Port_Input_Scalar | Port_Input_WithProtocol /**
30
+ * Input type for creating PortExports.
31
+ *
32
+ * A record mapping port names to their configurations, which can be:
33
+ *
34
+ * - A port number (uses TCP by default)
35
+ * - A tuple of `[port, protocol]`
36
+ * - A full port configuration object
37
+ *
38
+ * @template Names The union type of port names.
39
+ */
40
+
41
+ export type PortExports_Input<Names extends string = string> = {
42
+ [K in Names]: Port_Input
43
+ }
@@ -0,0 +1,8 @@
1
+ export class K8tsQuantityError extends Error {
2
+ name = "K8tsQuantityError" as const
3
+
4
+ constructor(message: string, fields: Record<string, any> & { cause?: Error } = {}) {
5
+ super(message)
6
+ Object.assign(this, fields)
7
+ }
8
+ }
@@ -1,2 +1,11 @@
1
- export * from "./reqlem"
2
- export * from "./units"
1
+ export * from "./reqs/objects"
2
+ export * from "./reqs/parser"
3
+ export * from "./reqs/types"
4
+ export * from "./reqs/values"
5
+
6
+ export * from "./units/built-in"
7
+ export * from "./units/dimension"
8
+ export * from "./units/parser"
9
+ export * from "./units/types"
10
+ export * from "./units/value"
11
+ export * from "./util"
@@ -0,0 +1,85 @@
1
+ import { seq } from "doddle"
2
+ import { mapValues } from "lodash"
3
+ import { string, type Parjser } from "parjs"
4
+ import { mapConst, or } from "parjs/combinators"
5
+ import type { StringRecordLike } from "../../../utils/types"
6
+
7
+ import { K8tsQuantityError } from "../error"
8
+ import { UnitDimension } from "../units/dimension"
9
+ import type { UnitValue } from "../units/value"
10
+ import { createReqsParser } from "./parser"
11
+ import type { Reqs_Dictionary, Reqs_ReqLimit } from "./types"
12
+ import { Reqs_Values } from "./values"
13
+ /** The Resource Requests object. */
14
+ export class Reqs<const _Dimensions extends StringRecordLike<_Dimensions>> {
15
+ private readonly _unitParsers: Record<string, Parjser<UnitValue | undefined>>
16
+ private readonly _reqLimitParsers: Record<string, Parjser<Reqs_ReqLimit>>
17
+ private readonly _anyUnitParser = new UnitDimension({
18
+ name: "unknown",
19
+ units: "any"
20
+ })
21
+ private readonly _anyReqLimitParser = createReqsParser(this._anyUnitParser)
22
+ constructor(unitMap: {
23
+ [K in keyof _Dimensions]: UnitDimension<_Dimensions[K]>
24
+ }) {
25
+ const questionMarkParser = string("?").pipe(mapConst(undefined))
26
+ this._unitParsers = mapValues(unitMap, parser => parser.parser.pipe(or(questionMarkParser)))
27
+ this._reqLimitParsers = mapValues(unitMap, parser =>
28
+ createReqsParser(parser as UnitDimension)
29
+ )
30
+ }
31
+
32
+ private _parseReqLimit(resource: string, input: string): Reqs_ReqLimit {
33
+ const pReqLimit = this._reqLimitParsers[resource]
34
+ if (!pReqLimit) {
35
+ return this._anyReqLimitParser.parse(input).value
36
+ }
37
+ return pReqLimit.parse(input).value
38
+ }
39
+ __INPUT__!: Reqs_Dictionary<_Dimensions>
40
+
41
+ parse<const R extends Reqs_Dictionary<_Dimensions> | "=?">(input: R): Reqs_Values {
42
+ if (input === "=?") {
43
+ }
44
+ const allKeys = new Set([...Object.keys(input), ...Object.keys(this._unitParsers)])
45
+ const map = seq(allKeys)
46
+ .toRecord(key => {
47
+ const getVal = () => {
48
+ const value = input[key as keyof R]
49
+ const pUnitValue = this._unitParsers[key] ?? this._anyUnitParser.parser
50
+ if (!pUnitValue) {
51
+ throw new K8tsQuantityError(`No parser found for ${String(key)}`)
52
+ }
53
+ if (!value) {
54
+ throw new K8tsQuantityError(`No value found for ${String(key)}`)
55
+ }
56
+
57
+ if (Array.isArray(value)) {
58
+ // Singleton array is treated as `=X`, i.e. [exactly, exactly]
59
+ // Pair is treated as `X->Y`, i.e. [request, limit]
60
+ let [req, limit] = value.map(v => {
61
+ return pUnitValue.parse(v as any).value
62
+ })
63
+ limit ??= req
64
+
65
+ return {
66
+ request: req,
67
+ limit: limit
68
+ }
69
+ } else if (typeof value === "string") {
70
+ return this._parseReqLimit(key as string, value)
71
+ } else if (typeof value == "object" && "request" in value && "limit" in value) {
72
+ return {
73
+ request: pUnitValue.parse(value.request as any).value,
74
+ limit: pUnitValue.parse(value.limit as any).value
75
+ }
76
+ } else {
77
+ throw new K8tsQuantityError(`Invalid value for resource ${String(key)}`)
78
+ }
79
+ }
80
+ return [key, getVal()] as const
81
+ })
82
+ .pull()
83
+ return new Reqs_Values(map)
84
+ }
85
+ }
@@ -1,9 +1,9 @@
1
1
  import { space, string } from "parjs"
2
2
  import { between, many, manySepBy, map, must, or, qthen } from "parjs/combinators"
3
- import type { UnitParser } from "../units/unit-parser"
4
- import type { ReqLimit } from "./types"
3
+ import type { UnitDimension } from "../units/dimension"
4
+ import type { Reqs_ReqLimit } from "./types"
5
5
 
6
- export function createResourceParser(pUnitValue: UnitParser) {
6
+ export function createReqsParser(pUnitValue: UnitDimension) {
7
7
  const pSpaces = space().pipe(many())
8
8
  const rSeparator = string("->").pipe(between(pSpaces))
9
9
  const arrowExprParser = pUnitValue.parser.pipe(
@@ -21,7 +21,7 @@ export function createResourceParser(pUnitValue: UnitParser) {
21
21
  return {
22
22
  request: a,
23
23
  limit: b
24
- } as ReqLimit
24
+ } as Reqs_ReqLimit
25
25
  })
26
26
  )
27
27
  const equalsExprParser = string("=").pipe(
@@ -30,7 +30,7 @@ export function createResourceParser(pUnitValue: UnitParser) {
30
30
  return {
31
31
  request: x,
32
32
  limit: x
33
- } as ReqLimit
33
+ } as Reqs_ReqLimit
34
34
  })
35
35
  )
36
36
  return equalsExprParser.pipe(or(arrowExprParser))
@@ -0,0 +1,35 @@
1
+ import type { StringRecordLike } from "../../../utils/types"
2
+ import type { Reqs_sUnitTerm } from "../units/types"
3
+ import type { UnitValue } from "../units/value"
4
+
5
+ export type Reqs_ReqLim_Array_FromTo<_Unit extends string> = [
6
+ Reqs_sUnitTerm<_Unit>,
7
+ Reqs_sUnitTerm<_Unit>
8
+ ]
9
+
10
+ export type Reqs_ReqLim_Array_Exactly<_Unit extends string> = [Reqs_sUnitTerm<_Unit>]
11
+ type _Spaces = "" | " " | " "
12
+ export type Reqs_sFromTo<_Unit extends string> =
13
+ `${Reqs_sUnitTerm<_Unit>}${_Spaces}->${_Spaces}${Reqs_sUnitTerm<_Unit>}`
14
+ export type Reqs_sExactly<_Unit extends string> = `=${Reqs_sUnitTerm<_Unit>}`
15
+ export interface Reqs_ReqLimit<_Unit extends string = string> {
16
+ readonly request?: UnitValue<_Unit>
17
+ readonly limit?: UnitValue<_Unit>
18
+ }
19
+ export interface Reqs_ReqLim_Object<_Unit extends string> {
20
+ request: Reqs_sUnitTerm<_Unit>
21
+ limit: Reqs_sUnitTerm<_Unit>
22
+ }
23
+ export type Reqs_One<_Unit extends string> =
24
+ | Reqs_sFromTo<_Unit>
25
+ | Reqs_sExactly<_Unit>
26
+ | Reqs_ReqLim_Array_FromTo<_Unit>
27
+ | Reqs_ReqLim_Array_Exactly<_Unit>
28
+ | Reqs_ReqLim_Object<_Unit>
29
+ type CustomResource = `${string}/${string}`
30
+
31
+ export type Reqs_Dictionary<UnitDict extends StringRecordLike<UnitDict>> = {
32
+ [K in keyof UnitDict]: Reqs_One<UnitDict[K]>
33
+ } & {
34
+ [K in CustomResource]?: Reqs_One<string>
35
+ }
@@ -0,0 +1,47 @@
1
+ import { isEmpty, mapValues, merge } from "lodash"
2
+ import { toCdkQuantity, type CdkQuanitity } from "../util"
3
+ import type { Reqs_ReqLimit } from "./types"
4
+
5
+ export class Reqs_Values {
6
+ constructor(private _record: Record<string, Reqs_ReqLimit>) {}
7
+
8
+ get record() {
9
+ return this._record
10
+ }
11
+
12
+ private _toObjectTransform<T>(f: (value: string | number) => T): {
13
+ requests?: Record<string, T>
14
+ limits?: Record<string, T>
15
+ } {
16
+ const kubernetesForm = mapValues(this._record, (value, key) => {
17
+ const result = {} as any
18
+ if (value.request) {
19
+ result.requests = {
20
+ [key]: f(value.request.val)
21
+ }
22
+ }
23
+ if (value.limit) {
24
+ result.limits = {
25
+ [key]: f(value.limit.val)
26
+ }
27
+ }
28
+ if (!isEmpty(result)) {
29
+ return result
30
+ }
31
+ return undefined
32
+ })
33
+
34
+ return merge({}, ...Object.values(kubernetesForm).filter(x => x !== undefined))
35
+ }
36
+
37
+ toBareObject() {
38
+ return this._toObjectTransform(x => x)
39
+ }
40
+
41
+ toObject(): {
42
+ requests?: Record<string, CdkQuanitity>
43
+ limits?: Record<string, CdkQuanitity>
44
+ } {
45
+ return this._toObjectTransform(toCdkQuantity)
46
+ }
47
+ }