@k8ts/instruments 0.6.0 → 0.6.2

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 (564) hide show
  1. package/dist/core/graph/entity.d.ts +13 -0
  2. package/dist/core/graph/entity.d.ts.map +1 -0
  3. package/dist/core/graph/entity.js +27 -0
  4. package/dist/core/graph/entity.js.map +1 -0
  5. package/dist/core/graph/index.d.ts +6 -0
  6. package/dist/core/graph/index.d.ts.map +1 -0
  7. package/dist/core/graph/index.js +26 -0
  8. package/dist/core/graph/index.js.map +1 -0
  9. package/dist/core/graph/node.d.ts +24 -0
  10. package/dist/core/graph/node.d.ts.map +1 -0
  11. package/dist/core/graph/node.js +131 -0
  12. package/dist/core/graph/node.js.map +1 -0
  13. package/dist/core/graph/origin/entity.d.ts +32 -0
  14. package/dist/core/graph/origin/entity.d.ts.map +1 -0
  15. package/dist/core/graph/origin/entity.js +149 -0
  16. package/dist/core/graph/origin/entity.js.map +1 -0
  17. package/dist/core/graph/origin/events.d.ts +41 -0
  18. package/dist/core/graph/origin/events.d.ts.map +1 -0
  19. package/dist/core/graph/origin/events.js +46 -0
  20. package/dist/core/graph/origin/events.js.map +1 -0
  21. package/dist/core/graph/origin/exporter.d.ts +13 -0
  22. package/dist/core/graph/origin/exporter.d.ts.map +1 -0
  23. package/dist/core/graph/origin/exporter.js +94 -0
  24. package/dist/core/graph/origin/exporter.js.map +1 -0
  25. package/dist/core/graph/origin/index.d.ts +7 -0
  26. package/dist/core/graph/origin/index.d.ts.map +1 -0
  27. package/dist/core/graph/origin/index.js +23 -0
  28. package/dist/core/graph/origin/index.js.map +1 -0
  29. package/dist/core/graph/origin/kind-map/index.d.ts +36 -0
  30. package/dist/core/graph/origin/kind-map/index.d.ts.map +1 -0
  31. package/dist/core/graph/origin/kind-map/index.js +195 -0
  32. package/dist/core/graph/origin/kind-map/index.js.map +1 -0
  33. package/dist/core/graph/origin/node.d.ts +23 -0
  34. package/dist/core/graph/origin/node.d.ts.map +1 -0
  35. package/dist/{graph/origin-node.js → core/graph/origin/node.js} +33 -78
  36. package/dist/core/graph/origin/node.js.map +1 -0
  37. package/dist/core/graph/origin/origin-events.d.ts +41 -0
  38. package/dist/core/graph/origin/origin-events.d.ts.map +1 -0
  39. package/dist/core/graph/origin/origin-events.js +46 -0
  40. package/dist/core/graph/origin/origin-events.js.map +1 -0
  41. package/dist/core/graph/origin/tracker.d.ts +19 -0
  42. package/dist/core/graph/origin/tracker.d.ts.map +1 -0
  43. package/dist/core/graph/origin/tracker.js +87 -0
  44. package/dist/core/graph/origin/tracker.js.map +1 -0
  45. package/dist/core/graph/relation.d.ts +7 -0
  46. package/dist/core/graph/relation.d.ts.map +1 -0
  47. package/dist/{graph/dependencies.js → core/graph/relation.js} +3 -13
  48. package/dist/core/graph/relation.js.map +1 -0
  49. package/dist/core/graph/resource/api-kind/index.d.ts +57 -0
  50. package/dist/core/graph/resource/api-kind/index.d.ts.map +1 -0
  51. package/dist/{api-kind → core/graph/resource/api-kind}/index.js +35 -15
  52. package/dist/core/graph/resource/api-kind/index.js.map +1 -0
  53. package/dist/core/graph/resource/api-kind/pluralize.d.ts +19 -0
  54. package/dist/core/graph/resource/api-kind/pluralize.d.ts.map +1 -0
  55. package/dist/core/graph/resource/api-kind/pluralize.js +13 -0
  56. package/dist/core/graph/resource/api-kind/pluralize.js.map +1 -0
  57. package/dist/core/graph/resource/child.d.ts +10 -0
  58. package/dist/core/graph/resource/child.d.ts.map +1 -0
  59. package/dist/core/graph/resource/child.js +22 -0
  60. package/dist/core/graph/resource/child.js.map +1 -0
  61. package/dist/core/graph/resource/entity.d.ts +21 -0
  62. package/dist/core/graph/resource/entity.d.ts.map +1 -0
  63. package/dist/{graph/base-origin-entity.js → core/graph/resource/entity.js} +37 -34
  64. package/dist/core/graph/resource/entity.js.map +1 -0
  65. package/dist/core/graph/resource/index.d.ts +8 -0
  66. package/dist/core/graph/resource/index.d.ts.map +1 -0
  67. package/dist/core/graph/resource/index.js +24 -0
  68. package/dist/core/graph/resource/index.js.map +1 -0
  69. package/dist/core/graph/resource/node.d.ts +29 -0
  70. package/dist/core/graph/resource/node.d.ts.map +1 -0
  71. package/dist/{graph/resource-node.js → core/graph/resource/node.js} +23 -31
  72. package/dist/core/graph/resource/node.js.map +1 -0
  73. package/dist/core/graph/resource/ref-key/index.d.ts.map +1 -0
  74. package/dist/core/graph/resource/ref-key/index.js.map +1 -0
  75. package/dist/core/graph/resource/ref-key/ref-key.d.ts +18 -0
  76. package/dist/core/graph/resource/ref-key/ref-key.d.ts.map +1 -0
  77. package/dist/core/graph/resource/ref-key/ref-key.js +58 -0
  78. package/dist/core/graph/resource/ref-key/ref-key.js.map +1 -0
  79. package/dist/core/graph/resource/reference/error.d.ts +5 -0
  80. package/dist/core/graph/resource/reference/error.d.ts.map +1 -0
  81. package/dist/core/graph/resource/reference/error.js +11 -0
  82. package/dist/core/graph/resource/reference/error.js.map +1 -0
  83. package/dist/core/graph/resource/reference/fw-ref-exports.d.ts +15 -0
  84. package/dist/core/graph/resource/reference/fw-ref-exports.d.ts.map +1 -0
  85. package/dist/core/graph/resource/reference/fw-ref-exports.js +133 -0
  86. package/dist/core/graph/resource/reference/fw-ref-exports.js.map +1 -0
  87. package/dist/core/graph/resource/reference/fw-ref.d.ts +25 -0
  88. package/dist/core/graph/resource/reference/fw-ref.d.ts.map +1 -0
  89. package/dist/core/graph/resource/reference/fw-ref.js +105 -0
  90. package/dist/core/graph/resource/reference/fw-ref.js.map +1 -0
  91. package/dist/core/graph/resource/reference/index.d.ts +4 -0
  92. package/dist/core/graph/resource/reference/index.d.ts.map +1 -0
  93. package/dist/core/graph/resource/reference/index.js +8 -0
  94. package/dist/core/graph/resource/reference/index.js.map +1 -0
  95. package/dist/core/graph/resource/reference/refable.d.ts +17 -0
  96. package/dist/core/graph/resource/reference/refable.d.ts.map +1 -0
  97. package/dist/core/graph/resource/reference/refable.js.map +1 -0
  98. package/dist/core/graph/resource/top.d.ts +18 -0
  99. package/dist/core/graph/resource/top.d.ts.map +1 -0
  100. package/dist/core/graph/resource/top.js +59 -0
  101. package/dist/core/graph/resource/top.js.map +1 -0
  102. package/dist/core/index.d.ts +5 -0
  103. package/dist/core/index.d.ts.map +1 -0
  104. package/dist/core/index.js +21 -0
  105. package/dist/core/index.js.map +1 -0
  106. package/dist/core/manifest/index.d.ts +31 -0
  107. package/dist/core/manifest/index.d.ts.map +1 -0
  108. package/dist/core/manifest/index.js +6 -0
  109. package/dist/core/manifest/index.js.map +1 -0
  110. package/dist/{tracing → core/tracing}/git.d.ts +2 -1
  111. package/dist/core/tracing/git.d.ts.map +1 -0
  112. package/dist/{tracing → core/tracing}/git.js +20 -3
  113. package/dist/core/tracing/git.js.map +1 -0
  114. package/dist/core/tracing/index.d.ts.map +1 -0
  115. package/dist/core/tracing/index.js.map +1 -0
  116. package/dist/core/tracing/trace.d.ts.map +1 -0
  117. package/dist/core/tracing/trace.js.map +1 -0
  118. package/dist/{tracing → core/tracing}/traced.d.ts +1 -1
  119. package/dist/core/tracing/traced.d.ts.map +1 -0
  120. package/dist/core/tracing/traced.js +6 -0
  121. package/dist/core/tracing/traced.js.map +1 -0
  122. package/dist/error.d.ts +0 -3
  123. package/dist/error.d.ts.map +1 -1
  124. package/dist/error.js +1 -7
  125. package/dist/error.js.map +1 -1
  126. package/dist/{data-sources → expressions/data-sources}/index.d.ts +8 -9
  127. package/dist/expressions/data-sources/index.d.ts.map +1 -0
  128. package/dist/{data-sources → expressions/data-sources}/index.js +52 -34
  129. package/dist/expressions/data-sources/index.js.map +1 -0
  130. package/dist/expressions/index.d.ts +6 -0
  131. package/dist/expressions/index.d.ts.map +1 -0
  132. package/dist/{manifest → expressions}/index.js +5 -4
  133. package/dist/expressions/index.js.map +1 -0
  134. package/dist/expressions/network/index.d.ts +2 -0
  135. package/dist/expressions/network/index.d.ts.map +1 -0
  136. package/dist/{producer → expressions/network}/index.js +1 -1
  137. package/dist/expressions/network/index.js.map +1 -0
  138. package/dist/expressions/network/ip/index.d.ts.map +1 -0
  139. package/dist/expressions/network/ip/index.js.map +1 -0
  140. package/dist/expressions/network/ports/error.d.ts.map +1 -0
  141. package/dist/expressions/network/ports/error.js.map +1 -0
  142. package/dist/{ports → expressions/network/ports}/index.d.ts +1 -1
  143. package/dist/expressions/network/ports/index.d.ts.map +1 -0
  144. package/dist/expressions/network/ports/index.js.map +1 -0
  145. package/dist/{ports → expressions/network/ports}/map.d.ts +0 -1
  146. package/dist/expressions/network/ports/map.d.ts.map +1 -0
  147. package/dist/{ports → expressions/network/ports}/map.js +3 -2
  148. package/dist/expressions/network/ports/map.js.map +1 -0
  149. package/dist/{ports → expressions/network/ports}/set.d.ts +0 -1
  150. package/dist/expressions/network/ports/set.d.ts.map +1 -0
  151. package/dist/{ports → expressions/network/ports}/set.js +8 -7
  152. package/dist/expressions/network/ports/set.js.map +1 -0
  153. package/dist/{ports → expressions/network/ports}/tools/entry.d.ts +0 -1
  154. package/dist/expressions/network/ports/tools/entry.d.ts.map +1 -0
  155. package/dist/{ports → expressions/network/ports}/tools/entry.js +7 -5
  156. package/dist/expressions/network/ports/tools/entry.js.map +1 -0
  157. package/dist/expressions/network/ports/tools/parse.d.ts.map +1 -0
  158. package/dist/expressions/network/ports/tools/parse.js.map +1 -0
  159. package/dist/{ports → expressions/network/ports}/types.d.ts +1 -1
  160. package/dist/expressions/network/ports/types.d.ts.map +1 -0
  161. package/dist/expressions/network/ports/types.js.map +1 -0
  162. package/dist/expressions/quantities/index.d.ts +3 -0
  163. package/dist/expressions/quantities/index.d.ts.map +1 -0
  164. package/dist/{forward-exports → expressions/quantities}/index.js +2 -1
  165. package/dist/expressions/quantities/index.js.map +1 -0
  166. package/dist/expressions/quantities/reqlem/index.d.ts.map +1 -0
  167. package/dist/expressions/quantities/reqlem/index.js.map +1 -0
  168. package/dist/{resources → expressions/quantities/reqlem}/objects.d.ts +6 -7
  169. package/dist/expressions/quantities/reqlem/objects.d.ts.map +1 -0
  170. package/dist/expressions/quantities/reqlem/objects.js +103 -0
  171. package/dist/expressions/quantities/reqlem/objects.js.map +1 -0
  172. package/dist/expressions/quantities/reqlem/parser.d.ts.map +1 -0
  173. package/dist/expressions/quantities/reqlem/parser.js.map +1 -0
  174. package/dist/expressions/quantities/reqlem/types.d.ts +23 -0
  175. package/dist/expressions/quantities/reqlem/types.d.ts.map +1 -0
  176. package/dist/expressions/quantities/reqlem/types.js.map +1 -0
  177. package/dist/expressions/quantities/units/index.d.ts.map +1 -0
  178. package/dist/expressions/quantities/units/index.js.map +1 -0
  179. package/dist/{units → expressions/quantities/units}/unit-parser.d.ts +0 -1
  180. package/dist/expressions/quantities/units/unit-parser.d.ts.map +1 -0
  181. package/dist/{units → expressions/quantities/units}/unit-parser.js +1 -1
  182. package/dist/expressions/quantities/units/unit-parser.js.map +1 -0
  183. package/dist/{units → expressions/quantities/units}/units.d.ts +1 -1
  184. package/dist/expressions/quantities/units/units.d.ts.map +1 -0
  185. package/dist/{units → expressions/quantities/units}/units.js +3 -4
  186. package/dist/expressions/quantities/units/units.js.map +1 -0
  187. package/dist/expressions/timezone.d.ts.map +1 -0
  188. package/dist/{timezone.js.map → expressions/timezone.js.map} +1 -1
  189. package/dist/expressions/workload/_user/index.d.ts.map +1 -0
  190. package/dist/expressions/workload/_user/index.js.map +1 -0
  191. package/dist/{cmd → expressions/workload/cmd}/cli-command.d.ts +7 -8
  192. package/dist/expressions/workload/cmd/cli-command.d.ts.map +1 -0
  193. package/dist/{cmd → expressions/workload/cmd}/cli-command.js +15 -11
  194. package/dist/expressions/workload/cmd/cli-command.js.map +1 -0
  195. package/dist/{cmd → expressions/workload/cmd}/cli-term.d.ts +7 -7
  196. package/dist/expressions/workload/cmd/cli-term.d.ts.map +1 -0
  197. package/dist/{cmd → expressions/workload/cmd}/cli-term.js +12 -12
  198. package/dist/expressions/workload/cmd/cli-term.js.map +1 -0
  199. package/dist/expressions/workload/cmd/index.d.ts +3 -0
  200. package/dist/expressions/workload/cmd/index.d.ts.map +1 -0
  201. package/dist/expressions/workload/cmd/index.js.map +1 -0
  202. package/dist/expressions/workload/cmd/types.d.ts +5 -0
  203. package/dist/expressions/workload/cmd/types.d.ts.map +1 -0
  204. package/dist/expressions/workload/cmd/types.js.map +1 -0
  205. package/dist/expressions/workload/cronjob/index.d.ts.map +1 -0
  206. package/dist/{_cronjob → expressions/workload/cronjob}/index.js +1 -1
  207. package/dist/expressions/workload/cronjob/index.js.map +1 -0
  208. package/dist/expressions/workload/cronjob/types.d.ts.map +1 -0
  209. package/dist/expressions/workload/cronjob/types.js.map +1 -0
  210. package/dist/expressions/workload/image/family.d.ts.map +1 -0
  211. package/dist/{image → expressions/workload/image}/family.js +1 -1
  212. package/dist/expressions/workload/image/family.js.map +1 -0
  213. package/dist/expressions/workload/image/index.d.ts.map +1 -0
  214. package/dist/expressions/workload/image/index.js.map +1 -0
  215. package/dist/expressions/workload/index.d.ts +5 -0
  216. package/dist/expressions/workload/index.d.ts.map +1 -0
  217. package/dist/expressions/workload/index.js +21 -0
  218. package/dist/expressions/workload/index.js.map +1 -0
  219. package/dist/index.d.ts +4 -21
  220. package/dist/index.d.ts.map +1 -1
  221. package/dist/index.js +4 -21
  222. package/dist/index.js.map +1 -1
  223. package/dist/utils/_string/index.d.ts.map +1 -0
  224. package/dist/utils/_string/index.js.map +1 -0
  225. package/dist/utils/_string/markers.d.ts.map +1 -0
  226. package/dist/utils/_string/markers.js.map +1 -0
  227. package/dist/utils/_string/post-processor.d.ts.map +1 -0
  228. package/dist/utils/_string/post-processor.js.map +1 -0
  229. package/dist/utils/_string/pretty-objects.d.ts.map +1 -0
  230. package/dist/utils/_string/pretty-objects.js.map +1 -0
  231. package/dist/utils/_string/pretty-print.d.ts.map +1 -0
  232. package/dist/utils/_string/pretty-print.js.map +1 -0
  233. package/dist/utils/_string/super-script.d.ts.map +1 -0
  234. package/dist/utils/_string/super-script.js.map +1 -0
  235. package/dist/utils/bind.d.ts +3 -0
  236. package/dist/utils/bind.d.ts.map +1 -0
  237. package/dist/{displayers → utils}/bind.js +2 -3
  238. package/dist/utils/bind.js.map +1 -0
  239. package/dist/{displayers → utils/displayers}/displayers.d.ts +2 -10
  240. package/dist/utils/displayers/displayers.d.ts.map +1 -0
  241. package/dist/{displayers → utils/displayers}/displayers.js +27 -8
  242. package/dist/utils/displayers/displayers.js.map +1 -0
  243. package/dist/utils/displayers/index.d.ts.map +1 -0
  244. package/dist/utils/displayers/index.js.map +1 -0
  245. package/dist/{_embedder → utils/embedder}/base.d.ts +2 -1
  246. package/dist/utils/embedder/base.d.ts.map +1 -0
  247. package/dist/{_embedder → utils/embedder}/base.js +8 -4
  248. package/dist/utils/embedder/base.js.map +1 -0
  249. package/dist/utils/embedder/index.d.ts.map +1 -0
  250. package/dist/utils/embedder/index.js.map +1 -0
  251. package/dist/utils/index.d.ts +5 -0
  252. package/dist/utils/index.d.ts.map +1 -0
  253. package/dist/utils/index.js +21 -0
  254. package/dist/utils/index.js.map +1 -0
  255. package/package.json +16 -16
  256. package/src/core/graph/entity.ts +35 -0
  257. package/src/core/graph/index.ts +5 -0
  258. package/src/core/graph/node.ts +139 -0
  259. package/src/core/graph/origin/entity.ts +118 -0
  260. package/src/core/graph/origin/events.ts +86 -0
  261. package/src/core/graph/origin/exporter.ts +62 -0
  262. package/src/core/graph/origin/index.ts +6 -0
  263. package/src/core/graph/origin/kind-map/index.ts +171 -0
  264. package/src/core/graph/origin/node.ts +75 -0
  265. package/src/core/graph/origin/origin-events.ts +86 -0
  266. package/src/core/graph/origin/tracker.ts +103 -0
  267. package/src/core/graph/relation.ts +17 -0
  268. package/src/core/graph/resource/api-kind/index.ts +176 -0
  269. package/src/core/graph/resource/api-kind/pluralize.ts +32 -0
  270. package/src/core/graph/resource/child.ts +26 -0
  271. package/src/core/graph/resource/entity.ts +58 -0
  272. package/src/core/graph/resource/index.ts +7 -0
  273. package/src/{graph/resource-node.ts → core/graph/resource/node.ts} +28 -40
  274. package/src/core/graph/resource/ref-key/ref-key.ts +62 -0
  275. package/src/core/graph/resource/reference/error.ts +7 -0
  276. package/src/core/graph/resource/reference/fw-ref-exports.ts +164 -0
  277. package/src/core/graph/resource/reference/fw-ref.ts +122 -0
  278. package/src/core/graph/resource/reference/index.ts +8 -0
  279. package/src/core/graph/resource/reference/refable.ts +24 -0
  280. package/src/core/graph/resource/top.ts +69 -0
  281. package/src/core/index.ts +4 -0
  282. package/src/{manifest → core/manifest}/index.ts +7 -22
  283. package/src/{tracing → core/tracing}/git.ts +20 -3
  284. package/src/{tracing → core/tracing}/traced.ts +1 -1
  285. package/src/error.ts +0 -6
  286. package/src/expressions/data-sources/index.ts +147 -0
  287. package/src/expressions/index.ts +5 -0
  288. package/src/expressions/network/index.ts +1 -0
  289. package/src/{ports → expressions/network/ports}/index.ts +1 -1
  290. package/src/{ports → expressions/network/ports}/map.ts +3 -3
  291. package/src/{ports → expressions/network/ports}/set.ts +8 -7
  292. package/src/{ports → expressions/network/ports}/tools/entry.ts +6 -4
  293. package/src/{ports → expressions/network/ports}/types.ts +1 -1
  294. package/src/expressions/quantities/index.ts +2 -0
  295. package/src/expressions/quantities/reqlem/objects.ts +107 -0
  296. package/src/expressions/quantities/reqlem/types.ts +28 -0
  297. package/src/{units → expressions/quantities/units}/unit-parser.ts +1 -2
  298. package/src/{units → expressions/quantities/units}/units.ts +3 -4
  299. package/src/{cmd → expressions/workload/cmd}/cli-command.ts +35 -31
  300. package/src/{cmd → expressions/workload/cmd}/cli-term.ts +9 -9
  301. package/src/expressions/workload/cmd/index.ts +2 -0
  302. package/src/expressions/workload/cmd/types.ts +4 -0
  303. package/src/{_cronjob → expressions/workload/cronjob}/index.ts +1 -1
  304. package/src/{image → expressions/workload/image}/family.ts +1 -1
  305. package/src/expressions/workload/index.ts +4 -0
  306. package/src/index.ts +5 -21
  307. package/src/{displayers → utils}/bind.ts +4 -4
  308. package/src/{displayers → utils/displayers}/displayers.ts +28 -20
  309. package/src/{_embedder → utils/embedder}/base.ts +9 -5
  310. package/src/utils/index.ts +4 -0
  311. package/dist/_cronjob/index.d.ts.map +0 -1
  312. package/dist/_cronjob/index.js.map +0 -1
  313. package/dist/_cronjob/types.d.ts.map +0 -1
  314. package/dist/_cronjob/types.js.map +0 -1
  315. package/dist/_embedder/base.d.ts.map +0 -1
  316. package/dist/_embedder/base.js.map +0 -1
  317. package/dist/_embedder/index.d.ts.map +0 -1
  318. package/dist/_embedder/index.js.map +0 -1
  319. package/dist/_ip/index.d.ts.map +0 -1
  320. package/dist/_ip/index.js.map +0 -1
  321. package/dist/_string/index.d.ts.map +0 -1
  322. package/dist/_string/index.js.map +0 -1
  323. package/dist/_string/markers.d.ts.map +0 -1
  324. package/dist/_string/markers.js.map +0 -1
  325. package/dist/_string/post-processor.d.ts.map +0 -1
  326. package/dist/_string/post-processor.js.map +0 -1
  327. package/dist/_string/pretty-objects.d.ts.map +0 -1
  328. package/dist/_string/pretty-objects.js.map +0 -1
  329. package/dist/_string/pretty-print.d.ts.map +0 -1
  330. package/dist/_string/pretty-print.js.map +0 -1
  331. package/dist/_string/super-script.d.ts.map +0 -1
  332. package/dist/_string/super-script.js.map +0 -1
  333. package/dist/_user/index.d.ts.map +0 -1
  334. package/dist/_user/index.js.map +0 -1
  335. package/dist/api-kind/index.d.ts +0 -45
  336. package/dist/api-kind/index.d.ts.map +0 -1
  337. package/dist/api-kind/index.js.map +0 -1
  338. package/dist/cmd/cli-command.d.ts.map +0 -1
  339. package/dist/cmd/cli-command.js.map +0 -1
  340. package/dist/cmd/cli-term.d.ts.map +0 -1
  341. package/dist/cmd/cli-term.js.map +0 -1
  342. package/dist/cmd/index.d.ts +0 -3
  343. package/dist/cmd/index.d.ts.map +0 -1
  344. package/dist/cmd/index.js.map +0 -1
  345. package/dist/cmd/types.d.ts +0 -5
  346. package/dist/cmd/types.d.ts.map +0 -1
  347. package/dist/cmd/types.js.map +0 -1
  348. package/dist/data-sources/index.d.ts.map +0 -1
  349. package/dist/data-sources/index.js.map +0 -1
  350. package/dist/displayers/bind.d.ts +0 -4
  351. package/dist/displayers/bind.d.ts.map +0 -1
  352. package/dist/displayers/bind.js.map +0 -1
  353. package/dist/displayers/displayers.d.ts.map +0 -1
  354. package/dist/displayers/displayers.js.map +0 -1
  355. package/dist/displayers/index.d.ts.map +0 -1
  356. package/dist/displayers/index.js.map +0 -1
  357. package/dist/forward-exports/delayed-exports.d.ts +0 -18
  358. package/dist/forward-exports/delayed-exports.d.ts.map +0 -1
  359. package/dist/forward-exports/delayed-exports.js +0 -115
  360. package/dist/forward-exports/delayed-exports.js.map +0 -1
  361. package/dist/forward-exports/index.d.ts +0 -2
  362. package/dist/forward-exports/index.d.ts.map +0 -1
  363. package/dist/forward-exports/index.js.map +0 -1
  364. package/dist/graph/base-node.d.ts +0 -35
  365. package/dist/graph/base-node.d.ts.map +0 -1
  366. package/dist/graph/base-node.js +0 -112
  367. package/dist/graph/base-node.js.map +0 -1
  368. package/dist/graph/base-origin-entity.d.ts +0 -19
  369. package/dist/graph/base-origin-entity.d.ts.map +0 -1
  370. package/dist/graph/base-origin-entity.js.map +0 -1
  371. package/dist/graph/dependencies.d.ts +0 -12
  372. package/dist/graph/dependencies.d.ts.map +0 -1
  373. package/dist/graph/dependencies.js.map +0 -1
  374. package/dist/graph/index.d.ts +0 -7
  375. package/dist/graph/index.d.ts.map +0 -1
  376. package/dist/graph/index.js +0 -23
  377. package/dist/graph/index.js.map +0 -1
  378. package/dist/graph/origin-node.d.ts +0 -32
  379. package/dist/graph/origin-node.d.ts.map +0 -1
  380. package/dist/graph/origin-node.js.map +0 -1
  381. package/dist/graph/relations.d.ts +0 -26
  382. package/dist/graph/relations.d.ts.map +0 -1
  383. package/dist/graph/relations.js +0 -36
  384. package/dist/graph/relations.js.map +0 -1
  385. package/dist/graph/resource-node.d.ts +0 -35
  386. package/dist/graph/resource-node.d.ts.map +0 -1
  387. package/dist/graph/resource-node.js.map +0 -1
  388. package/dist/image/family.d.ts.map +0 -1
  389. package/dist/image/family.js.map +0 -1
  390. package/dist/image/index.d.ts.map +0 -1
  391. package/dist/image/index.js.map +0 -1
  392. package/dist/kind-map/index.d.ts +0 -44
  393. package/dist/kind-map/index.d.ts.map +0 -1
  394. package/dist/kind-map/index.js +0 -125
  395. package/dist/kind-map/index.js.map +0 -1
  396. package/dist/manifest/index.d.ts +0 -46
  397. package/dist/manifest/index.d.ts.map +0 -1
  398. package/dist/manifest/index.js.map +0 -1
  399. package/dist/manifest/manifest-builder.d.ts +0 -41
  400. package/dist/manifest/manifest-builder.d.ts.map +0 -1
  401. package/dist/manifest/manifest-builder.js +0 -64
  402. package/dist/manifest/manifest-builder.js.map +0 -1
  403. package/dist/ports/error.d.ts.map +0 -1
  404. package/dist/ports/error.js.map +0 -1
  405. package/dist/ports/index.d.ts.map +0 -1
  406. package/dist/ports/index.js.map +0 -1
  407. package/dist/ports/map.d.ts.map +0 -1
  408. package/dist/ports/map.js.map +0 -1
  409. package/dist/ports/set.d.ts.map +0 -1
  410. package/dist/ports/set.js.map +0 -1
  411. package/dist/ports/tools/entry.d.ts.map +0 -1
  412. package/dist/ports/tools/entry.js.map +0 -1
  413. package/dist/ports/tools/parse.d.ts.map +0 -1
  414. package/dist/ports/tools/parse.js.map +0 -1
  415. package/dist/ports/types.d.ts.map +0 -1
  416. package/dist/ports/types.js.map +0 -1
  417. package/dist/producer/index.d.ts +0 -2
  418. package/dist/producer/index.d.ts.map +0 -1
  419. package/dist/producer/index.js.map +0 -1
  420. package/dist/producer/producer.d.ts +0 -6
  421. package/dist/producer/producer.d.ts.map +0 -1
  422. package/dist/producer/producer.js +0 -13
  423. package/dist/producer/producer.js.map +0 -1
  424. package/dist/ref-key/index.d.ts.map +0 -1
  425. package/dist/ref-key/index.js.map +0 -1
  426. package/dist/ref-key/ref-key.d.ts +0 -23
  427. package/dist/ref-key/ref-key.d.ts.map +0 -1
  428. package/dist/ref-key/ref-key.js +0 -69
  429. package/dist/ref-key/ref-key.js.map +0 -1
  430. package/dist/reference/forward-ref.d.ts +0 -22
  431. package/dist/reference/forward-ref.d.ts.map +0 -1
  432. package/dist/reference/forward-ref.js +0 -113
  433. package/dist/reference/forward-ref.js.map +0 -1
  434. package/dist/reference/index.d.ts +0 -4
  435. package/dist/reference/index.d.ts.map +0 -1
  436. package/dist/reference/index.js +0 -8
  437. package/dist/reference/index.js.map +0 -1
  438. package/dist/reference/refable.d.ts +0 -9
  439. package/dist/reference/refable.d.ts.map +0 -1
  440. package/dist/reference/refable.js.map +0 -1
  441. package/dist/resources/index.d.ts.map +0 -1
  442. package/dist/resources/index.js.map +0 -1
  443. package/dist/resources/objects.d.ts.map +0 -1
  444. package/dist/resources/objects.js +0 -100
  445. package/dist/resources/objects.js.map +0 -1
  446. package/dist/resources/parser.d.ts.map +0 -1
  447. package/dist/resources/parser.js.map +0 -1
  448. package/dist/resources/types.d.ts +0 -24
  449. package/dist/resources/types.d.ts.map +0 -1
  450. package/dist/resources/types.js.map +0 -1
  451. package/dist/timezone.d.ts.map +0 -1
  452. package/dist/tracing/git.d.ts.map +0 -1
  453. package/dist/tracing/git.js.map +0 -1
  454. package/dist/tracing/index.d.ts.map +0 -1
  455. package/dist/tracing/index.js.map +0 -1
  456. package/dist/tracing/trace.d.ts.map +0 -1
  457. package/dist/tracing/trace.js.map +0 -1
  458. package/dist/tracing/traced.d.ts.map +0 -1
  459. package/dist/tracing/traced.js +0 -6
  460. package/dist/tracing/traced.js.map +0 -1
  461. package/dist/types.d.ts +0 -7
  462. package/dist/types.d.ts.map +0 -1
  463. package/dist/types.js +0 -3
  464. package/dist/types.js.map +0 -1
  465. package/dist/units/index.d.ts.map +0 -1
  466. package/dist/units/index.js.map +0 -1
  467. package/dist/units/unit-parser.d.ts.map +0 -1
  468. package/dist/units/unit-parser.js.map +0 -1
  469. package/dist/units/units.d.ts.map +0 -1
  470. package/dist/units/units.js.map +0 -1
  471. package/src/api-kind/index.ts +0 -142
  472. package/src/cmd/index.ts +0 -2
  473. package/src/cmd/types.ts +0 -4
  474. package/src/data-sources/index.ts +0 -126
  475. package/src/forward-exports/delayed-exports.ts +0 -157
  476. package/src/forward-exports/index.ts +0 -1
  477. package/src/graph/base-node.ts +0 -135
  478. package/src/graph/base-origin-entity.ts +0 -44
  479. package/src/graph/dependencies.ts +0 -30
  480. package/src/graph/index.ts +0 -6
  481. package/src/graph/origin-node.ts +0 -122
  482. package/src/graph/relations.ts +0 -62
  483. package/src/kind-map/index.ts +0 -150
  484. package/src/manifest/manifest-builder.ts +0 -99
  485. package/src/producer/index.ts +0 -1
  486. package/src/producer/producer.ts +0 -18
  487. package/src/ref-key/ref-key.ts +0 -76
  488. package/src/reference/forward-ref.ts +0 -122
  489. package/src/reference/index.ts +0 -3
  490. package/src/reference/refable.ts +0 -12
  491. package/src/resources/objects.ts +0 -102
  492. package/src/resources/types.ts +0 -30
  493. package/src/types.ts +0 -13
  494. /package/dist/{ref-key → core/graph/resource/ref-key}/index.d.ts +0 -0
  495. /package/dist/{ref-key → core/graph/resource/ref-key}/index.js +0 -0
  496. /package/dist/{reference → core/graph/resource/reference}/refable.js +0 -0
  497. /package/dist/{tracing → core/tracing}/index.d.ts +0 -0
  498. /package/dist/{tracing → core/tracing}/index.js +0 -0
  499. /package/dist/{tracing → core/tracing}/trace.d.ts +0 -0
  500. /package/dist/{tracing → core/tracing}/trace.js +0 -0
  501. /package/dist/{_ip → expressions/network/ip}/index.d.ts +0 -0
  502. /package/dist/{_ip → expressions/network/ip}/index.js +0 -0
  503. /package/dist/{ports → expressions/network/ports}/error.d.ts +0 -0
  504. /package/dist/{ports → expressions/network/ports}/error.js +0 -0
  505. /package/dist/{ports → expressions/network/ports}/index.js +0 -0
  506. /package/dist/{ports → expressions/network/ports}/tools/parse.d.ts +0 -0
  507. /package/dist/{ports → expressions/network/ports}/tools/parse.js +0 -0
  508. /package/dist/{_cronjob → expressions/network/ports}/types.js +0 -0
  509. /package/dist/{resources → expressions/quantities/reqlem}/index.d.ts +0 -0
  510. /package/dist/{resources → expressions/quantities/reqlem}/index.js +0 -0
  511. /package/dist/{resources → expressions/quantities/reqlem}/parser.d.ts +0 -0
  512. /package/dist/{resources → expressions/quantities/reqlem}/parser.js +0 -0
  513. /package/dist/{cmd → expressions/quantities/reqlem}/types.js +0 -0
  514. /package/dist/{units → expressions/quantities/units}/index.d.ts +0 -0
  515. /package/dist/{units → expressions/quantities/units}/index.js +0 -0
  516. /package/dist/{timezone.d.ts → expressions/timezone.d.ts} +0 -0
  517. /package/dist/{timezone.js → expressions/timezone.js} +0 -0
  518. /package/dist/{_user → expressions/workload/_user}/index.d.ts +0 -0
  519. /package/dist/{_user → expressions/workload/_user}/index.js +0 -0
  520. /package/dist/{cmd → expressions/workload/cmd}/index.js +0 -0
  521. /package/dist/{ports → expressions/workload/cmd}/types.js +0 -0
  522. /package/dist/{_cronjob → expressions/workload/cronjob}/index.d.ts +0 -0
  523. /package/dist/{_cronjob → expressions/workload/cronjob}/types.d.ts +0 -0
  524. /package/dist/{resources → expressions/workload/cronjob}/types.js +0 -0
  525. /package/dist/{image → expressions/workload/image}/family.d.ts +0 -0
  526. /package/dist/{image → expressions/workload/image}/index.d.ts +0 -0
  527. /package/dist/{image → expressions/workload/image}/index.js +0 -0
  528. /package/dist/{_string → utils/_string}/index.d.ts +0 -0
  529. /package/dist/{_string → utils/_string}/index.js +0 -0
  530. /package/dist/{_string → utils/_string}/markers.d.ts +0 -0
  531. /package/dist/{_string → utils/_string}/markers.js +0 -0
  532. /package/dist/{_string → utils/_string}/post-processor.d.ts +0 -0
  533. /package/dist/{_string → utils/_string}/post-processor.js +0 -0
  534. /package/dist/{_string → utils/_string}/pretty-objects.d.ts +0 -0
  535. /package/dist/{_string → utils/_string}/pretty-objects.js +0 -0
  536. /package/dist/{_string → utils/_string}/pretty-print.d.ts +0 -0
  537. /package/dist/{_string → utils/_string}/pretty-print.js +0 -0
  538. /package/dist/{_string → utils/_string}/super-script.d.ts +0 -0
  539. /package/dist/{_string → utils/_string}/super-script.js +0 -0
  540. /package/dist/{displayers → utils/displayers}/index.d.ts +0 -0
  541. /package/dist/{displayers → utils/displayers}/index.js +0 -0
  542. /package/dist/{_embedder → utils/embedder}/index.d.ts +0 -0
  543. /package/dist/{_embedder → utils/embedder}/index.js +0 -0
  544. /package/src/{ref-key → core/graph/resource/ref-key}/index.ts +0 -0
  545. /package/src/{tracing → core/tracing}/index.ts +0 -0
  546. /package/src/{tracing → core/tracing}/trace.ts +0 -0
  547. /package/src/{_ip → expressions/network/ip}/index.ts +0 -0
  548. /package/src/{ports → expressions/network/ports}/error.ts +0 -0
  549. /package/src/{ports → expressions/network/ports}/tools/parse.ts +0 -0
  550. /package/src/{resources → expressions/quantities/reqlem}/index.ts +0 -0
  551. /package/src/{resources → expressions/quantities/reqlem}/parser.ts +0 -0
  552. /package/src/{units → expressions/quantities/units}/index.ts +0 -0
  553. /package/src/{timezone.ts → expressions/timezone.ts} +0 -0
  554. /package/src/{_user → expressions/workload/_user}/index.ts +0 -0
  555. /package/src/{_cronjob → expressions/workload/cronjob}/types.ts +0 -0
  556. /package/src/{image → expressions/workload/image}/index.ts +0 -0
  557. /package/src/{_string → utils/_string}/index.ts +0 -0
  558. /package/src/{_string → utils/_string}/markers.ts +0 -0
  559. /package/src/{_string → utils/_string}/post-processor.ts +0 -0
  560. /package/src/{_string → utils/_string}/pretty-objects.ts +0 -0
  561. /package/src/{_string → utils/_string}/pretty-print.ts +0 -0
  562. /package/src/{_string → utils/_string}/super-script.ts +0 -0
  563. /package/src/{displayers → utils/displayers}/index.ts +0 -0
  564. /package/src/{_embedder → utils/embedder}/index.ts +0 -0
