@k8ts/instruments 0.6.0 → 0.8.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 (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,126 +0,0 @@
1
- import { doddle, DoddleAsync } from "doddle"
2
- import { readFile } from "fs/promises"
3
- import { Map } from "immutable"
4
- import { dirname, join, resolve } from "path"
5
- import StackTracey from "stacktracey"
6
- import { InstrumentsError } from "../error"
7
- export type LocalFileMode = "text" | "binary"
8
-
9
- export interface LocalFileSourceProps<Mode extends LocalFileMode = "text"> {
10
- pointOfCall: StackTracey
11
- path: string
12
- cwd?: string
13
- mode?: Mode
14
- }
15
- export class LocalFileSource<Mode extends LocalFileMode = "text"> {
16
- constructor(private readonly _props: LocalFileSourceProps<Mode>) {}
17
-
18
- get cwd() {
19
- if (this._props.cwd) {
20
- return this._props.cwd
21
- }
22
- const where = this._props.pointOfCall.at(0)
23
- return dirname(where.file)
24
- }
25
-
26
- get path() {
27
- const where = this._props.pointOfCall.at(0)
28
- const joined = join(dirname(where.file), this._props.path)
29
- return resolve(joined)
30
- }
31
-
32
- contents = doddle(async () => {
33
- const mode = this._props.mode ?? "text"
34
- if (mode === "binary") {
35
- const data = await readFile(this.path, null)
36
- return data
37
- }
38
- return readFile(this.path, "utf-8")
39
- }) as DoddleAsync<Mode extends "text" ? string : Uint8Array>
40
- }
41
-
42
- export function localFile<Mode extends LocalFileMode = "text">(
43
- path: string,
44
- props?: Pick<LocalFileSourceProps<Mode>, "cwd" | "mode">
45
- ): LocalFileSource<Mode>
46
- export function localFile(args: TemplateStringsArray, ...params: any[]): LocalFileSource<"text">
47
- export function localFile(args: any, ...params: any[]) {
48
- if (typeof args === "string") {
49
- const options = params[0] ?? {}
50
- return new LocalFileSource({
51
- pointOfCall: new StackTracey().slice(1),
52
- path: args,
53
- ...(options ?? {})
54
- })
55
- }
56
- const path = String.raw(args, ...params)
57
- return new LocalFileSource({
58
- pointOfCall: new StackTracey().slice(1),
59
- path
60
- })
61
- }
62
-
63
- export interface TypedArrayLike {
64
- buffer: ArrayBuffer
65
- byteLength: number
66
- }
67
- export type DataSource_Text = LocalFileSource<"text"> | string
68
- export type DataSource_Binary = LocalFileSource<"binary"> | TypedArrayLike | ArrayBuffer
69
- export type DataSourceRecord_Text = Record<string, DataSource_Text>
70
- export type DataSourceRecord_Binary = Record<string, DataSource_Binary>
71
- export type DataSourceRecord = DataSourceRecord_Text | DataSourceRecord_Binary
72
- export function isTypedArray(data: DataSource_Binary): data is TypedArrayLike {
73
- return (
74
- typeof data === "object" &&
75
- "buffer" in data &&
76
- "byteSize" in data &&
77
- typeof data.byteSize === "number"
78
- )
79
- }
80
- export function isArrayBuffer(data: DataSource_Binary): data is ArrayBuffer {
81
- return data instanceof ArrayBuffer
82
- }
83
- export interface DataSourceResolvedRecord {
84
- data: Record<string, string>
85
- binaryData: Record<string, Uint8Array>
86
- }
87
- type MaybePromise<T> = T | Promise<T>
88
- async function promiseAllMap<K, V>(m: Map<K, MaybePromise<V>>) {
89
- const promises = m.toArray().map(async x => [x[0], await x[1]] as [K, V])
90
- const res = await Promise.all(promises)
91
- return Map(res)
92
- }
93
- export async function resolveText(record: DataSourceRecord_Text) {
94
- const mp = Map(record).map(async (v, k) => {
95
- let resolved = v
96
- if (v instanceof LocalFileSource) {
97
- resolved = await v.contents.pull()
98
- }
99
- if (typeof resolved !== "string") {
100
- throw new InstrumentsError(
101
- `Got an invalid data value ${v} for key ${k}. Must be a string.`
102
- )
103
- }
104
- return resolved
105
- })
106
- return promiseAllMap(mp)
107
- }
108
- export async function resolveBinary(record: DataSourceRecord_Binary) {
109
- const mp = Map(record).map(async (v, k) => {
110
- let resolved = v
111
- if (v instanceof LocalFileSource) {
112
- resolved = await v.contents.pull()
113
- }
114
- if (isTypedArray(resolved)) {
115
- return new Uint8Array(resolved.buffer)
116
- } else if (isArrayBuffer(resolved)) {
117
- return new Uint8Array(resolved)
118
- } else {
119
- throw new InstrumentsError(
120
- `Got an invalid data value ${v} for key ${k}. Must be binary data.`
121
- )
122
- }
123
- })
124
-
125
- return promiseAllMap(mp)
126
- }
@@ -1,157 +0,0 @@
1
- import { seq } from "doddle"
2
- import { ProxyOperationError } from "../error"
3
- import { ResourceEntity } from "../graph"
4
- import { Origin } from "../graph/origin-node"
5
- import type { LiveRefable } from "../reference"
6
- import { ForwardRef } from "../reference"
7
-
8
- export type FutureExports<Exps extends LiveRefable> = FutureExports.FutureExports<Exps>
9
- export namespace FutureExports {
10
- export type FutureExports<Exps extends LiveRefable> = _ExportsByKey<Exps>
11
- type _ExportsByKey<Exports extends LiveRefable = LiveRefable> = {
12
- [E in Exports as `${E["kind"]["name"]}/${E["name"]}`]: ForwardRef<E>
13
- }
14
- export interface Props<
15
- Actual extends object = object,
16
- Exports extends LiveRefable = LiveRefable
17
- > {
18
- readonly origin: Origin
19
- readonly actual: Actual
20
- readonly exports: Iterable<Exports>
21
- }
22
-
23
- export function make<T extends LiveRefable, Actual extends object>(
24
- props: Props<Actual, T>
25
- ): Actual & FutureExports<LiveRefable> {
26
- const handler = new Handler(props)
27
- return new Proxy(props.actual, handler) as any
28
- }
29
- class Handler implements ProxyHandler<object> {
30
- constructor(private readonly _props: Props) {}
31
-
32
- #createImmutableError(action: string) {
33
- return new ProxyOperationError(
34
- `Tried to ${action} an the exports constructs of ${this._props.origin}, but it is immutable.`
35
- )
36
- }
37
-
38
- defineProperty(_: object, property: string | symbol, __: PropertyDescriptor): boolean {
39
- throw this.#createImmutableError(`define property ${String(property)} on`)
40
- }
41
-
42
- deleteProperty(_: object, property: string | symbol): boolean {
43
- throw this.#createImmutableError(`delete property ${String(property)} from`)
44
- }
45
-
46
- getPrototypeOf(_: Iterable<LiveRefable>): object | null {
47
- return Reflect.getPrototypeOf(this._target)
48
- }
49
-
50
- get seq() {
51
- return seq(this._props.exports)
52
- }
53
-
54
- #isValidReferant(prop: PropertyKey) {
55
- return this._props.origin.resourceKinds.tryParse(prop as string) != null
56
- }
57
-
58
- get _target() {
59
- return this._props.actual
60
- }
61
-
62
- get(target: any, property: string | symbol): any {
63
- const key = property as string
64
- if (Reflect.has(this._target, key)) {
65
- const x = Reflect.get(this._target, property)
66
- if (typeof x === "function") {
67
- return x.bind(this._target)
68
- }
69
- return x
70
- }
71
-
72
- const refKey = this._props.origin.resourceKinds.tryParse(key)
73
- if (refKey == null) {
74
- return undefined
75
- }
76
- const cls = this._props.origin.resourceKinds.getClass(refKey)
77
- return ForwardRef.make({
78
- class: cls,
79
- key: refKey,
80
- origin: this._props.origin,
81
- namespace: this._props.origin.meta.tryGet("namespace"),
82
- resolver: this.seq
83
- .as<ResourceEntity>()
84
- .first(exp => exp.node.key.equals(refKey))
85
- .map(x => {
86
- if (x == null) {
87
- throw new ProxyOperationError(
88
- `Failed to resolve forward reference to ${refKey} in ${this._props.origin}.`
89
- )
90
- }
91
- return x
92
- })
93
- })
94
- }
95
-
96
- has(_: Iterable<LiveRefable>, p: string | symbol): boolean {
97
- if (Reflect.has(this._target, p)) {
98
- return true
99
- }
100
- if (!this.#isValidReferant(p)) {
101
- return false
102
- }
103
- return true
104
- }
105
-
106
- isExtensible(target: Iterable<LiveRefable>): boolean {
107
- return false
108
- }
109
-
110
- preventExtensions(target: Iterable<LiveRefable>): boolean {
111
- return true
112
- }
113
-
114
- ownKeys(target: Iterable<LiveRefable>): ArrayLike<string | symbol> {
115
- throw new ProxyOperationError(
116
- `Cannot list all keys of a dynamic exports construct for ${this._props.origin}.`
117
- )
118
- }
119
-
120
- set(
121
- target: Iterable<LiveRefable>,
122
- p: string | symbol,
123
- newValue: any,
124
- receiver: any
125
- ): boolean {
126
- throw this.#createImmutableError(`set property ${String(p)} on`)
127
- }
128
-
129
- setPrototypeOf(target: Iterable<LiveRefable>, v: any): boolean {
130
- throw this.#createImmutableError(`set prototype of`)
131
- }
132
-
133
- _tryTargetDescriptor(p: PropertyKey) {
134
- return Object.getOwnPropertyDescriptor(this._target, p)
135
- }
136
-
137
- getOwnPropertyDescriptor(
138
- target: Iterable<LiveRefable>,
139
- p: string | symbol
140
- ): PropertyDescriptor | undefined {
141
- const desc = this._tryTargetDescriptor(p)
142
- if (desc) {
143
- return desc
144
- }
145
- const value = this.get(this._target, p)
146
- if (value == null) {
147
- return undefined
148
- }
149
- return {
150
- configurable: false,
151
- enumerable: true,
152
- value,
153
- writable: false
154
- }
155
- }
156
- }
157
- }
@@ -1 +0,0 @@
1
- export * from "./delayed-exports"
@@ -1,135 +0,0 @@
1
- import { Seq, seq } from "doddle"
2
- import { hash, Set } from "immutable"
3
- import { Kind } from "../api-kind"
4
- import { RefKey } from "../ref-key"
5
- import { ForwardRef } from "../reference"
6
- import { Relation } from "./dependencies"
7
-
8
- export interface BaseEntity<Node extends BaseNode<Node>> {
9
- readonly node: Node
10
-
11
- readonly kind: Kind.Identifier
12
- readonly name: string
13
- }
14
-
15
- export abstract class BaseNode<
16
- Node extends BaseNode<Node, Entity>,
17
- Entity extends BaseEntity<Node> = BaseEntity<Node>
18
- > {
19
- private _eqProxy = {}
20
- abstract readonly key: RefKey
21
- get kind() {
22
- return this.key.kind
23
- }
24
-
25
- abstract readonly kids: Seq<Node>
26
- abstract readonly relations: Seq<Relation<Node>>
27
- abstract readonly parent: Node | null
28
- protected get _asNode() {
29
- return this as any as Node
30
- }
31
-
32
- constructor(readonly _entity: Entity) {}
33
-
34
- get shortFqn() {
35
- return `${this.kind.name}/${this.name}`
36
- }
37
-
38
- get root(): Node {
39
- return (this.ancestors.at(-1).pull() as any) ?? (this as any)
40
- }
41
- get name() {
42
- return this.key.name
43
- }
44
- get isRoot() {
45
- return this.parent === null && this._entity.kind.name !== "PodTemplate"
46
- }
47
-
48
- hashCode() {
49
- return hash(this._eqProxy)
50
- }
51
- equals(other: any) {
52
- if (ForwardRef.is(other)) {
53
- return other.equals(this)
54
- }
55
- return this === other
56
- }
57
-
58
- readonly ancestors = seq(() => {
59
- const seen = Set<Node>()
60
- const recurse = function* (from: Node): Iterable<Node> {
61
- const parent = from.parent
62
- if (parent && !seen.has(parent)) {
63
- seen.add(parent)
64
- yield parent
65
- yield* recurse(parent)
66
- }
67
- }
68
- return seq(recurse.bind(null, this._asNode))
69
- }).cache()
70
-
71
- readonly descendants = seq(() => {
72
- const self = this
73
- let seen = Set<Node>()
74
- const recurse = function* (from: Node): Iterable<Node> {
75
- for (const kid of from.kids) {
76
- if (seen.has(kid)) {
77
- continue
78
- }
79
- seen = seen.add(kid)
80
- yield kid
81
- yield* recurse(kid)
82
- }
83
- }
84
- return seq(recurse.bind(null, self._asNode))
85
- }).cache()
86
-
87
- isParentOf(other: Node): boolean {
88
- if (ForwardRef.is(other)) {
89
- return other.isChildOf(this._asNode)
90
- }
91
- return Set(this.descendants).has(other)
92
- }
93
-
94
- isChildOf(other: Node): boolean {
95
- if (ForwardRef.is(other)) {
96
- return other.isParentOf(this._asNode)
97
- }
98
- return this.equals(other) || Set(this.ancestors).has(other._asNode)
99
- }
100
-
101
- hasRelationTo(other: Node): boolean {
102
- return this.recursiveRelations.some(x => x.needed.equals(other)).pull()
103
- }
104
-
105
- readonly recursiveRelationsSubtree = seq((): Seq<Relation<Node>> => {
106
- const self = this
107
- return seq(function* () {
108
- for (const child of [self, ...self.descendants] as Node[]) {
109
- yield* child.recursiveRelations
110
- }
111
- }) as any
112
- })
113
-
114
- readonly recursiveRelations = seq(() => {
115
- let resources = Set<Node>()
116
- const recurseIntoDependency = function* (root: Relation<Node>): Iterable<Relation<Node>> {
117
- yield root
118
- if (resources.has(root.needed)) {
119
- return
120
- }
121
- resources = resources.add(root.needed)
122
-
123
- const ownDeps = root.needed.relations
124
- for (const needsEdge of ownDeps) {
125
- yield* recurseIntoDependency(needsEdge)
126
- }
127
- }
128
- return seq(recurseIntoDependency.bind(null, new Relation<Node>("self", this._asNode)))
129
- .after(() => {
130
- resources = Set()
131
- })
132
- .cache()
133
- })
134
- }
135
- export type Formats = "local" | "source" | undefined
@@ -1,44 +0,0 @@
1
- import { Meta } from "@k8ts/metadata"
2
- import chalk from "chalk"
3
- import { doddle, Doddle } from "doddle"
4
- import { Kind } from "../api-kind"
5
- import { displayers } from "../displayers"
6
- import { RefKey } from "../ref-key"
7
- import { Origin, OriginEntity } from "./origin-node"
8
- export interface OriginEntityProps {
9
- meta?: Meta.Input
10
- alias?: string
11
- }
12
- @displayers({
13
- simple: x => `[${x.shortFqn}]`,
14
- pretty(origin) {
15
- const kindPart = chalk.greenBright.bold(origin.kind.name)
16
- const originName = chalk.cyan(origin.name)
17
- return `${kindPart}/${originName}`
18
- }
19
- })
20
- export abstract class BaseOriginEntity<Props extends OriginEntityProps = OriginEntityProps>
21
- implements OriginEntity
22
- {
23
- abstract readonly kind: Kind.Kind
24
- #node: Doddle<Origin>
25
-
26
- meta: Meta
27
- get alias() {
28
- return this.props.alias ?? undefined
29
- }
30
- get node() {
31
- return this.#node.pull()
32
- }
33
- constructor(
34
- readonly name: string,
35
- readonly props: Props,
36
- parent: Origin | null
37
- ) {
38
- this.#node = doddle(() => new Origin(parent, this, RefKey.make(this.kind, name)))
39
- this.meta = Meta.make(props.meta)
40
- }
41
- get shortFqn() {
42
- return this.node.shortFqn
43
- }
44
- }
@@ -1,30 +0,0 @@
1
- import { pretty } from "../_string"
2
- import { displayers } from "../displayers"
3
- import { BaseNode } from "./base-node"
4
- import { ResourceEntity } from "./resource-node"
5
-
6
- export namespace Dependencies {
7
- export type Input = Record<string, ResourceEntity | undefined>
8
- }
9
- export function dependencies(record: Dependencies.Input) {
10
- return Object.entries(record)
11
- .map(([key, value]) => {
12
- if (value) {
13
- return new Relation(key, value.node)
14
- }
15
- })
16
- .filter(x => !!x)
17
- }
18
- @displayers({
19
- simple: s => [s.why, "-->", s.needed],
20
- pretty: (dep, format) => {
21
- const neededFmt = pretty`${["lowkey", dep.needed]}`
22
- return [dep.why, neededFmt].join("➜ ")
23
- }
24
- })
25
- export class Relation<Node extends BaseNode<Node>> {
26
- constructor(
27
- readonly why: string,
28
- readonly needed: Node
29
- ) {}
30
- }
@@ -1,6 +0,0 @@
1
- export * from "./base-node"
2
- export * from "./base-origin-entity"
3
- export * from "./dependencies"
4
- export * from "./origin-node"
5
- export * from "./relations"
6
- export * from "./resource-node"
@@ -1,122 +0,0 @@
1
- import { Meta } from "@k8ts/metadata"
2
- import chalk from "chalk"
3
- import { doddle, seq, Seq } from "doddle"
4
- import StackTracey from "stacktracey"
5
- import { getMarkerForExternal, getMarkerForIndex } from "../_string"
6
- import { displayers } from "../displayers"
7
- import { KindMap } from "../kind-map"
8
- import { RefKey } from "../ref-key"
9
- import { TraceEmbedder } from "../tracing"
10
- import { Trace } from "../tracing/trace"
11
- import { BaseEntity, BaseNode } from "./base-node"
12
- import { ResourceNode } from "./resource-node"
13
- @displayers({
14
- simple: s => `[${s.shortFqn}]`,
15
- prefix: s => {
16
- if (s.name === "EXTERNAL") {
17
- return getMarkerForExternal()
18
- }
19
- return getMarkerForIndex(s.index)
20
- },
21
- pretty(origin, format) {
22
- const kindName = chalk.greenBright.bold(origin.kind.name)
23
- const resourceName = chalk.cyan(origin.name)
24
- const pref = this.prefix!()
25
-
26
- return chalk.underline(`${pref}${kindName}:${resourceName}`)
27
- }
28
- })
29
- export class Origin extends BaseNode<Origin, OriginEntity> implements Iterable<ResourceNode> {
30
- private _kids = [] as Origin[]
31
- get kids() {
32
- return seq(this._kids)
33
- }
34
- get meta() {
35
- return this._entity.meta
36
- }
37
- readonly index: number
38
- private readonly _getIndex = doddle(() => {
39
- let index = 1
40
- return () => index++
41
- }).pull()
42
- constructor(
43
- readonly parent: Origin | null,
44
- entity: OriginEntity,
45
- readonly key: RefKey
46
- ) {
47
- super(entity)
48
- this.index = parent?._getIndex() ?? 0
49
- this._kindMap = new KindMap(undefined, parent?._kindMap)
50
- }
51
- get resourceKinds() {
52
- return this._kindMap
53
- }
54
- private _kindMap: KindMap
55
- private _attached = [] as ResourceNode[]
56
-
57
- get relations() {
58
- return seq.empty()
59
- }
60
- [Symbol.iterator]() {
61
- return this.resources[Symbol.iterator]()
62
- }
63
- readonly attachedTree: Seq<ResourceNode> = seq(() => {
64
- const self = this
65
- const desc = self.descendants
66
- .concatFirst([this])
67
- .map(x => x)
68
- .concatMap(function* (x) {
69
- yield* self.resources
70
- for (const kid of self.kids) {
71
- yield* kid.resources
72
- }
73
- })
74
- return desc
75
- }).cache()
76
-
77
- get resources() {
78
- return this._attached
79
- }
80
-
81
- static registerWithOrigin<F extends Function>(ctor: F) {
82
- const prototype = ctor.prototype
83
- for (const key of Object.getOwnPropertyNames(prototype)) {
84
- const value = prototype[key]
85
- if (!key.match(/^[A-Z]/) || typeof value !== "function") {
86
- continue
87
- }
88
- const orig = prototype[key]
89
- prototype[key] = {
90
- [key](this: any, ...args: any[]) {
91
- const result = orig.apply(this, args) as BaseEntity<any>
92
- if (
93
- typeof result === "object" &&
94
- "node" in result &&
95
- result.node instanceof ResourceNode
96
- ) {
97
- result.node.origin.__attach_resource__([result.node])
98
- TraceEmbedder.set(result.node, new Trace(new StackTracey().slice(1)))
99
- }
100
- return result
101
- }
102
- }[key]
103
- }
104
- }
105
-
106
- private __attach_child__(child: Origin) {
107
- this._kids.push(child)
108
- }
109
-
110
- private __attach_resource__(resources: ResourceNode | Iterable<ResourceNode>) {
111
- resources = Symbol.iterator in resources ? resources : [resources]
112
- for (const resource of resources) {
113
- this._attached.push(resource)
114
- }
115
- }
116
- }
117
- export interface OriginEntity extends BaseEntity<Origin> {
118
- alias?: string
119
- meta: Meta
120
- }
121
-
122
- export const auto_register = Origin.registerWithOrigin
@@ -1,62 +0,0 @@
1
- import { Embedder } from "../_embedder/base"
2
- import { Dependencies, dependencies, Relation } from "./dependencies"
3
- import { ResourceEntity, ResourceNode } from "./resource-node"
4
-
5
- export namespace Relations {
6
- export interface Out {
7
- needs: () => Iterable<Relation<ResourceNode>>
8
- parent: () => ResourceNode | null
9
- kids: () => ResourceNode[]
10
- }
11
-
12
- export type In<Target extends ResourceEntity = ResourceEntity> = {
13
- needs: (self: Target) => Dependencies.Input
14
- parent: (self: Target) => ResourceEntity | null
15
- kids: (self: Target) => ResourceEntity[]
16
- } & {
17
- [key: string]: (self: Target, ...args: any[]) => any
18
- }
19
- }
20
-
21
- class RelationsService {
22
- private _system = new Embedder<ResourceEntity, Relations.In>("relations")
23
-
24
- implement(
25
- ctor: abstract new (...args: any[]) => ResourceEntity,
26
- input: Relations.In<ResourceEntity>
27
- ) {
28
- const existing = this._system.tryGet(ctor.prototype)
29
- if (existing) {
30
- input = Object.assign({}, existing, input)
31
- }
32
- this._system.set(ctor.prototype, input)
33
- }
34
-
35
- get(target: ResourceEntity): Relations.Out {
36
- const input = this._system.get(target)
37
- const o = {
38
- kids: () => input.kids?.call(o, target).map(x => x.node) ?? [],
39
- parent: () => input.parent?.call(o, target)?.node ?? null,
40
- needs: () => dependencies(input.needs?.call(o, target) ?? {})
41
- }
42
- return o
43
- }
44
-
45
- get decorator() {
46
- return <
47
- Target extends abstract new (...args: any[]) => ResourceEntity,
48
- Impl extends Partial<Relations.In<InstanceType<Target>>> | "none"
49
- >(
50
- input: Impl
51
- ) => {
52
- return (ctor: Target) => {
53
- this.implement(ctor, input === "none" ? {} : (input as any))
54
- return ctor
55
- }
56
- }
57
- }
58
- }
59
- export const Relations = new RelationsService()
60
- export const relations = Relations.decorator
61
-
62
- // writing the decorator itself