@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.
- package/dist/core/graph/entity.d.ts +13 -0
- package/dist/core/graph/entity.d.ts.map +1 -0
- package/dist/core/graph/entity.js +27 -0
- package/dist/core/graph/entity.js.map +1 -0
- package/dist/core/graph/index.d.ts +6 -0
- package/dist/core/graph/index.d.ts.map +1 -0
- package/dist/core/graph/index.js +26 -0
- package/dist/core/graph/index.js.map +1 -0
- package/dist/core/graph/node.d.ts +24 -0
- package/dist/core/graph/node.d.ts.map +1 -0
- package/dist/core/graph/node.js +131 -0
- package/dist/core/graph/node.js.map +1 -0
- package/dist/core/graph/origin/entity.d.ts +32 -0
- package/dist/core/graph/origin/entity.d.ts.map +1 -0
- package/dist/core/graph/origin/entity.js +149 -0
- package/dist/core/graph/origin/entity.js.map +1 -0
- package/dist/core/graph/origin/events.d.ts +41 -0
- package/dist/core/graph/origin/events.d.ts.map +1 -0
- package/dist/core/graph/origin/events.js +46 -0
- package/dist/core/graph/origin/events.js.map +1 -0
- package/dist/core/graph/origin/exporter.d.ts +13 -0
- package/dist/core/graph/origin/exporter.d.ts.map +1 -0
- package/dist/core/graph/origin/exporter.js +94 -0
- package/dist/core/graph/origin/exporter.js.map +1 -0
- package/dist/core/graph/origin/index.d.ts +7 -0
- package/dist/core/graph/origin/index.d.ts.map +1 -0
- package/dist/core/graph/origin/index.js +23 -0
- package/dist/core/graph/origin/index.js.map +1 -0
- package/dist/core/graph/origin/kind-map/index.d.ts +36 -0
- package/dist/core/graph/origin/kind-map/index.d.ts.map +1 -0
- package/dist/core/graph/origin/kind-map/index.js +195 -0
- package/dist/core/graph/origin/kind-map/index.js.map +1 -0
- package/dist/core/graph/origin/node.d.ts +23 -0
- package/dist/core/graph/origin/node.d.ts.map +1 -0
- package/dist/{graph/origin-node.js → core/graph/origin/node.js} +33 -78
- package/dist/core/graph/origin/node.js.map +1 -0
- package/dist/core/graph/origin/origin-events.d.ts +41 -0
- package/dist/core/graph/origin/origin-events.d.ts.map +1 -0
- package/dist/core/graph/origin/origin-events.js +46 -0
- package/dist/core/graph/origin/origin-events.js.map +1 -0
- package/dist/core/graph/origin/tracker.d.ts +19 -0
- package/dist/core/graph/origin/tracker.d.ts.map +1 -0
- package/dist/core/graph/origin/tracker.js +87 -0
- package/dist/core/graph/origin/tracker.js.map +1 -0
- package/dist/core/graph/relation.d.ts +7 -0
- package/dist/core/graph/relation.d.ts.map +1 -0
- package/dist/{graph/dependencies.js → core/graph/relation.js} +3 -13
- package/dist/core/graph/relation.js.map +1 -0
- package/dist/core/graph/resource/api-kind/index.d.ts +57 -0
- package/dist/core/graph/resource/api-kind/index.d.ts.map +1 -0
- package/dist/{api-kind → core/graph/resource/api-kind}/index.js +35 -15
- package/dist/core/graph/resource/api-kind/index.js.map +1 -0
- package/dist/core/graph/resource/api-kind/pluralize.d.ts +19 -0
- package/dist/core/graph/resource/api-kind/pluralize.d.ts.map +1 -0
- package/dist/core/graph/resource/api-kind/pluralize.js +13 -0
- package/dist/core/graph/resource/api-kind/pluralize.js.map +1 -0
- package/dist/core/graph/resource/child.d.ts +10 -0
- package/dist/core/graph/resource/child.d.ts.map +1 -0
- package/dist/core/graph/resource/child.js +22 -0
- package/dist/core/graph/resource/child.js.map +1 -0
- package/dist/core/graph/resource/entity.d.ts +21 -0
- package/dist/core/graph/resource/entity.d.ts.map +1 -0
- package/dist/{graph/base-origin-entity.js → core/graph/resource/entity.js} +37 -34
- package/dist/core/graph/resource/entity.js.map +1 -0
- package/dist/core/graph/resource/index.d.ts +8 -0
- package/dist/core/graph/resource/index.d.ts.map +1 -0
- package/dist/core/graph/resource/index.js +24 -0
- package/dist/core/graph/resource/index.js.map +1 -0
- package/dist/core/graph/resource/node.d.ts +29 -0
- package/dist/core/graph/resource/node.d.ts.map +1 -0
- package/dist/{graph/resource-node.js → core/graph/resource/node.js} +23 -31
- package/dist/core/graph/resource/node.js.map +1 -0
- package/dist/core/graph/resource/ref-key/index.d.ts.map +1 -0
- package/dist/core/graph/resource/ref-key/index.js.map +1 -0
- package/dist/core/graph/resource/ref-key/ref-key.d.ts +18 -0
- package/dist/core/graph/resource/ref-key/ref-key.d.ts.map +1 -0
- package/dist/core/graph/resource/ref-key/ref-key.js +58 -0
- package/dist/core/graph/resource/ref-key/ref-key.js.map +1 -0
- package/dist/core/graph/resource/reference/error.d.ts +5 -0
- package/dist/core/graph/resource/reference/error.d.ts.map +1 -0
- package/dist/core/graph/resource/reference/error.js +11 -0
- package/dist/core/graph/resource/reference/error.js.map +1 -0
- package/dist/core/graph/resource/reference/fw-ref-exports.d.ts +15 -0
- package/dist/core/graph/resource/reference/fw-ref-exports.d.ts.map +1 -0
- package/dist/core/graph/resource/reference/fw-ref-exports.js +133 -0
- package/dist/core/graph/resource/reference/fw-ref-exports.js.map +1 -0
- package/dist/core/graph/resource/reference/fw-ref.d.ts +25 -0
- package/dist/core/graph/resource/reference/fw-ref.d.ts.map +1 -0
- package/dist/core/graph/resource/reference/fw-ref.js +105 -0
- package/dist/core/graph/resource/reference/fw-ref.js.map +1 -0
- package/dist/core/graph/resource/reference/index.d.ts +4 -0
- package/dist/core/graph/resource/reference/index.d.ts.map +1 -0
- package/dist/core/graph/resource/reference/index.js +8 -0
- package/dist/core/graph/resource/reference/index.js.map +1 -0
- package/dist/core/graph/resource/reference/refable.d.ts +17 -0
- package/dist/core/graph/resource/reference/refable.d.ts.map +1 -0
- package/dist/core/graph/resource/reference/refable.js.map +1 -0
- package/dist/core/graph/resource/top.d.ts +18 -0
- package/dist/core/graph/resource/top.d.ts.map +1 -0
- package/dist/core/graph/resource/top.js +59 -0
- package/dist/core/graph/resource/top.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +21 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/manifest/index.d.ts +31 -0
- package/dist/core/manifest/index.d.ts.map +1 -0
- package/dist/core/manifest/index.js +6 -0
- package/dist/core/manifest/index.js.map +1 -0
- package/dist/{tracing → core/tracing}/git.d.ts +2 -1
- package/dist/core/tracing/git.d.ts.map +1 -0
- package/dist/{tracing → core/tracing}/git.js +20 -3
- package/dist/core/tracing/git.js.map +1 -0
- package/dist/core/tracing/index.d.ts.map +1 -0
- package/dist/core/tracing/index.js.map +1 -0
- package/dist/core/tracing/trace.d.ts.map +1 -0
- package/dist/core/tracing/trace.js.map +1 -0
- package/dist/{tracing → core/tracing}/traced.d.ts +1 -1
- package/dist/core/tracing/traced.d.ts.map +1 -0
- package/dist/core/tracing/traced.js +6 -0
- package/dist/core/tracing/traced.js.map +1 -0
- package/dist/error.d.ts +0 -3
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +1 -7
- package/dist/error.js.map +1 -1
- package/dist/{data-sources → expressions/data-sources}/index.d.ts +8 -9
- package/dist/expressions/data-sources/index.d.ts.map +1 -0
- package/dist/{data-sources → expressions/data-sources}/index.js +52 -34
- package/dist/expressions/data-sources/index.js.map +1 -0
- package/dist/expressions/index.d.ts +6 -0
- package/dist/expressions/index.d.ts.map +1 -0
- package/dist/{manifest → expressions}/index.js +5 -4
- package/dist/expressions/index.js.map +1 -0
- package/dist/expressions/network/index.d.ts +2 -0
- package/dist/expressions/network/index.d.ts.map +1 -0
- package/dist/{producer → expressions/network}/index.js +1 -1
- package/dist/expressions/network/index.js.map +1 -0
- package/dist/expressions/network/ip/index.d.ts.map +1 -0
- package/dist/expressions/network/ip/index.js.map +1 -0
- package/dist/expressions/network/ports/error.d.ts.map +1 -0
- package/dist/expressions/network/ports/error.js.map +1 -0
- package/dist/{ports → expressions/network/ports}/index.d.ts +1 -1
- package/dist/expressions/network/ports/index.d.ts.map +1 -0
- package/dist/expressions/network/ports/index.js.map +1 -0
- package/dist/{ports → expressions/network/ports}/map.d.ts +0 -1
- package/dist/expressions/network/ports/map.d.ts.map +1 -0
- package/dist/{ports → expressions/network/ports}/map.js +3 -2
- package/dist/expressions/network/ports/map.js.map +1 -0
- package/dist/{ports → expressions/network/ports}/set.d.ts +0 -1
- package/dist/expressions/network/ports/set.d.ts.map +1 -0
- package/dist/{ports → expressions/network/ports}/set.js +8 -7
- package/dist/expressions/network/ports/set.js.map +1 -0
- package/dist/{ports → expressions/network/ports}/tools/entry.d.ts +0 -1
- package/dist/expressions/network/ports/tools/entry.d.ts.map +1 -0
- package/dist/{ports → expressions/network/ports}/tools/entry.js +7 -5
- package/dist/expressions/network/ports/tools/entry.js.map +1 -0
- package/dist/expressions/network/ports/tools/parse.d.ts.map +1 -0
- package/dist/expressions/network/ports/tools/parse.js.map +1 -0
- package/dist/{ports → expressions/network/ports}/types.d.ts +1 -1
- package/dist/expressions/network/ports/types.d.ts.map +1 -0
- package/dist/expressions/network/ports/types.js.map +1 -0
- package/dist/expressions/quantities/index.d.ts +3 -0
- package/dist/expressions/quantities/index.d.ts.map +1 -0
- package/dist/{forward-exports → expressions/quantities}/index.js +2 -1
- package/dist/expressions/quantities/index.js.map +1 -0
- package/dist/expressions/quantities/reqlem/index.d.ts.map +1 -0
- package/dist/expressions/quantities/reqlem/index.js.map +1 -0
- package/dist/{resources → expressions/quantities/reqlem}/objects.d.ts +6 -7
- package/dist/expressions/quantities/reqlem/objects.d.ts.map +1 -0
- package/dist/expressions/quantities/reqlem/objects.js +103 -0
- package/dist/expressions/quantities/reqlem/objects.js.map +1 -0
- package/dist/expressions/quantities/reqlem/parser.d.ts.map +1 -0
- package/dist/expressions/quantities/reqlem/parser.js.map +1 -0
- package/dist/expressions/quantities/reqlem/types.d.ts +23 -0
- package/dist/expressions/quantities/reqlem/types.d.ts.map +1 -0
- package/dist/expressions/quantities/reqlem/types.js.map +1 -0
- package/dist/expressions/quantities/units/index.d.ts.map +1 -0
- package/dist/expressions/quantities/units/index.js.map +1 -0
- package/dist/{units → expressions/quantities/units}/unit-parser.d.ts +0 -1
- package/dist/expressions/quantities/units/unit-parser.d.ts.map +1 -0
- package/dist/{units → expressions/quantities/units}/unit-parser.js +1 -1
- package/dist/expressions/quantities/units/unit-parser.js.map +1 -0
- package/dist/{units → expressions/quantities/units}/units.d.ts +1 -1
- package/dist/expressions/quantities/units/units.d.ts.map +1 -0
- package/dist/{units → expressions/quantities/units}/units.js +3 -4
- package/dist/expressions/quantities/units/units.js.map +1 -0
- package/dist/expressions/timezone.d.ts.map +1 -0
- package/dist/{timezone.js.map → expressions/timezone.js.map} +1 -1
- package/dist/expressions/workload/_user/index.d.ts.map +1 -0
- package/dist/expressions/workload/_user/index.js.map +1 -0
- package/dist/{cmd → expressions/workload/cmd}/cli-command.d.ts +7 -8
- package/dist/expressions/workload/cmd/cli-command.d.ts.map +1 -0
- package/dist/{cmd → expressions/workload/cmd}/cli-command.js +15 -11
- package/dist/expressions/workload/cmd/cli-command.js.map +1 -0
- package/dist/{cmd → expressions/workload/cmd}/cli-term.d.ts +7 -7
- package/dist/expressions/workload/cmd/cli-term.d.ts.map +1 -0
- package/dist/{cmd → expressions/workload/cmd}/cli-term.js +12 -12
- package/dist/expressions/workload/cmd/cli-term.js.map +1 -0
- package/dist/expressions/workload/cmd/index.d.ts +3 -0
- package/dist/expressions/workload/cmd/index.d.ts.map +1 -0
- package/dist/expressions/workload/cmd/index.js.map +1 -0
- package/dist/expressions/workload/cmd/types.d.ts +5 -0
- package/dist/expressions/workload/cmd/types.d.ts.map +1 -0
- package/dist/expressions/workload/cmd/types.js.map +1 -0
- package/dist/expressions/workload/cronjob/index.d.ts.map +1 -0
- package/dist/{_cronjob → expressions/workload/cronjob}/index.js +1 -1
- package/dist/expressions/workload/cronjob/index.js.map +1 -0
- package/dist/expressions/workload/cronjob/types.d.ts.map +1 -0
- package/dist/expressions/workload/cronjob/types.js.map +1 -0
- package/dist/expressions/workload/image/family.d.ts.map +1 -0
- package/dist/{image → expressions/workload/image}/family.js +1 -1
- package/dist/expressions/workload/image/family.js.map +1 -0
- package/dist/expressions/workload/image/index.d.ts.map +1 -0
- package/dist/expressions/workload/image/index.js.map +1 -0
- package/dist/expressions/workload/index.d.ts +5 -0
- package/dist/expressions/workload/index.d.ts.map +1 -0
- package/dist/expressions/workload/index.js +21 -0
- package/dist/expressions/workload/index.js.map +1 -0
- package/dist/index.d.ts +4 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -21
- package/dist/index.js.map +1 -1
- package/dist/utils/_string/index.d.ts.map +1 -0
- package/dist/utils/_string/index.js.map +1 -0
- package/dist/utils/_string/markers.d.ts.map +1 -0
- package/dist/utils/_string/markers.js.map +1 -0
- package/dist/utils/_string/post-processor.d.ts.map +1 -0
- package/dist/utils/_string/post-processor.js.map +1 -0
- package/dist/utils/_string/pretty-objects.d.ts.map +1 -0
- package/dist/utils/_string/pretty-objects.js.map +1 -0
- package/dist/utils/_string/pretty-print.d.ts.map +1 -0
- package/dist/utils/_string/pretty-print.js.map +1 -0
- package/dist/utils/_string/super-script.d.ts.map +1 -0
- package/dist/utils/_string/super-script.js.map +1 -0
- package/dist/utils/bind.d.ts +3 -0
- package/dist/utils/bind.d.ts.map +1 -0
- package/dist/{displayers → utils}/bind.js +2 -3
- package/dist/utils/bind.js.map +1 -0
- package/dist/{displayers → utils/displayers}/displayers.d.ts +2 -10
- package/dist/utils/displayers/displayers.d.ts.map +1 -0
- package/dist/{displayers → utils/displayers}/displayers.js +27 -8
- package/dist/utils/displayers/displayers.js.map +1 -0
- package/dist/utils/displayers/index.d.ts.map +1 -0
- package/dist/utils/displayers/index.js.map +1 -0
- package/dist/{_embedder → utils/embedder}/base.d.ts +2 -1
- package/dist/utils/embedder/base.d.ts.map +1 -0
- package/dist/{_embedder → utils/embedder}/base.js +8 -4
- package/dist/utils/embedder/base.js.map +1 -0
- package/dist/utils/embedder/index.d.ts.map +1 -0
- package/dist/utils/embedder/index.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +16 -16
- package/src/core/graph/entity.ts +35 -0
- package/src/core/graph/index.ts +5 -0
- package/src/core/graph/node.ts +139 -0
- package/src/core/graph/origin/entity.ts +118 -0
- package/src/core/graph/origin/events.ts +86 -0
- package/src/core/graph/origin/exporter.ts +62 -0
- package/src/core/graph/origin/index.ts +6 -0
- package/src/core/graph/origin/kind-map/index.ts +171 -0
- package/src/core/graph/origin/node.ts +75 -0
- package/src/core/graph/origin/origin-events.ts +86 -0
- package/src/core/graph/origin/tracker.ts +103 -0
- package/src/core/graph/relation.ts +17 -0
- package/src/core/graph/resource/api-kind/index.ts +176 -0
- package/src/core/graph/resource/api-kind/pluralize.ts +32 -0
- package/src/core/graph/resource/child.ts +26 -0
- package/src/core/graph/resource/entity.ts +58 -0
- package/src/core/graph/resource/index.ts +7 -0
- package/src/{graph/resource-node.ts → core/graph/resource/node.ts} +28 -40
- package/src/core/graph/resource/ref-key/ref-key.ts +62 -0
- package/src/core/graph/resource/reference/error.ts +7 -0
- package/src/core/graph/resource/reference/fw-ref-exports.ts +164 -0
- package/src/core/graph/resource/reference/fw-ref.ts +122 -0
- package/src/core/graph/resource/reference/index.ts +8 -0
- package/src/core/graph/resource/reference/refable.ts +24 -0
- package/src/core/graph/resource/top.ts +69 -0
- package/src/core/index.ts +4 -0
- package/src/{manifest → core/manifest}/index.ts +7 -22
- package/src/{tracing → core/tracing}/git.ts +20 -3
- package/src/{tracing → core/tracing}/traced.ts +1 -1
- package/src/error.ts +0 -6
- package/src/expressions/data-sources/index.ts +147 -0
- package/src/expressions/index.ts +5 -0
- package/src/expressions/network/index.ts +1 -0
- package/src/{ports → expressions/network/ports}/index.ts +1 -1
- package/src/{ports → expressions/network/ports}/map.ts +3 -3
- package/src/{ports → expressions/network/ports}/set.ts +8 -7
- package/src/{ports → expressions/network/ports}/tools/entry.ts +6 -4
- package/src/{ports → expressions/network/ports}/types.ts +1 -1
- package/src/expressions/quantities/index.ts +2 -0
- package/src/expressions/quantities/reqlem/objects.ts +107 -0
- package/src/expressions/quantities/reqlem/types.ts +28 -0
- package/src/{units → expressions/quantities/units}/unit-parser.ts +1 -2
- package/src/{units → expressions/quantities/units}/units.ts +3 -4
- package/src/{cmd → expressions/workload/cmd}/cli-command.ts +35 -31
- package/src/{cmd → expressions/workload/cmd}/cli-term.ts +9 -9
- package/src/expressions/workload/cmd/index.ts +2 -0
- package/src/expressions/workload/cmd/types.ts +4 -0
- package/src/{_cronjob → expressions/workload/cronjob}/index.ts +1 -1
- package/src/{image → expressions/workload/image}/family.ts +1 -1
- package/src/expressions/workload/index.ts +4 -0
- package/src/index.ts +5 -21
- package/src/{displayers → utils}/bind.ts +4 -4
- package/src/{displayers → utils/displayers}/displayers.ts +28 -20
- package/src/{_embedder → utils/embedder}/base.ts +9 -5
- package/src/utils/index.ts +4 -0
- package/dist/_cronjob/index.d.ts.map +0 -1
- package/dist/_cronjob/index.js.map +0 -1
- package/dist/_cronjob/types.d.ts.map +0 -1
- package/dist/_cronjob/types.js.map +0 -1
- package/dist/_embedder/base.d.ts.map +0 -1
- package/dist/_embedder/base.js.map +0 -1
- package/dist/_embedder/index.d.ts.map +0 -1
- package/dist/_embedder/index.js.map +0 -1
- package/dist/_ip/index.d.ts.map +0 -1
- package/dist/_ip/index.js.map +0 -1
- package/dist/_string/index.d.ts.map +0 -1
- package/dist/_string/index.js.map +0 -1
- package/dist/_string/markers.d.ts.map +0 -1
- package/dist/_string/markers.js.map +0 -1
- package/dist/_string/post-processor.d.ts.map +0 -1
- package/dist/_string/post-processor.js.map +0 -1
- package/dist/_string/pretty-objects.d.ts.map +0 -1
- package/dist/_string/pretty-objects.js.map +0 -1
- package/dist/_string/pretty-print.d.ts.map +0 -1
- package/dist/_string/pretty-print.js.map +0 -1
- package/dist/_string/super-script.d.ts.map +0 -1
- package/dist/_string/super-script.js.map +0 -1
- package/dist/_user/index.d.ts.map +0 -1
- package/dist/_user/index.js.map +0 -1
- package/dist/api-kind/index.d.ts +0 -45
- package/dist/api-kind/index.d.ts.map +0 -1
- package/dist/api-kind/index.js.map +0 -1
- package/dist/cmd/cli-command.d.ts.map +0 -1
- package/dist/cmd/cli-command.js.map +0 -1
- package/dist/cmd/cli-term.d.ts.map +0 -1
- package/dist/cmd/cli-term.js.map +0 -1
- package/dist/cmd/index.d.ts +0 -3
- package/dist/cmd/index.d.ts.map +0 -1
- package/dist/cmd/index.js.map +0 -1
- package/dist/cmd/types.d.ts +0 -5
- package/dist/cmd/types.d.ts.map +0 -1
- package/dist/cmd/types.js.map +0 -1
- package/dist/data-sources/index.d.ts.map +0 -1
- package/dist/data-sources/index.js.map +0 -1
- package/dist/displayers/bind.d.ts +0 -4
- package/dist/displayers/bind.d.ts.map +0 -1
- package/dist/displayers/bind.js.map +0 -1
- package/dist/displayers/displayers.d.ts.map +0 -1
- package/dist/displayers/displayers.js.map +0 -1
- package/dist/displayers/index.d.ts.map +0 -1
- package/dist/displayers/index.js.map +0 -1
- package/dist/forward-exports/delayed-exports.d.ts +0 -18
- package/dist/forward-exports/delayed-exports.d.ts.map +0 -1
- package/dist/forward-exports/delayed-exports.js +0 -115
- package/dist/forward-exports/delayed-exports.js.map +0 -1
- package/dist/forward-exports/index.d.ts +0 -2
- package/dist/forward-exports/index.d.ts.map +0 -1
- package/dist/forward-exports/index.js.map +0 -1
- package/dist/graph/base-node.d.ts +0 -35
- package/dist/graph/base-node.d.ts.map +0 -1
- package/dist/graph/base-node.js +0 -112
- package/dist/graph/base-node.js.map +0 -1
- package/dist/graph/base-origin-entity.d.ts +0 -19
- package/dist/graph/base-origin-entity.d.ts.map +0 -1
- package/dist/graph/base-origin-entity.js.map +0 -1
- package/dist/graph/dependencies.d.ts +0 -12
- package/dist/graph/dependencies.d.ts.map +0 -1
- package/dist/graph/dependencies.js.map +0 -1
- package/dist/graph/index.d.ts +0 -7
- package/dist/graph/index.d.ts.map +0 -1
- package/dist/graph/index.js +0 -23
- package/dist/graph/index.js.map +0 -1
- package/dist/graph/origin-node.d.ts +0 -32
- package/dist/graph/origin-node.d.ts.map +0 -1
- package/dist/graph/origin-node.js.map +0 -1
- package/dist/graph/relations.d.ts +0 -26
- package/dist/graph/relations.d.ts.map +0 -1
- package/dist/graph/relations.js +0 -36
- package/dist/graph/relations.js.map +0 -1
- package/dist/graph/resource-node.d.ts +0 -35
- package/dist/graph/resource-node.d.ts.map +0 -1
- package/dist/graph/resource-node.js.map +0 -1
- package/dist/image/family.d.ts.map +0 -1
- package/dist/image/family.js.map +0 -1
- package/dist/image/index.d.ts.map +0 -1
- package/dist/image/index.js.map +0 -1
- package/dist/kind-map/index.d.ts +0 -44
- package/dist/kind-map/index.d.ts.map +0 -1
- package/dist/kind-map/index.js +0 -125
- package/dist/kind-map/index.js.map +0 -1
- package/dist/manifest/index.d.ts +0 -46
- package/dist/manifest/index.d.ts.map +0 -1
- package/dist/manifest/index.js.map +0 -1
- package/dist/manifest/manifest-builder.d.ts +0 -41
- package/dist/manifest/manifest-builder.d.ts.map +0 -1
- package/dist/manifest/manifest-builder.js +0 -64
- package/dist/manifest/manifest-builder.js.map +0 -1
- package/dist/ports/error.d.ts.map +0 -1
- package/dist/ports/error.js.map +0 -1
- package/dist/ports/index.d.ts.map +0 -1
- package/dist/ports/index.js.map +0 -1
- package/dist/ports/map.d.ts.map +0 -1
- package/dist/ports/map.js.map +0 -1
- package/dist/ports/set.d.ts.map +0 -1
- package/dist/ports/set.js.map +0 -1
- package/dist/ports/tools/entry.d.ts.map +0 -1
- package/dist/ports/tools/entry.js.map +0 -1
- package/dist/ports/tools/parse.d.ts.map +0 -1
- package/dist/ports/tools/parse.js.map +0 -1
- package/dist/ports/types.d.ts.map +0 -1
- package/dist/ports/types.js.map +0 -1
- package/dist/producer/index.d.ts +0 -2
- package/dist/producer/index.d.ts.map +0 -1
- package/dist/producer/index.js.map +0 -1
- package/dist/producer/producer.d.ts +0 -6
- package/dist/producer/producer.d.ts.map +0 -1
- package/dist/producer/producer.js +0 -13
- package/dist/producer/producer.js.map +0 -1
- package/dist/ref-key/index.d.ts.map +0 -1
- package/dist/ref-key/index.js.map +0 -1
- package/dist/ref-key/ref-key.d.ts +0 -23
- package/dist/ref-key/ref-key.d.ts.map +0 -1
- package/dist/ref-key/ref-key.js +0 -69
- package/dist/ref-key/ref-key.js.map +0 -1
- package/dist/reference/forward-ref.d.ts +0 -22
- package/dist/reference/forward-ref.d.ts.map +0 -1
- package/dist/reference/forward-ref.js +0 -113
- package/dist/reference/forward-ref.js.map +0 -1
- package/dist/reference/index.d.ts +0 -4
- package/dist/reference/index.d.ts.map +0 -1
- package/dist/reference/index.js +0 -8
- package/dist/reference/index.js.map +0 -1
- package/dist/reference/refable.d.ts +0 -9
- package/dist/reference/refable.d.ts.map +0 -1
- package/dist/reference/refable.js.map +0 -1
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js.map +0 -1
- package/dist/resources/objects.d.ts.map +0 -1
- package/dist/resources/objects.js +0 -100
- package/dist/resources/objects.js.map +0 -1
- package/dist/resources/parser.d.ts.map +0 -1
- package/dist/resources/parser.js.map +0 -1
- package/dist/resources/types.d.ts +0 -24
- package/dist/resources/types.d.ts.map +0 -1
- package/dist/resources/types.js.map +0 -1
- package/dist/timezone.d.ts.map +0 -1
- package/dist/tracing/git.d.ts.map +0 -1
- package/dist/tracing/git.js.map +0 -1
- package/dist/tracing/index.d.ts.map +0 -1
- package/dist/tracing/index.js.map +0 -1
- package/dist/tracing/trace.d.ts.map +0 -1
- package/dist/tracing/trace.js.map +0 -1
- package/dist/tracing/traced.d.ts.map +0 -1
- package/dist/tracing/traced.js +0 -6
- package/dist/tracing/traced.js.map +0 -1
- package/dist/types.d.ts +0 -7
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/units/index.d.ts.map +0 -1
- package/dist/units/index.js.map +0 -1
- package/dist/units/unit-parser.d.ts.map +0 -1
- package/dist/units/unit-parser.js.map +0 -1
- package/dist/units/units.d.ts.map +0 -1
- package/dist/units/units.js.map +0 -1
- package/src/api-kind/index.ts +0 -142
- package/src/cmd/index.ts +0 -2
- package/src/cmd/types.ts +0 -4
- package/src/data-sources/index.ts +0 -126
- package/src/forward-exports/delayed-exports.ts +0 -157
- package/src/forward-exports/index.ts +0 -1
- package/src/graph/base-node.ts +0 -135
- package/src/graph/base-origin-entity.ts +0 -44
- package/src/graph/dependencies.ts +0 -30
- package/src/graph/index.ts +0 -6
- package/src/graph/origin-node.ts +0 -122
- package/src/graph/relations.ts +0 -62
- package/src/kind-map/index.ts +0 -150
- package/src/manifest/manifest-builder.ts +0 -99
- package/src/producer/index.ts +0 -1
- package/src/producer/producer.ts +0 -18
- package/src/ref-key/ref-key.ts +0 -76
- package/src/reference/forward-ref.ts +0 -122
- package/src/reference/index.ts +0 -3
- package/src/reference/refable.ts +0 -12
- package/src/resources/objects.ts +0 -102
- package/src/resources/types.ts +0 -30
- package/src/types.ts +0 -13
- /package/dist/{ref-key → core/graph/resource/ref-key}/index.d.ts +0 -0
- /package/dist/{ref-key → core/graph/resource/ref-key}/index.js +0 -0
- /package/dist/{reference → core/graph/resource/reference}/refable.js +0 -0
- /package/dist/{tracing → core/tracing}/index.d.ts +0 -0
- /package/dist/{tracing → core/tracing}/index.js +0 -0
- /package/dist/{tracing → core/tracing}/trace.d.ts +0 -0
- /package/dist/{tracing → core/tracing}/trace.js +0 -0
- /package/dist/{_ip → expressions/network/ip}/index.d.ts +0 -0
- /package/dist/{_ip → expressions/network/ip}/index.js +0 -0
- /package/dist/{ports → expressions/network/ports}/error.d.ts +0 -0
- /package/dist/{ports → expressions/network/ports}/error.js +0 -0
- /package/dist/{ports → expressions/network/ports}/index.js +0 -0
- /package/dist/{ports → expressions/network/ports}/tools/parse.d.ts +0 -0
- /package/dist/{ports → expressions/network/ports}/tools/parse.js +0 -0
- /package/dist/{_cronjob → expressions/network/ports}/types.js +0 -0
- /package/dist/{resources → expressions/quantities/reqlem}/index.d.ts +0 -0
- /package/dist/{resources → expressions/quantities/reqlem}/index.js +0 -0
- /package/dist/{resources → expressions/quantities/reqlem}/parser.d.ts +0 -0
- /package/dist/{resources → expressions/quantities/reqlem}/parser.js +0 -0
- /package/dist/{cmd → expressions/quantities/reqlem}/types.js +0 -0
- /package/dist/{units → expressions/quantities/units}/index.d.ts +0 -0
- /package/dist/{units → expressions/quantities/units}/index.js +0 -0
- /package/dist/{timezone.d.ts → expressions/timezone.d.ts} +0 -0
- /package/dist/{timezone.js → expressions/timezone.js} +0 -0
- /package/dist/{_user → expressions/workload/_user}/index.d.ts +0 -0
- /package/dist/{_user → expressions/workload/_user}/index.js +0 -0
- /package/dist/{cmd → expressions/workload/cmd}/index.js +0 -0
- /package/dist/{ports → expressions/workload/cmd}/types.js +0 -0
- /package/dist/{_cronjob → expressions/workload/cronjob}/index.d.ts +0 -0
- /package/dist/{_cronjob → expressions/workload/cronjob}/types.d.ts +0 -0
- /package/dist/{resources → expressions/workload/cronjob}/types.js +0 -0
- /package/dist/{image → expressions/workload/image}/family.d.ts +0 -0
- /package/dist/{image → expressions/workload/image}/index.d.ts +0 -0
- /package/dist/{image → expressions/workload/image}/index.js +0 -0
- /package/dist/{_string → utils/_string}/index.d.ts +0 -0
- /package/dist/{_string → utils/_string}/index.js +0 -0
- /package/dist/{_string → utils/_string}/markers.d.ts +0 -0
- /package/dist/{_string → utils/_string}/markers.js +0 -0
- /package/dist/{_string → utils/_string}/post-processor.d.ts +0 -0
- /package/dist/{_string → utils/_string}/post-processor.js +0 -0
- /package/dist/{_string → utils/_string}/pretty-objects.d.ts +0 -0
- /package/dist/{_string → utils/_string}/pretty-objects.js +0 -0
- /package/dist/{_string → utils/_string}/pretty-print.d.ts +0 -0
- /package/dist/{_string → utils/_string}/pretty-print.js +0 -0
- /package/dist/{_string → utils/_string}/super-script.d.ts +0 -0
- /package/dist/{_string → utils/_string}/super-script.js +0 -0
- /package/dist/{displayers → utils/displayers}/index.d.ts +0 -0
- /package/dist/{displayers → utils/displayers}/index.js +0 -0
- /package/dist/{_embedder → utils/embedder}/index.d.ts +0 -0
- /package/dist/{_embedder → utils/embedder}/index.js +0 -0
- /package/src/{ref-key → core/graph/resource/ref-key}/index.ts +0 -0
- /package/src/{tracing → core/tracing}/index.ts +0 -0
- /package/src/{tracing → core/tracing}/trace.ts +0 -0
- /package/src/{_ip → expressions/network/ip}/index.ts +0 -0
- /package/src/{ports → expressions/network/ports}/error.ts +0 -0
- /package/src/{ports → expressions/network/ports}/tools/parse.ts +0 -0
- /package/src/{resources → expressions/quantities/reqlem}/index.ts +0 -0
- /package/src/{resources → expressions/quantities/reqlem}/parser.ts +0 -0
- /package/src/{units → expressions/quantities/units}/index.ts +0 -0
- /package/src/{timezone.ts → expressions/timezone.ts} +0 -0
- /package/src/{_user → expressions/workload/_user}/index.ts +0 -0
- /package/src/{_cronjob → expressions/workload/cronjob}/types.ts +0 -0
- /package/src/{image → expressions/workload/image}/index.ts +0 -0
- /package/src/{_string → utils/_string}/index.ts +0 -0
- /package/src/{_string → utils/_string}/markers.ts +0 -0
- /package/src/{_string → utils/_string}/post-processor.ts +0 -0
- /package/src/{_string → utils/_string}/pretty-objects.ts +0 -0
- /package/src/{_string → utils/_string}/pretty-print.ts +0 -0
- /package/src/{_string → utils/_string}/super-script.ts +0 -0
- /package/src/{displayers → utils/displayers}/index.ts +0 -0
- /package/src/{_embedder → utils/embedder}/index.ts +0 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { doddlify, seq, type Seq } from "doddle"
|
|
2
|
+
import type { AnyCtor } from "what-are-you"
|
|
3
|
+
import { InstrumentsError } from "../../../../error"
|
|
4
|
+
|
|
5
|
+
import type { Resource_Ctor_Of } from "../../resource"
|
|
6
|
+
import { Kind } from "../../resource/api-kind"
|
|
7
|
+
import { RefKey } from "../../resource/ref-key"
|
|
8
|
+
const separator = "/"
|
|
9
|
+
interface NodeEntry {
|
|
10
|
+
kindName: string
|
|
11
|
+
class: AnyCtor<any>
|
|
12
|
+
ident: Kind.IdentParent
|
|
13
|
+
}
|
|
14
|
+
export type KindMapInput<Ks extends Resource_Ctor_Of> = Ks[]
|
|
15
|
+
type LookupKey = string | RefKey | AnyCtor<any> | Kind.IdentParent
|
|
16
|
+
export class KindMap<Kinds extends Resource_Ctor_Of = Resource_Ctor_Of> {
|
|
17
|
+
__KINDS__!: Kinds["prototype"]["kind"]
|
|
18
|
+
constructor(private _ownKinds: KindMapInput<Kinds>) {}
|
|
19
|
+
|
|
20
|
+
[Symbol.iterator]() {
|
|
21
|
+
return this._ownKinds[Symbol.iterator]()
|
|
22
|
+
}
|
|
23
|
+
child<Ks extends Resource_Ctor_Of = Resource_Ctor_Of>(
|
|
24
|
+
kinds: KindMapInput<Ks> | KindMap<Ks>
|
|
25
|
+
): KindMap<Kinds | Ks> {
|
|
26
|
+
const ownKinds = kinds instanceof KindMap ? kinds._ownKinds : kinds
|
|
27
|
+
return new KindMap<Kinds | Ks>([...this._ownKinds, ...ownKinds])
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@doddlify
|
|
31
|
+
private get _entriesSeq(): Seq<NodeEntry> {
|
|
32
|
+
return seq(this._ownKinds).map(klass => {
|
|
33
|
+
const kind = klass.prototype.kind
|
|
34
|
+
const entry: NodeEntry = {
|
|
35
|
+
kindName: kind.name,
|
|
36
|
+
class: klass,
|
|
37
|
+
ident: kind
|
|
38
|
+
}
|
|
39
|
+
return entry
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
@doddlify
|
|
43
|
+
private get _entriesMap(): Map<LookupKey, NodeEntry> {
|
|
44
|
+
return seq(this._entriesSeq)
|
|
45
|
+
.flatMap(entry => {
|
|
46
|
+
return [
|
|
47
|
+
[entry.kindName, entry],
|
|
48
|
+
[entry.class, entry],
|
|
49
|
+
[entry.ident.text, entry]
|
|
50
|
+
] as const
|
|
51
|
+
})
|
|
52
|
+
.toMap(x => x)
|
|
53
|
+
.pull()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
refKey<Kind extends Kind.IdentParent, Name extends string>(
|
|
57
|
+
kind: Kind,
|
|
58
|
+
name: Name
|
|
59
|
+
): RefKey<Kind, Name> {
|
|
60
|
+
const trueKind = this.getKind(kind)
|
|
61
|
+
return new RefKey(trueKind, name) as any
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
parse(ref: string | RefKey<this["__KINDS__"]>): RefKey<this["__KINDS__"]> {
|
|
65
|
+
const result = this.tryParse(ref)
|
|
66
|
+
if (!result) {
|
|
67
|
+
throw new InstrumentsError(`Could not parse reference key: ${ref}`)
|
|
68
|
+
}
|
|
69
|
+
return result as any
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
tryParse(ref: unknown): RefKey<this["__KINDS__"]> | undefined {
|
|
73
|
+
if (typeof ref !== "string" && typeof ref !== "object") {
|
|
74
|
+
return undefined
|
|
75
|
+
}
|
|
76
|
+
if (ref == null) {
|
|
77
|
+
return undefined
|
|
78
|
+
}
|
|
79
|
+
if (ref instanceof RefKey) {
|
|
80
|
+
return ref
|
|
81
|
+
}
|
|
82
|
+
if (typeof ref === "object") {
|
|
83
|
+
return undefined
|
|
84
|
+
}
|
|
85
|
+
const [kind, name] = ref.split(separator).map(s => s.trim())
|
|
86
|
+
if (!kind || !name) {
|
|
87
|
+
return undefined
|
|
88
|
+
}
|
|
89
|
+
const ident = this.tryGetKind(kind)
|
|
90
|
+
if (!ident) {
|
|
91
|
+
return undefined
|
|
92
|
+
}
|
|
93
|
+
return this.refKey(ident, name)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
get kinds(): Set<string> {
|
|
97
|
+
return this._entriesSeq
|
|
98
|
+
.map(x => x.kindName)
|
|
99
|
+
.toSet()
|
|
100
|
+
.pull()
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private _unknownNameError(kind: string) {
|
|
104
|
+
return new InstrumentsError(`The shorthand name ${kind} is not registered`)
|
|
105
|
+
}
|
|
106
|
+
private _unknownIdentError(ident: Kind.Identifier) {
|
|
107
|
+
return new InstrumentsError(`The kind identifier ${ident} is not registered`)
|
|
108
|
+
}
|
|
109
|
+
private _unknownClassError(klass: Function) {
|
|
110
|
+
return new InstrumentsError(`The class ${klass.name} is not registered`)
|
|
111
|
+
}
|
|
112
|
+
private _convert(something: LookupKey | RefKey | Function | Kind.IdentParent) {
|
|
113
|
+
if (typeof something === "string") {
|
|
114
|
+
if (something.includes("/")) {
|
|
115
|
+
return this.parse(something).kind
|
|
116
|
+
}
|
|
117
|
+
return something
|
|
118
|
+
} else if (typeof something === "function") {
|
|
119
|
+
return something as AnyCtor<any>
|
|
120
|
+
} else if (something instanceof Kind.Identifier) {
|
|
121
|
+
return something.text
|
|
122
|
+
} else if (something instanceof RefKey) {
|
|
123
|
+
return something.kind.text
|
|
124
|
+
}
|
|
125
|
+
throw new InstrumentsError(`Invalid argument ${something}`)
|
|
126
|
+
}
|
|
127
|
+
private _getEntry(key: LookupKey) {
|
|
128
|
+
const entry = this._tryGetEntry(key)
|
|
129
|
+
if (!entry) {
|
|
130
|
+
if (typeof key === "string") {
|
|
131
|
+
throw this._unknownNameError(key)
|
|
132
|
+
} else if (key instanceof Kind.Identifier) {
|
|
133
|
+
throw this._unknownIdentError(key)
|
|
134
|
+
} else if (typeof key === "function") {
|
|
135
|
+
throw this._unknownClassError(key)
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return entry!
|
|
139
|
+
}
|
|
140
|
+
private _tryGetEntry(key: LookupKey): NodeEntry | undefined {
|
|
141
|
+
const converted = this._convert(key)
|
|
142
|
+
return this._entriesMap.get(converted)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
tryGetKind(kindOrIdent: LookupKey): any {
|
|
146
|
+
return this._tryGetEntry(kindOrIdent)?.ident as Kinds | undefined
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
getKind(kindOrClass: LookupKey): this["__KINDS__"] {
|
|
150
|
+
return this._getEntry(kindOrClass).ident
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
tryGetClass(kindOrIdent: LookupKey): AnyCtor<any> | undefined {
|
|
154
|
+
return this._tryGetEntry(kindOrIdent)?.class
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
getClass(refKey: RefKey): AnyCtor<any>
|
|
158
|
+
getClass<F extends AnyCtor<any>>(klass: F): F
|
|
159
|
+
getClass(kind: string): AnyCtor<any>
|
|
160
|
+
getClass(ident: Kind.IdentParent): AnyCtor<any>
|
|
161
|
+
getClass<T extends AnyCtor<any> | string>(
|
|
162
|
+
kindOrClass: T
|
|
163
|
+
): T extends AnyCtor<any> ? string : AnyCtor<any>
|
|
164
|
+
getClass(kindOrClass: LookupKey): AnyCtor<any> | string {
|
|
165
|
+
return this._getEntry(kindOrClass).class
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
has(kindOrClass: LookupKey): boolean {
|
|
169
|
+
return this._entriesMap.has(kindOrClass as any)
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Meta } from "@k8ts/metadata"
|
|
2
|
+
import chalk from "chalk"
|
|
3
|
+
import { seq, Seq } from "doddle"
|
|
4
|
+
import { displayers } from "../../../utils/displayers"
|
|
5
|
+
import { Node } from "../node"
|
|
6
|
+
import type { Resource_Core_Ref, Resource_Ctor_Of } from "../resource"
|
|
7
|
+
import type { Origin_Entity } from "./entity"
|
|
8
|
+
import { type KindMapInput } from "./kind-map"
|
|
9
|
+
|
|
10
|
+
@displayers({
|
|
11
|
+
simple: s => `[${s.shortFqn}]`,
|
|
12
|
+
prefix: s => {
|
|
13
|
+
return ""
|
|
14
|
+
},
|
|
15
|
+
pretty(origin, format) {
|
|
16
|
+
const kindName = chalk.greenBright.bold(origin.kind)
|
|
17
|
+
const resourceName = chalk.cyan(origin.name)
|
|
18
|
+
const pref = this.prefix!()
|
|
19
|
+
|
|
20
|
+
return chalk.underline(`${pref}${kindName}:${resourceName}`)
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
export class OriginNode extends Node<OriginNode, Origin_Entity> {
|
|
24
|
+
get kids() {
|
|
25
|
+
return seq(this.entity["__kids__"]()).map(x => x.node)
|
|
26
|
+
}
|
|
27
|
+
get meta() {
|
|
28
|
+
return this.entity.meta
|
|
29
|
+
}
|
|
30
|
+
get kind() {
|
|
31
|
+
return this.entity.kind
|
|
32
|
+
}
|
|
33
|
+
get shortFqn() {
|
|
34
|
+
return `${this.kind}/${this.name}`
|
|
35
|
+
}
|
|
36
|
+
get inheritedMeta(): Meta {
|
|
37
|
+
const self = this
|
|
38
|
+
return [this, ...this.ancestors]
|
|
39
|
+
.map(x => x.meta.clone())
|
|
40
|
+
.reduce((acc, meta) => acc.add(meta), Meta.make())
|
|
41
|
+
}
|
|
42
|
+
constructor(entity: Origin_Entity) {
|
|
43
|
+
super(entity)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get resourceKinds() {
|
|
47
|
+
return this.entity["__resource_kinds__"]()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get relations() {
|
|
51
|
+
return seq([])
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get resources() {
|
|
55
|
+
return this.entity.resources
|
|
56
|
+
}
|
|
57
|
+
readonly attachedTree: Seq<Resource_Core_Ref> = seq(() => {
|
|
58
|
+
const self = this
|
|
59
|
+
const desc = self.descendants
|
|
60
|
+
.concatTo([this])
|
|
61
|
+
.map(x => x)
|
|
62
|
+
.concatMap(function* (x) {
|
|
63
|
+
yield* self.resources
|
|
64
|
+
for (const kid of self.kids) {
|
|
65
|
+
yield* kid.resources
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
return desc
|
|
69
|
+
}).cache()
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface Origin_Props<KindedCtors extends Resource_Ctor_Of = Resource_Ctor_Of> {
|
|
73
|
+
meta?: Meta.Input
|
|
74
|
+
kinds?: KindMapInput<KindedCtors>
|
|
75
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { doddle } from "doddle"
|
|
2
|
+
import EventEmitter from "eventemitter3"
|
|
3
|
+
import type { Manifest } from "../../manifest"
|
|
4
|
+
import type { Resource_Entity, Resource_Top } from "../resource"
|
|
5
|
+
import type { Origin_Entity } from "./entity"
|
|
6
|
+
|
|
7
|
+
export function OriginEventsEmitter() {
|
|
8
|
+
const em = new EventEmitter<Origin_EventMap>()
|
|
9
|
+
return em
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function SubscribeFn(self: Origin_Entity, em: EventEmitter<Origin_EventMap>) {
|
|
13
|
+
function on<EventKey extends keyof Origin_EventMap>(
|
|
14
|
+
event: EventKey,
|
|
15
|
+
listener: (data: Origin_EventMap[EventKey]) => void
|
|
16
|
+
): void
|
|
17
|
+
function on(
|
|
18
|
+
listener: <EventKey extends keyof Origin_EventMap>(
|
|
19
|
+
event: EventKey,
|
|
20
|
+
data: Origin_EventMap[EventKey]
|
|
21
|
+
) => void
|
|
22
|
+
): void
|
|
23
|
+
function on<
|
|
24
|
+
K extends keyof Origin_EventMap,
|
|
25
|
+
HandledMap extends {
|
|
26
|
+
[key2 in K]: (data: Origin_EventMap[key2]) => void
|
|
27
|
+
}
|
|
28
|
+
>(handlers: HandledMap): void
|
|
29
|
+
function on(a?: any, b?: any) {
|
|
30
|
+
if (typeof a === "function") {
|
|
31
|
+
for (const eventName of originEventNames) {
|
|
32
|
+
em.on(eventName as any, (data: any) => a(eventName as any, data))
|
|
33
|
+
}
|
|
34
|
+
} else if (typeof a === "string") {
|
|
35
|
+
return em.on(a as any, b)
|
|
36
|
+
} else if (typeof a === "object") {
|
|
37
|
+
const handlers = a as any
|
|
38
|
+
for (const key of Object.keys(handlers) as (keyof Origin_EventMap)[]) {
|
|
39
|
+
em.on(key, handlers[key]!)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return on
|
|
44
|
+
}
|
|
45
|
+
export interface Origin_EventMap {
|
|
46
|
+
"resource/exported": {
|
|
47
|
+
readonly origin: Origin_Entity
|
|
48
|
+
readonly resource: Resource_Top
|
|
49
|
+
}
|
|
50
|
+
"resource/attached": {
|
|
51
|
+
readonly origin: Origin_Entity
|
|
52
|
+
readonly resource: Resource_Entity
|
|
53
|
+
}
|
|
54
|
+
"resource/manifested": {
|
|
55
|
+
readonly origin: Origin_Entity
|
|
56
|
+
readonly manifest: Manifest
|
|
57
|
+
readonly resource: Resource_Top
|
|
58
|
+
}
|
|
59
|
+
"resource/loaded": {
|
|
60
|
+
readonly origin: Origin_Entity
|
|
61
|
+
readonly resource: Resource_Top
|
|
62
|
+
}
|
|
63
|
+
"resource/serialized": {
|
|
64
|
+
readonly origin: Origin_Entity
|
|
65
|
+
readonly resource: Resource_Top
|
|
66
|
+
readonly manifest: Manifest
|
|
67
|
+
content: string
|
|
68
|
+
}
|
|
69
|
+
"origin/attached": {
|
|
70
|
+
readonly origin: Origin_Entity
|
|
71
|
+
readonly child: Origin_Entity
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const originEventNames = doddle(() => {
|
|
76
|
+
// Forces type checking the event names basded on the Origin_EventMap
|
|
77
|
+
const obj = {
|
|
78
|
+
"resource/exported": true,
|
|
79
|
+
"resource/attached": true,
|
|
80
|
+
"resource/manifested": true,
|
|
81
|
+
"resource/loaded": true,
|
|
82
|
+
"resource/serialized": true,
|
|
83
|
+
"origin/attached": true
|
|
84
|
+
} satisfies Record<keyof Origin_EventMap, true>
|
|
85
|
+
return Object.keys(obj) as (keyof Origin_EventMap)[]
|
|
86
|
+
}).pull()
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "async_hooks"
|
|
2
|
+
import { doddle, pull, type Doddle, type MaybeDoddle } from "doddle"
|
|
3
|
+
import { isIterable } from "what-are-you"
|
|
4
|
+
import type { Origin_Entity } from "./entity"
|
|
5
|
+
|
|
6
|
+
export interface OriginStackBinder {
|
|
7
|
+
run<T>(callback: () => T): T
|
|
8
|
+
bind<F extends (...args: any[]) => any>(fn: F): F
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class _OriginContextTracker {
|
|
12
|
+
private readonly _store: AsyncLocalStorage<Origin_Entity | undefined>
|
|
13
|
+
constructor() {
|
|
14
|
+
this._store = new AsyncLocalStorage<Origin_Entity | undefined>()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get current(): Origin_Entity | undefined {
|
|
18
|
+
return this._store.getStore()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
disposableOriginModifier(origin: Origin_Entity): Disposable {
|
|
22
|
+
const curOrigin = this._store.getStore()
|
|
23
|
+
this._store.enterWith(origin)
|
|
24
|
+
return {
|
|
25
|
+
[Symbol.dispose]: () => {
|
|
26
|
+
this._store.enterWith(curOrigin)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
binder(origin: MaybeDoddle<Origin_Entity>): OriginStackBinder {
|
|
32
|
+
const runner = this
|
|
33
|
+
return {
|
|
34
|
+
run<T>(callback: () => T): T {
|
|
35
|
+
const orig = doddle.is(origin) ? origin.pull() : origin
|
|
36
|
+
return runner._run(orig, callback)
|
|
37
|
+
},
|
|
38
|
+
bind<F extends (...args: any[]) => any>(fn: F): F {
|
|
39
|
+
const boundOrigin = origin
|
|
40
|
+
return runner._bind(boundOrigin as Doddle<Origin_Entity>, fn)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
private _run<T>(origin: Origin_Entity, callback: () => T): T {
|
|
46
|
+
return this._store.run(origin, callback)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private _bindIterator(
|
|
50
|
+
boundOrigin: Doddle<Origin_Entity> | Origin_Entity,
|
|
51
|
+
iterator: Iterator<any>
|
|
52
|
+
): Iterator<any> {
|
|
53
|
+
const runner = this
|
|
54
|
+
return {
|
|
55
|
+
next() {
|
|
56
|
+
const origin = doddle.is(boundOrigin) ? boundOrigin.pull() : boundOrigin
|
|
57
|
+
return runner._run(origin, () => iterator.next())
|
|
58
|
+
},
|
|
59
|
+
return(value?: any) {
|
|
60
|
+
if (iterator.return) {
|
|
61
|
+
return iterator.return(value)
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
done: true,
|
|
65
|
+
value
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
throw(err?: any) {
|
|
69
|
+
if (iterator.throw) {
|
|
70
|
+
return iterator.throw(err)
|
|
71
|
+
}
|
|
72
|
+
throw err
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private _bindIterable<It extends Iterable<any>>(
|
|
78
|
+
boundOrigin: Doddle<Origin_Entity> | Origin_Entity,
|
|
79
|
+
iterable: It
|
|
80
|
+
) {
|
|
81
|
+
const iterator = iterable[Symbol.iterator]()
|
|
82
|
+
const runner = this
|
|
83
|
+
const boundIterator: Iterable<any> = {
|
|
84
|
+
[Symbol.iterator]() {
|
|
85
|
+
return runner._bindIterator(boundOrigin, iterator)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return boundIterator
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
private _bind<F extends (...args: any[]) => any>(origin: Doddle<Origin_Entity>, fn: F): F {
|
|
92
|
+
const self = this
|
|
93
|
+
return function boundRunFunction(this: any, ...args: any[]) {
|
|
94
|
+
const result = self._run(pull(origin), () => fn.apply(this, args))
|
|
95
|
+
if (isIterable(result)) {
|
|
96
|
+
return self._bindIterable(origin, result)
|
|
97
|
+
}
|
|
98
|
+
return result
|
|
99
|
+
} as F
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const OriginContextTracker = new _OriginContextTracker()
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { pretty } from "../../utils/_string"
|
|
2
|
+
import { displayers } from "../../utils/displayers"
|
|
3
|
+
import type { Node } from "./node"
|
|
4
|
+
|
|
5
|
+
@displayers({
|
|
6
|
+
simple: s => [s.why, "-->", s.needed],
|
|
7
|
+
pretty: (dep, format) => {
|
|
8
|
+
const neededFmt = pretty`${["lowkey", dep.needed]}`
|
|
9
|
+
return [dep.why, neededFmt].join("➜ ")
|
|
10
|
+
}
|
|
11
|
+
})
|
|
12
|
+
export class Relation<_Node extends Node<_Node>> {
|
|
13
|
+
constructor(
|
|
14
|
+
readonly why: string,
|
|
15
|
+
readonly needed: _Node
|
|
16
|
+
) {}
|
|
17
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { InstrumentsError } from "../../../../error"
|
|
2
|
+
import { bind_own_methods } from "../../../../utils"
|
|
3
|
+
import { displayers } from "../../../../utils/displayers"
|
|
4
|
+
import { RefKey } from "../ref-key"
|
|
5
|
+
import { pluralize } from "./pluralize"
|
|
6
|
+
|
|
7
|
+
export type Kind<
|
|
8
|
+
GroupName extends string = string,
|
|
9
|
+
Version extends string = string,
|
|
10
|
+
Name extends string = string
|
|
11
|
+
> = Kind.Kind<GroupName, Version, Name>
|
|
12
|
+
export namespace Kind {
|
|
13
|
+
export interface IdentParent {
|
|
14
|
+
text: string
|
|
15
|
+
name: string
|
|
16
|
+
dns: string
|
|
17
|
+
parent: IdentParent | null
|
|
18
|
+
equals(other: any): boolean
|
|
19
|
+
}
|
|
20
|
+
type _alphabeta = "alpha" | "beta" | ""
|
|
21
|
+
type _subversion = `${_alphabeta}${number}` | ""
|
|
22
|
+
type _version = `v${number}${_subversion | ""}`
|
|
23
|
+
@displayers({
|
|
24
|
+
simple: self => self.text
|
|
25
|
+
})
|
|
26
|
+
@bind_own_methods()
|
|
27
|
+
export abstract class Identifier<
|
|
28
|
+
Name extends string = string,
|
|
29
|
+
Parent extends IdentParent | null = IdentParent | null
|
|
30
|
+
> implements IdentParent
|
|
31
|
+
{
|
|
32
|
+
constructor(
|
|
33
|
+
readonly name: Name,
|
|
34
|
+
readonly parent: Parent
|
|
35
|
+
) {}
|
|
36
|
+
|
|
37
|
+
get full(): IdentParent[] {
|
|
38
|
+
const parts: IdentParent[] = []
|
|
39
|
+
let curr: IdentParent | null = this
|
|
40
|
+
while (curr) {
|
|
41
|
+
parts.unshift(curr)
|
|
42
|
+
curr = curr.parent
|
|
43
|
+
}
|
|
44
|
+
return parts.filter(x => x.name)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
get text(): string {
|
|
48
|
+
return this.full.map(p => p.name).join("/") as any
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
get dns(): string {
|
|
52
|
+
return this.full
|
|
53
|
+
.map(x => x.name)
|
|
54
|
+
.filter(Boolean)
|
|
55
|
+
.join(".")
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
abstract child(name: string): Identifier<
|
|
59
|
+
string,
|
|
60
|
+
{
|
|
61
|
+
name: Name
|
|
62
|
+
} & IdentParent
|
|
63
|
+
>
|
|
64
|
+
|
|
65
|
+
equals(other: any) {
|
|
66
|
+
if (typeof other !== "object" || !other) {
|
|
67
|
+
return false
|
|
68
|
+
}
|
|
69
|
+
if (!(other instanceof Identifier)) {
|
|
70
|
+
return false
|
|
71
|
+
}
|
|
72
|
+
return this.text === other.text
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
@bind_own_methods()
|
|
76
|
+
export class Group<const _Group extends string = string> extends Identifier<_Group, null> {
|
|
77
|
+
constructor(override name: _Group) {
|
|
78
|
+
super(name, null)
|
|
79
|
+
}
|
|
80
|
+
version<Version extends _version>(apiVersion: Version) {
|
|
81
|
+
return new Version(apiVersion, this)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
child(name: string): Version<_Group, string> {
|
|
85
|
+
if (!name.startsWith("v")) {
|
|
86
|
+
throw new InstrumentsError(
|
|
87
|
+
`Invalid version name "${name}". Version name must start with "v".`
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
return this.version(name as any) as any
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
@bind_own_methods()
|
|
94
|
+
export class Version<
|
|
95
|
+
const _Group extends string = string,
|
|
96
|
+
const _Version extends string = string
|
|
97
|
+
> extends Identifier<_Version, Kind.Group<_Group>> {
|
|
98
|
+
kind<_Kind extends string>(kind: _Kind) {
|
|
99
|
+
return new Kind(kind, this as Version<_Group, _Version>)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
__FORMAT__!: _Version
|
|
103
|
+
|
|
104
|
+
get group() {
|
|
105
|
+
return this.parent
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
child(name: string): Kind<_Group, _Version, string> {
|
|
109
|
+
return this.kind(name)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
@bind_own_methods()
|
|
113
|
+
export class Kind<
|
|
114
|
+
const _Group extends string = string,
|
|
115
|
+
const _Version extends string = string,
|
|
116
|
+
const _Kind extends string = string
|
|
117
|
+
> extends Identifier<_Kind, Version<_Group, _Version>> {
|
|
118
|
+
constructor(name: _Kind, parent: Version<_Group, _Version>) {
|
|
119
|
+
super(name, parent)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
refKey<Name extends string>(name: Name) {
|
|
123
|
+
return new RefKey<this, Name>(this as any, name)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
get plural() {
|
|
127
|
+
return pluralize(this.name.toLowerCase())
|
|
128
|
+
}
|
|
129
|
+
get version() {
|
|
130
|
+
return this.parent
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
get group() {
|
|
134
|
+
return this.parent.parent
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
subkind<SubKind extends string>(subkind: SubKind) {
|
|
138
|
+
return new SubKind(subkind, this)
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
child<Name extends string>(name: Name): SubKind<Name, this> {
|
|
142
|
+
return this.subkind(name)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@bind_own_methods()
|
|
147
|
+
export class SubKind<
|
|
148
|
+
Name extends string = string,
|
|
149
|
+
Parent extends IdentParent = IdentParent
|
|
150
|
+
> extends Identifier<Name, Parent> {
|
|
151
|
+
constructor(name: Name, parent: Parent) {
|
|
152
|
+
super(name, parent)
|
|
153
|
+
}
|
|
154
|
+
subkind<_SubKind2 extends string>(subkind: _SubKind2): SubKind<_SubKind2, this> {
|
|
155
|
+
return new SubKind(subkind, this)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
child<Name extends string>(name: Name) {
|
|
159
|
+
return this.subkind(name)
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export function group<ApiGroup extends string>(apiGroup: ApiGroup) {
|
|
164
|
+
return new Group(apiGroup)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export function version<ApiVersion extends _version>(apiVersion: ApiVersion) {
|
|
168
|
+
return new Version(apiVersion, group(""))
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export function kinded(kind: Kind.Identifier) {
|
|
172
|
+
return <T extends abstract new (...args: any[]) => object>(ctor: T) => {
|
|
173
|
+
ctor.prototype.kind = kind
|
|
174
|
+
return ctor
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
type _Alpha_Beta = "alpha" | "beta"
|
|
2
|
+
type _Sub_Version = `${_Alpha_Beta}${number}`
|
|
3
|
+
type Version = `v${number}${_Sub_Version | ""}`
|
|
4
|
+
|
|
5
|
+
export type _Group = string
|
|
6
|
+
export type _Slash<A extends string, B extends string> = `${A}/${B}`
|
|
7
|
+
export type _Group_Version<Group extends string = string, Vers extends string = string> =
|
|
8
|
+
| _Slash<Group, Vers>
|
|
9
|
+
| Version
|
|
10
|
+
|
|
11
|
+
type _Word_Plural_Map = {
|
|
12
|
+
y: "ies"
|
|
13
|
+
s: "es"
|
|
14
|
+
ch: "ches"
|
|
15
|
+
sh: "es"
|
|
16
|
+
z: "zes"
|
|
17
|
+
ro: "es"
|
|
18
|
+
x: "es"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type Pluralize<S extends string> = S extends `${infer K extends keyof _Word_Plural_Map}`
|
|
22
|
+
? `${K}${_Word_Plural_Map[K]}`
|
|
23
|
+
: `${S}s`
|
|
24
|
+
export function pluralize<S extends string>(word: S): Pluralize<S> {
|
|
25
|
+
if (["s", "sh", "ch", "x", "z", "ro"].some(suffix => word.endsWith(suffix))) {
|
|
26
|
+
return `${word}es` as Pluralize<S>
|
|
27
|
+
}
|
|
28
|
+
if (word.endsWith("y")) {
|
|
29
|
+
return `${word.slice(0, -1)}ies` as Pluralize<S>
|
|
30
|
+
}
|
|
31
|
+
return `${word}s` as Pluralize<S>
|
|
32
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Resource_Entity } from "./entity"
|
|
2
|
+
|
|
3
|
+
export abstract class Resource_Child<Props extends object = object> extends Resource_Entity<
|
|
4
|
+
string,
|
|
5
|
+
Props
|
|
6
|
+
> {
|
|
7
|
+
#parent: Resource_Entity
|
|
8
|
+
constructor(parent: Resource_Entity, name: string, props: Props) {
|
|
9
|
+
super(name, props)
|
|
10
|
+
this.#parent = parent
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
protected __parent__(): Resource_Entity {
|
|
14
|
+
return this.#parent
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
protected __origin__() {
|
|
18
|
+
return this.__parent__()["__origin__"]()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
protected abstract __submanifest__(): object
|
|
22
|
+
|
|
23
|
+
get namespace(): string | undefined {
|
|
24
|
+
return this.__parent__()?.namespace
|
|
25
|
+
}
|
|
26
|
+
}
|