@@ -1,20 +1,15 @@
1
- import { Embedder } from "../_embedder/base"
2
- import { ResourceEntity } from "../graph/resource-node"
3
- export interface ManifestMetadata {
1
+ import { Embedder } from "../../utils/embedder"
2
+ import { Resource_Entity } from "../graph/resource/entity"
3
+ export interface Manifest_Metadata {
4
4
  labels: Record<string, string>
5
5
  annotations: Record<string, string>
6
6
  name: string
7
7
  namespace?: string
8
8
  }
9
- export interface ManifestIdentFields {
9
+ export interface Manifest_Ident {
10
10
  kind: string
11
11
  apiVersion: string
12
12
  }
13
- export interface BuilderInputTypes {
14
- body: PreManifest
15
- metadata?: ManifestMetadata
16
- idents?: ManifestIdentFields
17
- }
18
13
 
19
14
  export type JsonSerializable =
20
15
  | string
@@ -24,16 +19,7 @@ export type JsonSerializable =
24
19
  | JsonSerializable[]
25
20
  | { [key: string]: JsonSerializable }
26
21
 
27
- export interface PreManifest {
28
- metadata?: {
29
- name?: string
30
- namespace?: string
31
- annotations?: Record<string, string>
32
- labels?: Record<string, string>
33
- }
34
- }
35
- export interface BaseManifest {
36
- [key: string]: JsonSerializable
22
+ export interface Manifest {
37
23
  [key: number]: never
38
24
  apiVersion: string
39
25
  kind: string
@@ -45,9 +31,8 @@ export interface BaseManifest {
45
31
  }
46
32
  }
47
33
 
48
- export interface SpecManifest<T extends JsonSerializable> extends BaseManifest {
34
+ export interface SpecManifest<T extends JsonSerializable> extends Manifest {
49
35
  spec: T
50
36
  }
51
37
 
52
- export const ManifestSourceEmbedder = new Embedder<object, ResourceEntity>("ManifestSource")
53
- export * from "./manifest-builder"
38
+ export const ManifestSourceEmbedder = new Embedder<object, Resource_Entity>("ManifestSource")
@@ -1,3 +1,4 @@
1
+ import { Meta } from "@k8ts/metadata"
1
2
  import dayjs from "dayjs"
2
3
  import simpleGit from "simple-git"
3
4
 
@@ -17,12 +18,20 @@ export interface GitTraceProps {
17
18
  export class GitTrace {
18
19
  private constructor(readonly props: GitTraceProps) {}
19
20
 
20
- get text() {
21
+ get metaFields() {
21
22
  const hashPart = this.props.commit.sha.slice(0, 7)
22
23
  const shortDate = dayjs(this.props.commit.date).format("YYYY-MM-DD")
23
24
  const shortMessage = this.props.commit.message.split("\n")[0].slice(0, 20)
24
25
  const author = this.props.commit.author
25
- return `${hashPart} '${shortMessage}⋯' (${author}@${shortDate})`
26
+
27
+ return Meta.make({
28
+ "git.k8ts.org/": {
29
+ "^sha": hashPart,
30
+ "^message": shortMessage,
31
+ "^author": author,
32
+ "^date": shortDate
33
+ }
34
+ })
26
35
  }
27
36
 
28
37
  static async make(options?: Partial<GitTraceOptions>) {
@@ -31,7 +40,15 @@ export class GitTrace {
31
40
  absolute: false,
32
41
  ...options
33
42
  }
34
- const sg = simpleGit(options.cwd)
43
+ try {
44
+ var sg = simpleGit(options.cwd)
45
+ } catch (err: any) {
46
+ if (err.code === "ENOENT") {
47
+ console.warn(`Git not found or not a repo; skipping git trace.`)
48
+ return undefined
49
+ }
50
+ throw err
51
+ }
35
52
  const isRepo = await sg.checkIsRepo()
36
53
  if (!isRepo) {
37
54
  return undefined
@@ -1,4 +1,4 @@
1
- import { Embedder } from "../_embedder"
1
+ import { Embedder } from "../../utils/embedder"
2
2
  import { Trace } from "./trace"
3
3
 
4
4
  export const TraceEmbedder = new Embedder<object, Trace>("TRACED")
package/src/error.ts CHANGED
@@ -7,9 +7,3 @@ export class InstrumentsError extends Error {
7
7
  Object.assign(this, details)
8
8
  }
9
9
  }
10
-
11
- export class ProxyOperationError extends InstrumentsError {
12
- constructor(message: string, details: Record<string, any> = {}) {
13
- super(message, details)
14
- }
15
- }
@@ -0,0 +1,147 @@
1
+ import { doddle, DoddleAsync, seq, type Doddle } from "doddle"
2
+ import { readFile } from "fs/promises"
3
+ import { dirname, join, resolve } from "path"
4
+ import StackTracey from "stacktracey"
5
+ import { InstrumentsError } from "../../error"
6
+ export type DataSource_LocalFile_Mode = "text" | "binary"
7
+
8
+ export interface DataSource_LocalFile_Props<Mode extends DataSource_LocalFile_Mode = "text"> {
9
+ pointOfCall: StackTracey
10
+ path: string
11
+ cwd?: string
12
+ mode?: Mode
13
+ }
14
+ export class DataSource_LocalFile<Mode extends DataSource_LocalFile_Mode = "text"> {
15
+ constructor(private readonly _props: DataSource_LocalFile_Props<Mode>) {}
16
+
17
+ get cwd() {
18
+ if (this._props.cwd) {
19
+ return this._props.cwd
20
+ }
21
+ const where = this._props.pointOfCall.at(0)
22
+ return dirname(where.file)
23
+ }
24
+
25
+ get path() {
26
+ const where = this._props.pointOfCall.at(0)
27
+ const joined = join(dirname(where.file), this._props.path)
28
+ return resolve(joined)
29
+ }
30
+
31
+ contents = doddle(async () => {
32
+ const mode = this._props.mode ?? "text"
33
+ if (mode === "binary") {
34
+ const data = await readFile(this.path, null)
35
+ return data
36
+ }
37
+ return readFile(this.path, "utf-8")
38
+ }) as DoddleAsync<Mode extends "text" ? string : Uint8Array>
39
+ }
40
+
41
+ export function localFile<Mode extends DataSource_LocalFile_Mode = "text">(
42
+ path: string,
43
+ props?: Pick<DataSource_LocalFile_Props<Mode>, "cwd" | "mode">
44
+ ): DataSource_LocalFile<Mode>
45
+ export function localFile(
46
+ args: TemplateStringsArray,
47
+ ...params: any[]
48
+ ): DataSource_LocalFile<"text">
49
+ export function localFile(args: any, ...params: any[]) {
50
+ if (typeof args === "string") {
51
+ const options = params[0] ?? {}
52
+ return new DataSource_LocalFile({
53
+ pointOfCall: new StackTracey().slice(1),
54
+ path: args,
55
+ ...(options ?? {})
56
+ })
57
+ }
58
+ const path = String.raw(args, ...params)
59
+ return new DataSource_LocalFile({
60
+ pointOfCall: new StackTracey().slice(1),
61
+ path
62
+ })
63
+ }
64
+
65
+ export interface TypedArrayLike {
66
+ buffer: ArrayBuffer
67
+ byteLength: number
68
+ }
69
+ export type DataSource_Text = DataSource_LocalFile<"text"> | string
70
+ export type DataSource_Binary = DataSource_LocalFile<"binary"> | TypedArrayLike | ArrayBuffer
71
+ export type DataSourceRecord_Text = Record<string, DataSource_Text>
72
+ export type DataSourceRecord_Binary = Record<string, DataSource_Binary>
73
+ export type DataSourceRecord = DataSourceRecord_Text | DataSourceRecord_Binary
74
+ export function isTypedArray(data: DataSource_Binary): data is TypedArrayLike {
75
+ return (
76
+ typeof data === "object" &&
77
+ "buffer" in data &&
78
+ "byteSize" in data &&
79
+ typeof data.byteSize === "number"
80
+ )
81
+ }
82
+ export function isArrayBuffer(data: DataSource_Binary): data is ArrayBuffer {
83
+ return data instanceof ArrayBuffer
84
+ }
85
+ export interface DataSourceResolvedRecord {
86
+ data: Record<string, string>
87
+ binaryData: Record<string, Uint8Array>
88
+ }
89
+ type MaybePromise<T> = T | Promise<T>
90
+ async function promiseAllMap<K, V>(m: Map<K, Doddle<MaybePromise<V>>>): Promise<Map<K, V>> {
91
+ const promises = seq(m)
92
+ .map(async x => [x[0], await x[1].pull()] as [K, V])
93
+ .toArray()
94
+ .pull()
95
+ const res = await Promise.all(promises)
96
+ return new Map(res)
97
+ }
98
+ export async function resolveText(record: DataSourceRecord_Text) {
99
+ const mp = seq(Object.entries(record))
100
+ .map(([k, v]) => {
101
+ return [
102
+ k,
103
+ doddle(async () => {
104
+ let resolved = v
105
+ if (v instanceof DataSource_LocalFile) {
106
+ resolved = await v.contents.pull()
107
+ }
108
+ if (typeof resolved !== "string") {
109
+ throw new InstrumentsError(
110
+ `Got an invalid data value ${v} for key ${k}. Must be a string.`
111
+ )
112
+ }
113
+ return resolved
114
+ })
115
+ ] as const
116
+ })
117
+ .toMap(x => x)
118
+ .pull()
119
+ return promiseAllMap(mp)
120
+ }
121
+ export async function resolveBinary(record: DataSourceRecord_Binary) {
122
+ const mp = seq(Object.entries(record))
123
+ .map(([k, v]) => {
124
+ return [
125
+ k,
126
+ doddle(async () => {
127
+ let resolved = v as any
128
+ if (v instanceof DataSource_LocalFile) {
129
+ resolved = await v.contents.pull()
130
+ }
131
+ if (isTypedArray(resolved)) {
132
+ return new Uint8Array(resolved.buffer)
133
+ } else if (isArrayBuffer(resolved)) {
134
+ return new Uint8Array(resolved)
135
+ } else {
136
+ throw new InstrumentsError(
137
+ `Got an invalid data value ${v} for key ${k}. Must be binary data.`
138
+ )
139
+ }
140
+ })
141
+ ] as const
142
+ })
143
+ .toMap(x => x)
144
+ .pull()
145
+
146
+ return promiseAllMap(mp)
147
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./data-sources"
2
+ export * from "./network"
3
+ export * from "./quantities"
4
+ export * from "./timezone"
5
+ export * from "./workload"
@@ -0,0 +1 @@
1
+ export * from "./ports"
@@ -2,7 +2,7 @@ import { PortSet } from "./set"
2
2
  import type { InputPortSetRecord } from "./types"
3
3
  export { PortMap } from "./map"
4
4
  export { PortSet } from "./set"
5
- export { InputPortMapping, InputPortSetRecord, PortMapEntry, PortSetEntry } from "./types"
5
+ export type { InputPortMapping, InputPortSetRecord, PortMapEntry, PortSetEntry } from "./types"
6
6
  export function ports<Names extends string>(input: InputPortSetRecord<Names>): PortSet<Names> {
7
7
  return PortSet.make(input)
8
8
  }
@@ -1,4 +1,4 @@
1
- import { Map } from "immutable"
1
+ import { filterMap, mapValues } from "@k8ts/metadata/util"
2
2
  import { PortError } from "./error"
3
3
  import type { PortMapEntry } from "./types"
4
4
  export class PortMap<Names extends string> {
@@ -9,7 +9,7 @@ export class PortMap<Names extends string> {
9
9
  }
10
10
 
11
11
  pick<InNames extends Names>(...name: InNames[]): PortMap<InNames> {
12
- return this._apply(map => map.filter((_, key) => name.includes(key as InNames)))
12
+ return this._apply(map => filterMap(map, (_, key) => name.includes(key as InNames)))
13
13
  }
14
14
 
15
15
  get values() {
@@ -18,7 +18,7 @@ export class PortMap<Names extends string> {
18
18
 
19
19
  map(mapping: Record<Names, number>): PortMap<Names> {
20
20
  return new PortMap(
21
- this._map.map(entry => {
21
+ mapValues(this._map, entry => {
22
22
  return {
23
23
  ...entry,
24
24
  frontend: mapping[entry.name as keyof typeof mapping]
@@ -1,5 +1,6 @@
1
1
  import { Meta } from "@k8ts/metadata"
2
- import { Map } from "immutable"
2
+ import { filterMap, mapValues, merge } from "@k8ts/metadata/util"
3
+ import { seq } from "doddle"
3
4
  import { PortError } from "./error"
4
5
  import { PortMap } from "./map"
5
6
  import { parsePortInput, portRecordInput } from "./tools/entry"
@@ -14,7 +15,7 @@ import type {
14
15
 
15
16
  declare const __NAMES__: unique symbol
16
17
  export class PortSet<Names extends string = never> {
17
- constructor(private readonly _map: Map<Names, PortSetEntry> = Map()) {
18
+ constructor(private readonly _map: Map<Names, PortSetEntry> = new Map()) {
18
19
  for (const entry of _map.values()) {
19
20
  Meta._checkNameValue(`container port '${entry.name}' (${entry.port})`, entry.name)
20
21
  }
@@ -25,7 +26,7 @@ export class PortSet<Names extends string = never> {
25
26
  }
26
27
 
27
28
  union<InNames extends string>(other: PortSet<InNames>): PortSet<Names | InNames> {
28
- return new PortSet(this._map.merge(other._map))
29
+ return new PortSet(merge(this._map, other._map))
29
30
  }
30
31
  add<Name extends string>(
31
32
  name: Name,
@@ -46,16 +47,16 @@ export class PortSet<Names extends string = never> {
46
47
  }
47
48
  return this._apply(map => {
48
49
  const processed = portRecordInput(a)
49
- return map.merge(processed)
50
+ return merge(map, processed)
50
51
  })
51
52
  }
52
53
 
53
54
  pick<InNames extends Names>(...name: InNames[]): PortSet<InNames> {
54
- return this._apply(map => map.filter((_, key) => name.includes(key as InNames))) as any
55
+ return this._apply(map => filterMap(map, (_, key) => name.includes(key as InNames))) as any
55
56
  }
56
57
 
57
58
  get names() {
58
- return this._map.keySeq().toArray() as Names[]
59
+ return seq(this._map.keys()).toArray().pull() as Names[]
59
60
  }
60
61
 
61
62
  get(name: Names): PortSetEntry {
@@ -71,7 +72,7 @@ export class PortSet<Names extends string = never> {
71
72
 
72
73
  map(mapping: InputPortMapping<Names>): PortMap<Names> {
73
74
  return new PortMap(
74
- this._map.map(entry => {
75
+ mapValues(this._map, entry => {
75
76
  if (!(entry.name in mapping)) {
76
77
  throw new PortError(`Port ${entry.name} not found in mapping`)
77
78
  }
@@ -1,5 +1,5 @@
1
- import { Map } from "immutable"
2
- import { Ip4 } from "../../_ip"
1
+ import { seq } from "doddle"
2
+ import { Ip4 } from "../../ip"
3
3
  import { PortSet } from "../set"
4
4
  import type {
5
5
  InputPortSetEntry,
@@ -39,6 +39,8 @@ export function portRecordInput(
39
39
  if (record instanceof PortSet) {
40
40
  return record.values
41
41
  }
42
- const inputMap = Map(record)
43
- return inputMap.map((v, k) => parsePortInput(k, v))
42
+ const inputMap = seq(Object.entries(record))
43
+ .toMap(([k, v]) => [k, parsePortInput(k, v)])
44
+ .pull()
45
+ return inputMap
44
46
  }
@@ -1,4 +1,4 @@
1
- import { Ip4, Ip4_String } from "../_ip"
1
+ import type { Ip4, Ip4_String } from "../ip"
2
2
 
3
3
  export interface PortSpecObj {
4
4
  port: Port
@@ -0,0 +1,2 @@
1
+ export * from "./reqlem"
2
+ export * from "./units"
@@ -0,0 +1,107 @@
1
+ import { mapFromObject, mapValues } from "@k8ts/metadata/util"
2
+ import { seq } from "doddle"
3
+ import { isEmpty, merge } from "lodash"
4
+ import { string, type Parjser } from "parjs"
5
+ import { mapConst, or } from "parjs/combinators"
6
+ import { InstrumentsError } from "../../../error"
7
+ import type { UnitParser, UnitValue } from "../units"
8
+ import { AnyUnitParser } from "../units/unit-parser"
9
+ import { createResourceParser } from "./parser"
10
+ import type { ReqLimit, Resources_ReqLimits_Trait, Resources_UnitMap_Trait } from "./types"
11
+
12
+ export class Resources_Map<const RM extends Resources_UnitMap_Trait<RM>> {
13
+ constructor(private _map: Map<string, ReqLimit>) {}
14
+
15
+ toObject() {
16
+ const kubernetesForm = mapValues(this._map, (value, key) => {
17
+ const result = {} as any
18
+ if (value.request) {
19
+ result.requests = {
20
+ [key]: value.request.val
21
+ }
22
+ }
23
+ if (value.limit) {
24
+ result.limits = {
25
+ [key]: value.limit.val
26
+ }
27
+ }
28
+ if (!isEmpty(result)) {
29
+ return result
30
+ }
31
+ return undefined
32
+ })
33
+
34
+ return merge({}, ...kubernetesForm.values())
35
+ }
36
+ }
37
+
38
+ export class ResourcesSpec<const RM extends Resources_UnitMap_Trait<RM>> {
39
+ readonly _unitParsers: Map<string, Parjser<UnitValue | undefined>>
40
+ readonly _reqLimitParsers: Map<string, Parjser<ReqLimit>>
41
+ readonly _anyUnitParser = AnyUnitParser.make()
42
+ readonly _anyReqLimitParser = createResourceParser(this._anyUnitParser)
43
+ constructor(_unitMap: Map<string, UnitParser>) {
44
+ const questionMarkParser = string("?").pipe(mapConst(undefined))
45
+ this._unitParsers = mapValues(_unitMap, parser =>
46
+ parser.parser.pipe(or(questionMarkParser))
47
+ )
48
+ this._reqLimitParsers = mapValues(_unitMap, parser => createResourceParser(parser))
49
+ }
50
+
51
+ private _parseUnitValue(resource: string, input: string): UnitValue | undefined {
52
+ const pUnitValue = this._unitParsers.get(input)
53
+ if (!pUnitValue) {
54
+ throw new InstrumentsError(`No parser found for ${input}`)
55
+ }
56
+ return pUnitValue.parse(input).value
57
+ }
58
+
59
+ private _parseReqLimit(resource: string, input: string): ReqLimit {
60
+ const pReqLimit = this._reqLimitParsers.get(resource)
61
+ if (!pReqLimit) {
62
+ return this._anyReqLimitParser.parse(input).value
63
+ }
64
+ return pReqLimit.parse(input).value
65
+ }
66
+ __INPUT__!: Resources_ReqLimits_Trait<RM>
67
+
68
+ parse<const R extends Resources_ReqLimits_Trait<RM>>(input: R): Resources_Map<RM> {
69
+ const allKeys = new Set([...Object.keys(input), ...this._unitParsers.keys()])
70
+ const map = seq(allKeys)
71
+ .toMap(key => {
72
+ const getVal = () => {
73
+ const value = input[key as keyof R]
74
+ const pUnitValue = this._unitParsers.get(key) ?? this._anyUnitParser.parser
75
+ if (!pUnitValue) {
76
+ throw new InstrumentsError(`No parser found for ${String(key)}`)
77
+ }
78
+ if (!value) {
79
+ throw new InstrumentsError(`No value found for ${String(key)}`)
80
+ }
81
+
82
+ if (Array.isArray(value)) {
83
+ const [req, limit] = value.map(v => {
84
+ return pUnitValue.parse(v as any).value
85
+ })
86
+ return {
87
+ request: req,
88
+ limit: limit
89
+ }
90
+ } else if (typeof value === "string") {
91
+ return this._parseReqLimit(key as string, value)
92
+ } else {
93
+ throw new InstrumentsError(`Invalid value for resource ${String(key)}`)
94
+ }
95
+ }
96
+ return [key, getVal()] as const
97
+ })
98
+ .pull()
99
+ return new Resources_Map(map as Map<string, ReqLimit>)
100
+ }
101
+
102
+ static make<const RM extends Resources_UnitMap_Trait<RM>>(unitMap: {
103
+ [K in keyof RM]: UnitParser<RM[K]>
104
+ }) {
105
+ return new ResourcesSpec<RM>(mapFromObject(unitMap as any) as Map<string, UnitParser>)
106
+ }
107
+ }
@@ -0,0 +1,28 @@
1
+ import type { UnitValue } from "../units/unit-parser"
2
+ export type Resources_sUnitTerm<Unit extends string> = `${number}${Unit}` | "?"
3
+
4
+ export type ReqLim_Array<Unit extends string> = [
5
+ Resources_sUnitTerm<Unit>,
6
+ Resources_sUnitTerm<Unit>
7
+ ]
8
+ export type Resources_UnitMap_Trait<T> = Record<keyof T, string>
9
+ type _Spaces = "" | " " | " "
10
+ export type Resources_sToFrom<Unit extends string> =
11
+ `${Resources_sUnitTerm<Unit>}${_Spaces}->${_Spaces}${Resources_sUnitTerm<Unit>}`
12
+ export type Resources_sExactly<U extends string> = `=${Resources_sUnitTerm<U>}`
13
+ export interface ReqLimit<Unit extends string = string> {
14
+ readonly request?: UnitValue<Unit>
15
+ readonly limit?: UnitValue<Unit>
16
+ }
17
+ export type ReqLim_Input_Of<Unit extends string> =
18
+ | Resources_sToFrom<Unit>
19
+ | Resources_sExactly<Unit>
20
+ | ReqLim_Array<Unit>
21
+ type CustomResource = `${string}/${string}`
22
+
23
+ export type Resources_ReqLimits_Trait<ResourceUnit extends Resources_UnitMap_Trait<ResourceUnit>> =
24
+ {
25
+ [K in keyof ResourceUnit]: ReqLim_Input_Of<ResourceUnit[K]>
26
+ } & {
27
+ [K in CustomResource]?: ReqLim_Input_Of<string>
28
+ }
@@ -1,7 +1,6 @@
1
- import type { Set } from "immutable"
2
1
  import { int, letter, type Parjser } from "parjs"
3
2
  import { many, map, stringify, then } from "parjs/combinators"
4
- import { InstrumentsError } from "../error"
3
+ import { InstrumentsError } from "../../../error"
5
4
  const pUnit = letter().pipe(many(), stringify())
6
5
 
7
6
  const pValueUnit = int().pipe(
@@ -1,4 +1,3 @@
1
- import { Set } from "immutable"
2
1
  import { SetUnitParser } from "./unit-parser"
3
2
 
4
3
  export type G = `${number}G`
@@ -45,9 +44,9 @@ export namespace Unit {
45
44
  export type Time = m | h | d | s | ms
46
45
  export type Any = Data | Cpu | Time
47
46
 
48
- export const Cpu = SetUnitParser.make("cpu", Set(["m"]))
47
+ export const Cpu = SetUnitParser.make("cpu", new Set(["m"]))
49
48
 
50
- export const Data = SetUnitParser.make("data", Set(["M", "G", "T", "K", "Mi", "Gi", "Ki"]))
49
+ export const Data = SetUnitParser.make("data", new Set(["M", "G", "T", "K", "Mi", "Gi", "Ki"]))
51
50
 
52
- export const Time = SetUnitParser.make("time", Set(["m", "h", "d", "s", "ms"]))
51
+ export const Time = SetUnitParser.make("time", new Set(["m", "h", "d", "s", "ms"]))
53
52
  }