@k8ts/instruments 0.5.3 → 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/expressions/quantities/reqlem/objects.d.ts +24 -0
- 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/expressions/quantities/units/unit-parser.d.ts +29 -0
- package/dist/expressions/quantities/units/unit-parser.d.ts.map +1 -0
- package/dist/{units → expressions/quantities/units}/unit-parser.js +43 -16
- package/dist/expressions/quantities/units/unit-parser.js.map +1 -0
- package/dist/{units → expressions/quantities/units}/units.d.ts +4 -4
- 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/expressions/quantities/units/unit-parser.ts +93 -0
- package/src/{units → expressions/quantities/units}/units.ts +4 -5
- 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 +0 -22
- package/dist/resources/objects.d.ts.map +0 -1
- package/dist/resources/objects.js +0 -97
- 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 -21
- 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 +0 -19
- 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 -99
- package/src/resources/types.ts +0 -26
- package/src/types.ts +0 -13
- package/src/units/unit-parser.ts +0 -63
- /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,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
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getDeepPropertyDescriptor } from "@k8ts/metadata/util"
|
|
2
|
+
import { getNiceClassName } from "what-are-you"
|
|
3
|
+
import { displayers } from "../../../utils"
|
|
4
|
+
import { Entity } from "../entity"
|
|
5
|
+
import type { Origin_Entity } from "../origin"
|
|
6
|
+
import type { Kind } from "./api-kind"
|
|
7
|
+
import { Resource_Node } from "./node"
|
|
8
|
+
|
|
9
|
+
@displayers({
|
|
10
|
+
simple: s => s.node,
|
|
11
|
+
pretty: s => s.node
|
|
12
|
+
})
|
|
13
|
+
export abstract class Resource_Entity<
|
|
14
|
+
Name extends string = string,
|
|
15
|
+
Props extends object = object
|
|
16
|
+
> extends Entity<Resource_Node, Resource_Entity> {
|
|
17
|
+
abstract get kind(): Kind.IdentParent
|
|
18
|
+
|
|
19
|
+
with(callback: (self: this) => void) {
|
|
20
|
+
callback(this)
|
|
21
|
+
return this
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
abstract readonly namespace: string | undefined
|
|
25
|
+
|
|
26
|
+
ref() {
|
|
27
|
+
return {
|
|
28
|
+
kind: this.kind.name,
|
|
29
|
+
name: this.name,
|
|
30
|
+
namespace: this.namespace
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
protected constructor(
|
|
34
|
+
readonly name: Name,
|
|
35
|
+
readonly props: Props
|
|
36
|
+
) {
|
|
37
|
+
super()
|
|
38
|
+
|
|
39
|
+
this.name = name
|
|
40
|
+
const desc = getDeepPropertyDescriptor(this, "kind")
|
|
41
|
+
if (!desc || !desc.get) {
|
|
42
|
+
throw new Error(
|
|
43
|
+
`ResourceEntity subclass ${getNiceClassName(this)} must implement the 'kind' property as a getter, but it's missing or not a getter.`
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
protected abstract __origin__(): Origin_Entity
|
|
49
|
+
get node(): Resource_Node {
|
|
50
|
+
return new Resource_Node(this.__origin__().node, this)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
get shortFqn() {
|
|
54
|
+
return [this.node.origin.name, [this.kind.name, this.name].filter(Boolean).join("/")].join(
|
|
55
|
+
":"
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Meta } from "@k8ts/metadata"
|
|
2
2
|
import chalk from "chalk"
|
|
3
3
|
import { seq } from "doddle"
|
|
4
|
-
import {
|
|
5
|
-
import { Displayers, displayers
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
4
|
+
import { type AnyCtor } from "what-are-you"
|
|
5
|
+
import { Displayers, displayers } from "../../../utils/displayers"
|
|
6
|
+
import { TraceEmbedder } from "../../tracing"
|
|
7
|
+
import { Formats } from "../entity"
|
|
8
|
+
import { Node } from "../node"
|
|
9
|
+
import { OriginNode } from "../origin/node"
|
|
10
|
+
import type { Kind } from "./api-kind"
|
|
11
|
+
import type { Resource_Entity } from "./entity"
|
|
12
|
+
import { RefKey } from "./ref-key"
|
|
11
13
|
|
|
12
14
|
@displayers({
|
|
13
15
|
simple: s => `[${s.shortFqn}]`,
|
|
@@ -33,21 +35,23 @@ import { Relations } from "./relations"
|
|
|
33
35
|
return text
|
|
34
36
|
}
|
|
35
37
|
})
|
|
36
|
-
export class
|
|
37
|
-
get relations() {
|
|
38
|
-
return seq(this._relations.needs)
|
|
39
|
-
}
|
|
40
|
-
|
|
38
|
+
export class Resource_Node extends Node<Resource_Node, Resource_Entity> {
|
|
41
39
|
get fullFqn() {
|
|
42
40
|
return [this.kind.dns, this.namespace, this.name].filter(Boolean).join("/")
|
|
43
41
|
}
|
|
42
|
+
get key(): RefKey {
|
|
43
|
+
return new RefKey(this.kind, this.name)
|
|
44
|
+
}
|
|
45
|
+
get kind() {
|
|
46
|
+
return this.entity.kind
|
|
47
|
+
}
|
|
44
48
|
|
|
45
49
|
get namespace() {
|
|
46
50
|
return this.meta?.tryGet("namespace")
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
get trace() {
|
|
50
|
-
return TraceEmbedder.get(this)
|
|
54
|
+
return TraceEmbedder.get(this.entity)
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
get isExported() {
|
|
@@ -55,25 +59,25 @@ export class ResourceNode extends BaseNode<ResourceNode, ResourceEntity> {
|
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
get meta() {
|
|
58
|
-
return "meta" in this.
|
|
62
|
+
return "meta" in this.entity ? (this.entity.meta as Meta) : undefined
|
|
59
63
|
}
|
|
60
64
|
|
|
61
65
|
get isExternal() {
|
|
62
66
|
return this.origins.some(x => x.name === "EXTERNAL").pull()
|
|
63
67
|
}
|
|
64
68
|
|
|
65
|
-
when<EntityType extends
|
|
66
|
-
type:
|
|
69
|
+
when<EntityType extends Resource_Entity>(
|
|
70
|
+
type: AnyCtor<EntityType>,
|
|
67
71
|
fn: (entity: EntityType) => void
|
|
68
72
|
) {
|
|
69
|
-
const entity = this.
|
|
73
|
+
const entity = this.entity as EntityType
|
|
70
74
|
if (entity instanceof type) {
|
|
71
75
|
fn(entity)
|
|
72
76
|
}
|
|
73
77
|
}
|
|
74
78
|
|
|
75
|
-
as<EntityType extends
|
|
76
|
-
const entity = this.
|
|
79
|
+
as<EntityType extends Resource_Entity>(type: AnyCtor<EntityType>) {
|
|
80
|
+
const entity = this.entity as EntityType
|
|
77
81
|
if (entity instanceof type) {
|
|
78
82
|
return entity
|
|
79
83
|
}
|
|
@@ -85,7 +89,7 @@ export class ResourceNode extends BaseNode<ResourceNode, ResourceEntity> {
|
|
|
85
89
|
get origins() {
|
|
86
90
|
const self = this
|
|
87
91
|
return seq(function* () {
|
|
88
|
-
let current:
|
|
92
|
+
let current: OriginNode | null = self.origin
|
|
89
93
|
while (current) {
|
|
90
94
|
yield current
|
|
91
95
|
current = current.parent
|
|
@@ -93,15 +97,7 @@ export class ResourceNode extends BaseNode<ResourceNode, ResourceEntity> {
|
|
|
93
97
|
})
|
|
94
98
|
}
|
|
95
99
|
|
|
96
|
-
get
|
|
97
|
-
return seq(this._relations.kids)
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
get parent() {
|
|
101
|
-
return this._relations.parent()
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
override get shortFqn() {
|
|
100
|
+
get shortFqn() {
|
|
105
101
|
return `${this.origin.name}:${this.key}`
|
|
106
102
|
}
|
|
107
103
|
|
|
@@ -112,22 +108,14 @@ export class ResourceNode extends BaseNode<ResourceNode, ResourceEntity> {
|
|
|
112
108
|
format(format: Formats) {
|
|
113
109
|
return Displayers.get(this).pretty(format)
|
|
114
110
|
}
|
|
115
|
-
private get _relations() {
|
|
116
|
-
return Relations.get(this._entity)
|
|
117
|
-
}
|
|
118
111
|
|
|
119
112
|
hasKind(kind: Kind.Identifier) {
|
|
120
113
|
return this.kind.equals(kind)
|
|
121
114
|
}
|
|
122
115
|
constructor(
|
|
123
|
-
readonly origin:
|
|
124
|
-
readonly entity:
|
|
125
|
-
readonly key: RefKey
|
|
116
|
+
readonly origin: OriginNode,
|
|
117
|
+
readonly entity: Resource_Entity
|
|
126
118
|
) {
|
|
127
119
|
super(entity)
|
|
128
120
|
}
|
|
129
121
|
}
|
|
130
|
-
export interface MetadataEntity extends BaseEntity<ResourceNode> {
|
|
131
|
-
meta: MutableMeta
|
|
132
|
-
}
|
|
133
|
-
export interface ResourceEntity extends BaseEntity<ResourceNode> {}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { InstrumentsError } from "../../../../error"
|
|
2
|
+
import type { Kind } from "../api-kind"
|
|
3
|
+
|
|
4
|
+
export type RefKey_Input = RefKey | RefKey["string"]
|
|
5
|
+
export type RefKey_sFormat<Kind extends string, Name extends string> = `${Kind}/${Name}`
|
|
6
|
+
const separator = "/"
|
|
7
|
+
export interface RefKey_Parsed {
|
|
8
|
+
kind: string
|
|
9
|
+
name: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function parse(ref: string) {
|
|
13
|
+
const result = tryParse(ref)
|
|
14
|
+
if (!result) {
|
|
15
|
+
throw new InstrumentsError(`Could not parse reference key: ${ref}`)
|
|
16
|
+
}
|
|
17
|
+
return result
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function tryParse(ref: string): RefKey_Parsed | undefined {
|
|
21
|
+
if (typeof ref !== "string") {
|
|
22
|
+
return undefined
|
|
23
|
+
}
|
|
24
|
+
if (ref == null) {
|
|
25
|
+
return undefined
|
|
26
|
+
}
|
|
27
|
+
if (typeof ref === "object") {
|
|
28
|
+
return undefined
|
|
29
|
+
}
|
|
30
|
+
const [kind, name] = ref.split(separator).map(s => s.trim())
|
|
31
|
+
if (!kind || !name) {
|
|
32
|
+
return undefined
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
kind,
|
|
36
|
+
name
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class RefKey<K extends Kind.IdentParent = Kind.IdentParent, Name extends string = string> {
|
|
40
|
+
constructor(
|
|
41
|
+
readonly kind: K,
|
|
42
|
+
readonly name: Name
|
|
43
|
+
) {}
|
|
44
|
+
|
|
45
|
+
get string(): RefKey_sFormat<K["name"], Name> {
|
|
46
|
+
return [this.kind.name, this.name].join(separator) as RefKey_sFormat<K["name"], Name>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
equals(other: RefKey): boolean {
|
|
50
|
+
if (other == null) {
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
if (typeof other !== "object") {
|
|
54
|
+
return false
|
|
55
|
+
}
|
|
56
|
+
return this.kind.equals(other.kind) && this.name === other.name
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
toString() {
|
|
60
|
+
return this.string
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { seq } from "doddle"
|
|
2
|
+
import type { Resource_Core_Ref } from "."
|
|
3
|
+
import { FwReference } from "."
|
|
4
|
+
import type { Origin_Exporter } from "../../origin"
|
|
5
|
+
import { ProxyOperationError } from "./error"
|
|
6
|
+
|
|
7
|
+
export type FwRef_Exports_ByKey<Exports extends Resource_Core_Ref = Resource_Core_Ref> = {
|
|
8
|
+
[E in Exports as `${E["kind"]["name"]}/${E["name"]}`]: FwReference<E>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type FwRef_Exports<Exported extends Resource_Core_Ref = Resource_Core_Ref> =
|
|
12
|
+
FxRef_Exports_Proxied & FwRef_Exports_ByKey<Exported>
|
|
13
|
+
|
|
14
|
+
export type FwRef_Exports_Brand = FxRef_Exports_Proxied
|
|
15
|
+
|
|
16
|
+
export function FwRef_Exports<Exported extends Resource_Core_Ref>(
|
|
17
|
+
entity: Origin_Exporter
|
|
18
|
+
): FwRef_Exports<Exported> {
|
|
19
|
+
const proxied = new FxRef_Exports_Proxied(entity)
|
|
20
|
+
const handler = new FwRef_Exports_Handler(proxied)
|
|
21
|
+
return new Proxy(proxied, handler) as any
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export class FxRef_Exports_Proxied {
|
|
25
|
+
#entity: Origin_Exporter
|
|
26
|
+
constructor(entity: Origin_Exporter) {
|
|
27
|
+
this.#entity = entity
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
__entity__(act?: (entity: Origin_Exporter) => any): Origin_Exporter {
|
|
31
|
+
return this.#entity as any
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
class FwRef_Exports_Handler<Entity extends Origin_Exporter> implements ProxyHandler<Entity> {
|
|
36
|
+
constructor(private readonly _subject: FxRef_Exports_Proxied) {}
|
|
37
|
+
|
|
38
|
+
get entity() {
|
|
39
|
+
return this._subject["__entity__"]()
|
|
40
|
+
}
|
|
41
|
+
get node() {
|
|
42
|
+
return this.entity.node
|
|
43
|
+
}
|
|
44
|
+
get resourceKinds() {
|
|
45
|
+
return this.node.resourceKinds
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#createImmutableError(action: string) {
|
|
49
|
+
return new ProxyOperationError(
|
|
50
|
+
`Tried to ${action} an the exports constructs of ${this.entity}, but it is immutable.`
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
defineProperty(_: object, property: string | symbol, __: PropertyDescriptor): boolean {
|
|
55
|
+
throw this.#createImmutableError(`define property ${String(property)} on`)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
deleteProperty(_: object, property: string | symbol): boolean {
|
|
59
|
+
throw this.#createImmutableError(`delete property ${String(property)} from`)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
getPrototypeOf(_: Entity): object | null {
|
|
63
|
+
const r = Reflect.getPrototypeOf(this.entity)
|
|
64
|
+
return r
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
get exported() {
|
|
68
|
+
return seq(this.entity.resources)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
#isValidReferant(prop: PropertyKey) {
|
|
72
|
+
return this.resourceKinds.tryParse(prop as string) != null
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
get(target: any, property: string | symbol): any {
|
|
76
|
+
const key = property as string
|
|
77
|
+
if (key === "constructor") {
|
|
78
|
+
return this._subject.__entity__().constructor
|
|
79
|
+
}
|
|
80
|
+
if (Reflect.has(this._subject, key)) {
|
|
81
|
+
const x = Reflect.get(this._subject, property)
|
|
82
|
+
if (typeof x === "function") {
|
|
83
|
+
return x.bind(this._subject)
|
|
84
|
+
}
|
|
85
|
+
return x
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const resourceKinds = this.resourceKinds
|
|
89
|
+
const refKey = resourceKinds.tryParse(key)
|
|
90
|
+
const clazz = resourceKinds.tryGetClass(key)
|
|
91
|
+
if (refKey == null) {
|
|
92
|
+
return undefined
|
|
93
|
+
}
|
|
94
|
+
return FwReference({
|
|
95
|
+
class: clazz,
|
|
96
|
+
key: refKey,
|
|
97
|
+
origin: this.entity,
|
|
98
|
+
namespace: this.entity.meta.tryGet("namespace"),
|
|
99
|
+
resolver: this.exported
|
|
100
|
+
.first(exp => exp.node.key.equals(refKey))
|
|
101
|
+
.map(x => {
|
|
102
|
+
if (x == null) {
|
|
103
|
+
throw new ProxyOperationError(
|
|
104
|
+
`Failed to resolve forward reference to ${refKey} in ${this.entity}.`
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
return x
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
has(_: Entity, p: string | symbol): boolean {
|
|
113
|
+
if (Reflect.has(this.entity, p)) {
|
|
114
|
+
return true
|
|
115
|
+
}
|
|
116
|
+
if (!this.#isValidReferant(p)) {
|
|
117
|
+
return false
|
|
118
|
+
}
|
|
119
|
+
return true
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
isExtensible(target: Entity): boolean {
|
|
123
|
+
return false
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
preventExtensions(target: Entity): boolean {
|
|
127
|
+
return true
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
ownKeys(target: Entity): ArrayLike<string | symbol> {
|
|
131
|
+
throw new ProxyOperationError(
|
|
132
|
+
`Cannot list all keys of a dynamic exports construct for ${this.entity}.`
|
|
133
|
+
)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
set(target: Entity, p: string | symbol, newValue: any, receiver: any): boolean {
|
|
137
|
+
throw this.#createImmutableError(`set property ${String(p)} on`)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
setPrototypeOf(target: Entity, v: any): boolean {
|
|
141
|
+
throw this.#createImmutableError(`set prototype of`)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
_tryTargetDescriptor(p: PropertyKey) {
|
|
145
|
+
return Object.getOwnPropertyDescriptor(this.entity, p)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
getOwnPropertyDescriptor(target: Entity, p: string | symbol): PropertyDescriptor | undefined {
|
|
149
|
+
const desc = this._tryTargetDescriptor(p)
|
|
150
|
+
if (desc) {
|
|
151
|
+
return desc
|
|
152
|
+
}
|
|
153
|
+
const value = this.get(this.entity, p)
|
|
154
|
+
if (value == null) {
|
|
155
|
+
return undefined
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
configurable: false,
|
|
159
|
+
enumerable: true,
|
|
160
|
+
value,
|
|
161
|
+
writable: false
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { Doddle } from "doddle"
|
|
2
|
+
import type { AnyCtor } from "what-are-you"
|
|
3
|
+
import type { RefKey } from "../ref-key"
|
|
4
|
+
import { ProxyOperationError } from "./error"
|
|
5
|
+
import type { Resource_Core_Ref } from "./refable"
|
|
6
|
+
|
|
7
|
+
export type FwReference<T extends Resource_Core_Ref = Resource_Core_Ref> = FwReference_Proxied<T> &
|
|
8
|
+
T
|
|
9
|
+
export function FwReference<Referenced extends Resource_Core_Ref>(
|
|
10
|
+
props: FwReference_Props<Referenced>
|
|
11
|
+
): FwReference<Referenced> {
|
|
12
|
+
const core = new FwReference_Proxied(props)
|
|
13
|
+
return new Proxy(core, new FwRef_Handler(core)) as FwReference<Referenced>
|
|
14
|
+
}
|
|
15
|
+
export namespace FwReference {
|
|
16
|
+
export function is(obj: any): obj is FwReference {
|
|
17
|
+
return FwReference_Proxied.is(obj)
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export interface FwReference_Props<Referenced extends Resource_Core_Ref> {
|
|
21
|
+
readonly class?: AnyCtor<Referenced>
|
|
22
|
+
readonly key: RefKey
|
|
23
|
+
readonly namespace?: string
|
|
24
|
+
readonly origin: object
|
|
25
|
+
readonly resolver: Doddle<Referenced>
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
class FwReference_Proxied<To extends Resource_Core_Ref> {
|
|
29
|
+
readonly #props: FwReference_Props<To>
|
|
30
|
+
constructor(props: FwReference_Props<To>) {
|
|
31
|
+
this.#props = props
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static is(obj: any): obj is FwReference {
|
|
35
|
+
return obj && typeof obj === "object" && "__reference_props__" in obj
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
protected __pull__() {
|
|
39
|
+
return this.#props.resolver.pull()
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
protected __reference_props__() {
|
|
43
|
+
return this.#props
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
class FwRef_Handler<T extends Resource_Core_Ref> implements ProxyHandler<T> {
|
|
48
|
+
get _props() {
|
|
49
|
+
return this._subject["__reference_props__"]()
|
|
50
|
+
}
|
|
51
|
+
constructor(private readonly _subject: FwReference_Proxied<T>) {}
|
|
52
|
+
|
|
53
|
+
get(target: T, prop: PropertyKey) {
|
|
54
|
+
const { _props, _subject } = this
|
|
55
|
+
if (prop === "constructor") {
|
|
56
|
+
return this._props.class
|
|
57
|
+
}
|
|
58
|
+
if (Reflect.has(_subject, prop)) {
|
|
59
|
+
return Reflect.get(_subject, prop)
|
|
60
|
+
}
|
|
61
|
+
const resource = _subject["__pull__"]() as any
|
|
62
|
+
const result = Reflect.get(resource, prop)
|
|
63
|
+
if (typeof result === "function") {
|
|
64
|
+
return result.bind(resource)
|
|
65
|
+
}
|
|
66
|
+
return result
|
|
67
|
+
}
|
|
68
|
+
getPrototypeOf(target: T) {
|
|
69
|
+
const Resource_Top = require("../top").Resource_Top
|
|
70
|
+
return this._props.class?.prototype ?? Resource_Top.prototype
|
|
71
|
+
}
|
|
72
|
+
has(target: T, prop: PropertyKey) {
|
|
73
|
+
const { _props, _subject } = this
|
|
74
|
+
if (Reflect.has(_subject, prop)) {
|
|
75
|
+
return true
|
|
76
|
+
}
|
|
77
|
+
const resource = _props.resolver.pull() as any
|
|
78
|
+
return Reflect.has(resource, prop)
|
|
79
|
+
}
|
|
80
|
+
getOwnPropertyDescriptor(_: T, p: string | symbol): PropertyDescriptor | undefined {
|
|
81
|
+
const { _subject, _props } = this
|
|
82
|
+
const desc = Object.getOwnPropertyDescriptor(_subject, p)
|
|
83
|
+
if (desc) {
|
|
84
|
+
desc.configurable = false
|
|
85
|
+
return desc
|
|
86
|
+
}
|
|
87
|
+
const resource = _props.resolver.pull() as any
|
|
88
|
+
const resourceDesc = Object.getOwnPropertyDescriptor(resource, p)
|
|
89
|
+
return resourceDesc
|
|
90
|
+
}
|
|
91
|
+
get referant() {
|
|
92
|
+
return this._subject["__reference_props__"]().key.string
|
|
93
|
+
}
|
|
94
|
+
#createImmutableError(action: string) {
|
|
95
|
+
return new ProxyOperationError(
|
|
96
|
+
`Tried to ${action} a forward reference to ${this.referant}, but it cannot be modified.`
|
|
97
|
+
)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
defineProperty(_: any, property: string | symbol, desc: PropertyDescriptor): boolean {
|
|
101
|
+
throw this.#createImmutableError(`define property ${String(property)} on`)
|
|
102
|
+
}
|
|
103
|
+
deleteProperty(_: T, p: string | symbol): boolean {
|
|
104
|
+
throw this.#createImmutableError(`delete property ${String(p)} from`)
|
|
105
|
+
}
|
|
106
|
+
preventExtensions(): boolean {
|
|
107
|
+
return true
|
|
108
|
+
}
|
|
109
|
+
isExtensible(): boolean {
|
|
110
|
+
return false
|
|
111
|
+
}
|
|
112
|
+
set(_: T, p: string | symbol): boolean {
|
|
113
|
+
throw this.#createImmutableError(`set property ${String(p)} on`)
|
|
114
|
+
}
|
|
115
|
+
ownKeys(): ArrayLike<string | symbol> {
|
|
116
|
+
const pulled = this._props.resolver.pull() as any
|
|
117
|
+
return [...Reflect.ownKeys(this._subject), ...Reflect.ownKeys(pulled)]
|
|
118
|
+
}
|
|
119
|
+
setPrototypeOf(): boolean {
|
|
120
|
+
throw this.#createImmutableError(`set the prototype of`)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AnyCtor } from "what-are-you"
|
|
2
|
+
import type { Kind } from "../api-kind"
|
|
3
|
+
import type { Resource_Entity } from "../entity"
|
|
4
|
+
import type { Resource_Node } from "../node"
|
|
5
|
+
|
|
6
|
+
export type Resource_Min_Ref<K extends Kind.IdentParent = Kind.IdentParent> = { kind: K }
|
|
7
|
+
export type Resource_Ctor_Of<K extends Kind.IdentParent = Kind.IdentParent> = AnyCtor<
|
|
8
|
+
Resource_Core_Ref<K>
|
|
9
|
+
> & {
|
|
10
|
+
prototype: Resource_Core_Ref<K>
|
|
11
|
+
}
|
|
12
|
+
export type Resource_Core_Ref<
|
|
13
|
+
Kind extends Kind.IdentParent = Kind.IdentParent,
|
|
14
|
+
Name extends string = string
|
|
15
|
+
> = Resource_Min_Ref<Kind> & {
|
|
16
|
+
name: Name
|
|
17
|
+
equals(other: any): boolean
|
|
18
|
+
node: Resource_Node
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type Resource_Full_Ref<
|
|
22
|
+
_Kind extends Kind.IdentParent = Kind.IdentParent,
|
|
23
|
+
_Name extends string = string
|
|
24
|
+
> = Resource_Core_Ref<_Kind, _Name> & Resource_Entity<_Name>
|