@mysten-incubation/devstack 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +189 -0
- package/README.md +94 -0
- package/dist/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/api/define-capabilities.d.mts +25 -0
- package/dist/api/define-capabilities.mjs +19 -0
- package/dist/api/define-capabilities.mjs.map +1 -0
- package/dist/api/define-devstack-with.d.mts +41 -0
- package/dist/api/define-devstack-with.mjs +24 -0
- package/dist/api/define-devstack-with.mjs.map +1 -0
- package/dist/api/define-devstack.d.mts +62 -0
- package/dist/api/define-devstack.mjs +108 -0
- package/dist/api/define-devstack.mjs.map +1 -0
- package/dist/api/define-plugin.d.mts +1 -0
- package/dist/api/inference-network.mjs +122 -0
- package/dist/api/inference-network.mjs.map +1 -0
- package/dist/api/mode-narrowed-factory.d.mts +26 -0
- package/dist/api/mode-narrowed-factory.mjs +8 -0
- package/dist/api/mode-narrowed-factory.mjs.map +1 -0
- package/dist/api/plugin-errors.mjs +10 -0
- package/dist/api/plugin-errors.mjs.map +1 -0
- package/dist/api/run-stack.d.mts +82 -0
- package/dist/api/run-stack.mjs +127 -0
- package/dist/api/run-stack.mjs.map +1 -0
- package/dist/build-integrations/playwright/config.d.mts +92 -0
- package/dist/build-integrations/playwright/config.mjs +71 -0
- package/dist/build-integrations/playwright/config.mjs.map +1 -0
- package/dist/build-integrations/playwright/errors.d.mts +82 -0
- package/dist/build-integrations/playwright/errors.mjs +43 -0
- package/dist/build-integrations/playwright/errors.mjs.map +1 -0
- package/dist/build-integrations/playwright/global-setup.d.mts +64 -0
- package/dist/build-integrations/playwright/global-setup.mjs +44 -0
- package/dist/build-integrations/playwright/global-setup.mjs.map +1 -0
- package/dist/build-integrations/playwright/index.d.mts +6 -0
- package/dist/build-integrations/playwright/index.mjs +6 -0
- package/dist/build-integrations/playwright/stack-context.d.mts +95 -0
- package/dist/build-integrations/playwright/stack-context.mjs +277 -0
- package/dist/build-integrations/playwright/stack-context.mjs.map +1 -0
- package/dist/build-integrations/playwright/wallet-context.d.mts +87 -0
- package/dist/build-integrations/playwright/wallet-context.mjs +148 -0
- package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -0
- package/dist/build-integrations/runtime/cold-start-url.d.mts +67 -0
- package/dist/build-integrations/runtime/cold-start-url.mjs +56 -0
- package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -0
- package/dist/build-integrations/runtime/dapp-kit-slot.mjs +10 -0
- package/dist/build-integrations/runtime/dapp-kit-slot.mjs.map +1 -0
- package/dist/build-integrations/runtime/discover.d.mts +78 -0
- package/dist/build-integrations/runtime/discover.mjs +124 -0
- package/dist/build-integrations/runtime/discover.mjs.map +1 -0
- package/dist/build-integrations/runtime/endpoint-registry.d.mts +26 -0
- package/dist/build-integrations/runtime/endpoint-registry.mjs +41 -0
- package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -0
- package/dist/build-integrations/runtime/errors.d.mts +64 -0
- package/dist/build-integrations/runtime/errors.mjs +51 -0
- package/dist/build-integrations/runtime/errors.mjs.map +1 -0
- package/dist/build-integrations/runtime/index.d.mts +7 -0
- package/dist/build-integrations/runtime/index.mjs +6 -0
- package/dist/build-integrations/runtime/read-stack-context.d.mts +38 -0
- package/dist/build-integrations/runtime/read-stack-context.mjs +130 -0
- package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -0
- package/dist/build-integrations/runtime/stack-context.d.mts +53 -0
- package/dist/build-integrations/vitest/config.d.mts +62 -0
- package/dist/build-integrations/vitest/config.mjs +80 -0
- package/dist/build-integrations/vitest/config.mjs.map +1 -0
- package/dist/build-integrations/vitest/env.d.mts +48 -0
- package/dist/build-integrations/vitest/env.mjs +50 -0
- package/dist/build-integrations/vitest/env.mjs.map +1 -0
- package/dist/build-integrations/vitest/errors.d.mts +44 -0
- package/dist/build-integrations/vitest/errors.mjs +18 -0
- package/dist/build-integrations/vitest/errors.mjs.map +1 -0
- package/dist/build-integrations/vitest/index.d.mts +6 -0
- package/dist/build-integrations/vitest/index.mjs +6 -0
- package/dist/build-integrations/vitest/setup.d.mts +53 -0
- package/dist/build-integrations/vitest/setup.mjs +56 -0
- package/dist/build-integrations/vitest/setup.mjs.map +1 -0
- package/dist/build-integrations/vitest/stack-context.d.mts +58 -0
- package/dist/build-integrations/vitest/stack-context.mjs +67 -0
- package/dist/build-integrations/vitest/stack-context.mjs.map +1 -0
- package/dist/cli/main.d.mts +5 -0
- package/dist/cli/main.mjs +586 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cli/prune-direct.mjs +216 -0
- package/dist/cli/prune-direct.mjs.map +1 -0
- package/dist/cli/snapshot-reader.mjs +73 -0
- package/dist/cli/snapshot-reader.mjs.map +1 -0
- package/dist/cli/up-lifecycle.mjs +28 -0
- package/dist/cli/up-lifecycle.mjs.map +1 -0
- package/dist/contracts/capability-decl.d.mts +42 -0
- package/dist/contracts/chain-probe.d.mts +26 -0
- package/dist/contracts/chain-probe.mjs +8 -0
- package/dist/contracts/chain-probe.mjs.map +1 -0
- package/dist/contracts/codegenable.d.mts +43 -0
- package/dist/contracts/container-runtime.d.mts +245 -0
- package/dist/contracts/liveness-classifier.d.mts +19 -0
- package/dist/contracts/network-resolver.d.mts +15 -0
- package/dist/contracts/network-resolver.mjs +7 -0
- package/dist/contracts/network-resolver.mjs.map +1 -0
- package/dist/contracts/projection.d.mts +15 -0
- package/dist/contracts/routable.d.mts +53 -0
- package/dist/contracts/snapshotable.d.mts +39 -0
- package/dist/contracts/strategy-contributor.d.mts +26 -0
- package/dist/index.d.mts +89 -0
- package/dist/index.mjs +37 -0
- package/dist/orchestrators/codegen/bindings.d.mts +2 -0
- package/dist/orchestrators/codegen/bindings.mjs +340 -0
- package/dist/orchestrators/codegen/bindings.mjs.map +1 -0
- package/dist/orchestrators/codegen/emit.mjs +56 -0
- package/dist/orchestrators/codegen/emit.mjs.map +1 -0
- package/dist/orchestrators/codegen/errors.d.mts +1 -0
- package/dist/orchestrators/codegen/errors.mjs +66 -0
- package/dist/orchestrators/codegen/errors.mjs.map +1 -0
- package/dist/orchestrators/codegen/extras.mjs +16 -0
- package/dist/orchestrators/codegen/extras.mjs.map +1 -0
- package/dist/orchestrators/codegen/format.mjs +109 -0
- package/dist/orchestrators/codegen/format.mjs.map +1 -0
- package/dist/orchestrators/codegen/gitignore.mjs +67 -0
- package/dist/orchestrators/codegen/gitignore.mjs.map +1 -0
- package/dist/orchestrators/codegen/paths.d.mts +1 -0
- package/dist/orchestrators/codegen/paths.mjs +33 -0
- package/dist/orchestrators/codegen/paths.mjs.map +1 -0
- package/dist/orchestrators/codegen/permissions.mjs +6 -0
- package/dist/orchestrators/codegen/permissions.mjs.map +1 -0
- package/dist/orchestrators/codegen/service.d.mts +1 -0
- package/dist/orchestrators/codegen/service.mjs +276 -0
- package/dist/orchestrators/codegen/service.mjs.map +1 -0
- package/dist/orchestrators/router/cleanup.mjs +58 -0
- package/dist/orchestrators/router/cleanup.mjs.map +1 -0
- package/dist/orchestrators/router/cors.mjs +31 -0
- package/dist/orchestrators/router/cors.mjs.map +1 -0
- package/dist/orchestrators/router/entrypoints.d.mts +1 -0
- package/dist/orchestrators/router/entrypoints.mjs +80 -0
- package/dist/orchestrators/router/entrypoints.mjs.map +1 -0
- package/dist/orchestrators/router/errors.d.mts +1 -0
- package/dist/orchestrators/router/errors.mjs +103 -0
- package/dist/orchestrators/router/errors.mjs.map +1 -0
- package/dist/orchestrators/router/file-provider.d.mts +1 -0
- package/dist/orchestrators/router/file-provider.mjs +320 -0
- package/dist/orchestrators/router/file-provider.mjs.map +1 -0
- package/dist/orchestrators/router/hostname.d.mts +1 -0
- package/dist/orchestrators/router/hostname.mjs +107 -0
- package/dist/orchestrators/router/hostname.mjs.map +1 -0
- package/dist/orchestrators/router/index.d.mts +1 -0
- package/dist/orchestrators/router/profile.d.mts +1 -0
- package/dist/orchestrators/router/profile.mjs +109 -0
- package/dist/orchestrators/router/profile.mjs.map +1 -0
- package/dist/orchestrators/router/service.d.mts +3 -0
- package/dist/orchestrators/router/service.mjs +421 -0
- package/dist/orchestrators/router/service.mjs.map +1 -0
- package/dist/orchestrators/router/traefik-container.d.mts +1 -0
- package/dist/orchestrators/router/traefik-container.mjs +229 -0
- package/dist/orchestrators/router/traefik-container.mjs.map +1 -0
- package/dist/orchestrators/runtime-composition.d.mts +10 -0
- package/dist/orchestrators/runtime-composition.mjs +168 -0
- package/dist/orchestrators/runtime-composition.mjs.map +1 -0
- package/dist/orchestrators/snapshot/capture.d.mts +1 -0
- package/dist/orchestrators/snapshot/capture.mjs +350 -0
- package/dist/orchestrators/snapshot/capture.mjs.map +1 -0
- package/dist/orchestrators/snapshot/descriptor.d.mts +1 -0
- package/dist/orchestrators/snapshot/descriptor.mjs +109 -0
- package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -0
- package/dist/orchestrators/snapshot/identity-guard.d.mts +1 -0
- package/dist/orchestrators/snapshot/identity-guard.mjs +132 -0
- package/dist/orchestrators/snapshot/identity-guard.mjs.map +1 -0
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs +207 -0
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs.map +1 -0
- package/dist/orchestrators/snapshot/index.d.mts +1 -0
- package/dist/orchestrators/snapshot/integrity.d.mts +1 -0
- package/dist/orchestrators/snapshot/integrity.mjs +74 -0
- package/dist/orchestrators/snapshot/integrity.mjs.map +1 -0
- package/dist/orchestrators/snapshot/prune.d.mts +1 -0
- package/dist/orchestrators/snapshot/prune.mjs +110 -0
- package/dist/orchestrators/snapshot/prune.mjs.map +1 -0
- package/dist/orchestrators/snapshot/restore.d.mts +1 -0
- package/dist/orchestrators/snapshot/restore.mjs +404 -0
- package/dist/orchestrators/snapshot/restore.mjs.map +1 -0
- package/dist/orchestrators/snapshot/service.d.mts +1 -0
- package/dist/orchestrators/snapshot/service.mjs +296 -0
- package/dist/orchestrators/snapshot/service.mjs.map +1 -0
- package/dist/orchestrators/snapshot/state-document.mjs +18 -0
- package/dist/orchestrators/snapshot/state-document.mjs.map +1 -0
- package/dist/orchestrators/snapshot/wipe.d.mts +1 -0
- package/dist/orchestrators/snapshot/wipe.mjs +59 -0
- package/dist/orchestrators/snapshot/wipe.mjs.map +1 -0
- package/dist/plugins/account/codegen.d.mts +12 -0
- package/dist/plugins/account/codegen.mjs +22 -0
- package/dist/plugins/account/codegen.mjs.map +1 -0
- package/dist/plugins/account/errors.d.mts +44 -0
- package/dist/plugins/account/errors.mjs +16 -0
- package/dist/plugins/account/errors.mjs.map +1 -0
- package/dist/plugins/account/funding.d.mts +94 -0
- package/dist/plugins/account/funding.mjs +199 -0
- package/dist/plugins/account/funding.mjs.map +1 -0
- package/dist/plugins/account/index.d.mts +54 -0
- package/dist/plugins/account/index.mjs +151 -0
- package/dist/plugins/account/index.mjs.map +1 -0
- package/dist/plugins/account/keypair.d.mts +32 -0
- package/dist/plugins/account/keypair.mjs +99 -0
- package/dist/plugins/account/keypair.mjs.map +1 -0
- package/dist/plugins/account/lease.mjs +21 -0
- package/dist/plugins/account/lease.mjs.map +1 -0
- package/dist/plugins/account/registry.d.mts +33 -0
- package/dist/plugins/account/registry.mjs +36 -0
- package/dist/plugins/account/registry.mjs.map +1 -0
- package/dist/plugins/account/service.d.mts +104 -0
- package/dist/plugins/account/service.mjs +405 -0
- package/dist/plugins/account/service.mjs.map +1 -0
- package/dist/plugins/account/snapshot.mjs +33 -0
- package/dist/plugins/account/snapshot.mjs.map +1 -0
- package/dist/plugins/account/variants/env.mjs +24 -0
- package/dist/plugins/account/variants/env.mjs.map +1 -0
- package/dist/plugins/account/variants/ephemeral.mjs +72 -0
- package/dist/plugins/account/variants/ephemeral.mjs.map +1 -0
- package/dist/plugins/account/variants/impersonate.d.mts +16 -0
- package/dist/plugins/account/variants/impersonate.mjs +48 -0
- package/dist/plugins/account/variants/impersonate.mjs.map +1 -0
- package/dist/plugins/account/variants/inline.mjs +13 -0
- package/dist/plugins/account/variants/inline.mjs.map +1 -0
- package/dist/plugins/account/variants/keystore.mjs +93 -0
- package/dist/plugins/account/variants/keystore.mjs.map +1 -0
- package/dist/plugins/account/variants/signer.mjs +31 -0
- package/dist/plugins/account/variants/signer.mjs.map +1 -0
- package/dist/plugins/action/build-context.d.mts +41 -0
- package/dist/plugins/action/discriminator.d.mts +20 -0
- package/dist/plugins/action/discriminator.mjs +13 -0
- package/dist/plugins/action/discriminator.mjs.map +1 -0
- package/dist/plugins/action/errors.d.mts +31 -0
- package/dist/plugins/action/errors.mjs +13 -0
- package/dist/plugins/action/errors.mjs.map +1 -0
- package/dist/plugins/action/execute.d.mts +2 -0
- package/dist/plugins/action/execute.mjs +145 -0
- package/dist/plugins/action/execute.mjs.map +1 -0
- package/dist/plugins/action/index.d.mts +56 -0
- package/dist/plugins/action/index.mjs +82 -0
- package/dist/plugins/action/index.mjs.map +1 -0
- package/dist/plugins/action/service.d.mts +26 -0
- package/dist/plugins/action/service.mjs +84 -0
- package/dist/plugins/action/service.mjs.map +1 -0
- package/dist/plugins/coin/address-resolution.d.mts +34 -0
- package/dist/plugins/coin/address-resolution.mjs +80 -0
- package/dist/plugins/coin/address-resolution.mjs.map +1 -0
- package/dist/plugins/coin/codegen.d.mts +16 -0
- package/dist/plugins/coin/codegen.mjs +21 -0
- package/dist/plugins/coin/codegen.mjs.map +1 -0
- package/dist/plugins/coin/discovery.d.mts +26 -0
- package/dist/plugins/coin/discovery.mjs +112 -0
- package/dist/plugins/coin/discovery.mjs.map +1 -0
- package/dist/plugins/coin/errors.d.mts +48 -0
- package/dist/plugins/coin/errors.mjs +13 -0
- package/dist/plugins/coin/errors.mjs.map +1 -0
- package/dist/plugins/coin/index.d.mts +95 -0
- package/dist/plugins/coin/index.mjs +172 -0
- package/dist/plugins/coin/index.mjs.map +1 -0
- package/dist/plugins/coin/metadata.d.mts +15 -0
- package/dist/plugins/coin/metadata.mjs +99 -0
- package/dist/plugins/coin/metadata.mjs.map +1 -0
- package/dist/plugins/coin/mint.d.mts +34 -0
- package/dist/plugins/coin/mint.mjs +164 -0
- package/dist/plugins/coin/mint.mjs.map +1 -0
- package/dist/plugins/coin/registry.d.mts +1 -0
- package/dist/plugins/coin/registry.mjs +37 -0
- package/dist/plugins/coin/registry.mjs.map +1 -0
- package/dist/plugins/coin/service.d.mts +47 -0
- package/dist/plugins/coin/service.mjs +51 -0
- package/dist/plugins/coin/service.mjs.map +1 -0
- package/dist/plugins/coin/snapshot.mjs +19 -0
- package/dist/plugins/coin/snapshot.mjs.map +1 -0
- package/dist/plugins/coin/type-strings.mjs +49 -0
- package/dist/plugins/coin/type-strings.mjs.map +1 -0
- package/dist/plugins/deepbook/codegen.d.mts +39 -0
- package/dist/plugins/deepbook/codegen.mjs +15 -0
- package/dist/plugins/deepbook/codegen.mjs.map +1 -0
- package/dist/plugins/deepbook/deploy.mjs +437 -0
- package/dist/plugins/deepbook/deploy.mjs.map +1 -0
- package/dist/plugins/deepbook/errors.d.mts +29 -0
- package/dist/plugins/deepbook/errors.mjs +26 -0
- package/dist/plugins/deepbook/errors.mjs.map +1 -0
- package/dist/plugins/deepbook/faucet-strategy.d.mts +8 -0
- package/dist/plugins/deepbook/faucet-strategy.mjs +81 -0
- package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -0
- package/dist/plugins/deepbook/index.d.mts +171 -0
- package/dist/plugins/deepbook/index.mjs +359 -0
- package/dist/plugins/deepbook/index.mjs.map +1 -0
- package/dist/plugins/deepbook/plugin-key.mjs +7 -0
- package/dist/plugins/deepbook/plugin-key.mjs.map +1 -0
- package/dist/plugins/deepbook/pyth/index.mjs +226 -0
- package/dist/plugins/deepbook/pyth/index.mjs.map +1 -0
- package/dist/plugins/deepbook/routable.mjs +21 -0
- package/dist/plugins/deepbook/routable.mjs.map +1 -0
- package/dist/plugins/deepbook/snapshot.mjs +49 -0
- package/dist/plugins/deepbook/snapshot.mjs.map +1 -0
- package/dist/plugins/deepbook/types.d.mts +125 -0
- package/dist/plugins/deepbook/types.mjs +12 -0
- package/dist/plugins/deepbook/types.mjs.map +1 -0
- package/dist/plugins/faucet/dispatcher.d.mts +9 -0
- package/dist/plugins/faucet/dispatcher.mjs +13 -0
- package/dist/plugins/faucet/dispatcher.mjs.map +1 -0
- package/dist/plugins/faucet/errors.d.mts +86 -0
- package/dist/plugins/faucet/errors.mjs +19 -0
- package/dist/plugins/faucet/errors.mjs.map +1 -0
- package/dist/plugins/faucet/http.mjs +127 -0
- package/dist/plugins/faucet/http.mjs.map +1 -0
- package/dist/plugins/faucet/index.d.mts +43 -0
- package/dist/plugins/faucet/index.mjs +42 -0
- package/dist/plugins/faucet/index.mjs.map +1 -0
- package/dist/plugins/faucet/service.d.mts +20 -0
- package/dist/plugins/faucet/strategies/sui-local.d.mts +23 -0
- package/dist/plugins/faucet/strategies/sui-local.mjs +29 -0
- package/dist/plugins/faucet/strategies/sui-local.mjs.map +1 -0
- package/dist/plugins/host-service/errors.d.mts +27 -0
- package/dist/plugins/host-service/errors.mjs +14 -0
- package/dist/plugins/host-service/errors.mjs.map +1 -0
- package/dist/plugins/host-service/index.d.mts +10 -0
- package/dist/plugins/host-service/index.mjs +48 -0
- package/dist/plugins/host-service/index.mjs.map +1 -0
- package/dist/plugins/host-service/routable.mjs +24 -0
- package/dist/plugins/host-service/routable.mjs.map +1 -0
- package/dist/plugins/host-service/service.d.mts +49 -0
- package/dist/plugins/host-service/service.mjs +375 -0
- package/dist/plugins/host-service/service.mjs.map +1 -0
- package/dist/plugins/package/build.d.mts +1 -0
- package/dist/plugins/package/build.mjs +24 -0
- package/dist/plugins/package/build.mjs.map +1 -0
- package/dist/plugins/package/codegen.d.mts +19 -0
- package/dist/plugins/package/codegen.mjs +41 -0
- package/dist/plugins/package/codegen.mjs.map +1 -0
- package/dist/plugins/package/dep-resolution.mjs +10 -0
- package/dist/plugins/package/dep-resolution.mjs.map +1 -0
- package/dist/plugins/package/errors.d.mts +34 -0
- package/dist/plugins/package/errors.mjs +13 -0
- package/dist/plugins/package/errors.mjs.map +1 -0
- package/dist/plugins/package/index.d.mts +109 -0
- package/dist/plugins/package/index.mjs +207 -0
- package/dist/plugins/package/index.mjs.map +1 -0
- package/dist/plugins/package/mode-known.mjs +41 -0
- package/dist/plugins/package/mode-known.mjs.map +1 -0
- package/dist/plugins/package/mode-local.d.mts +1 -0
- package/dist/plugins/package/mode-local.mjs +183 -0
- package/dist/plugins/package/mode-local.mjs.map +1 -0
- package/dist/plugins/package/publish-executor.mjs +202 -0
- package/dist/plugins/package/publish-executor.mjs.map +1 -0
- package/dist/plugins/package/publish-output.d.mts +28 -0
- package/dist/plugins/package/publish-output.mjs +45 -0
- package/dist/plugins/package/publish-output.mjs.map +1 -0
- package/dist/plugins/package/registry.d.mts +25 -0
- package/dist/plugins/package/registry.mjs +30 -0
- package/dist/plugins/package/registry.mjs.map +1 -0
- package/dist/plugins/package/service.mjs +20 -0
- package/dist/plugins/package/service.mjs.map +1 -0
- package/dist/plugins/package/snapshot.mjs +25 -0
- package/dist/plugins/package/snapshot.mjs.map +1 -0
- package/dist/plugins/postgres/codegen.mjs +42 -0
- package/dist/plugins/postgres/codegen.mjs.map +1 -0
- package/dist/plugins/postgres/connection.d.mts +33 -0
- package/dist/plugins/postgres/connection.mjs +19 -0
- package/dist/plugins/postgres/connection.mjs.map +1 -0
- package/dist/plugins/postgres/db-ensure.mjs +100 -0
- package/dist/plugins/postgres/db-ensure.mjs.map +1 -0
- package/dist/plugins/postgres/errors.d.mts +55 -0
- package/dist/plugins/postgres/errors.mjs +29 -0
- package/dist/plugins/postgres/errors.mjs.map +1 -0
- package/dist/plugins/postgres/index.d.mts +37 -0
- package/dist/plugins/postgres/index.mjs +75 -0
- package/dist/plugins/postgres/index.mjs.map +1 -0
- package/dist/plugins/postgres/routable.mjs +33 -0
- package/dist/plugins/postgres/routable.mjs.map +1 -0
- package/dist/plugins/postgres/service.d.mts +50 -0
- package/dist/plugins/postgres/service.mjs +145 -0
- package/dist/plugins/postgres/service.mjs.map +1 -0
- package/dist/plugins/postgres/snapshot.d.mts +1 -0
- package/dist/plugins/postgres/snapshot.mjs +32 -0
- package/dist/plugins/postgres/snapshot.mjs.map +1 -0
- package/dist/plugins/router-entrypoints.mjs +21 -0
- package/dist/plugins/router-entrypoints.mjs.map +1 -0
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +59 -0
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -0
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +132 -0
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -0
- package/dist/plugins/seal/codegen.d.mts +19 -0
- package/dist/plugins/seal/codegen.mjs +16 -0
- package/dist/plugins/seal/codegen.mjs.map +1 -0
- package/dist/plugins/seal/config-render.mjs +82 -0
- package/dist/plugins/seal/config-render.mjs.map +1 -0
- package/dist/plugins/seal/deploy.mjs +198 -0
- package/dist/plugins/seal/deploy.mjs.map +1 -0
- package/dist/plugins/seal/errors.d.mts +52 -0
- package/dist/plugins/seal/errors.mjs +19 -0
- package/dist/plugins/seal/errors.mjs.map +1 -0
- package/dist/plugins/seal/index.d.mts +161 -0
- package/dist/plugins/seal/index.mjs +235 -0
- package/dist/plugins/seal/index.mjs.map +1 -0
- package/dist/plugins/seal/key-manager.d.mts +22 -0
- package/dist/plugins/seal/key-manager.mjs +22 -0
- package/dist/plugins/seal/key-manager.mjs.map +1 -0
- package/dist/plugins/seal/key-server.mjs +175 -0
- package/dist/plugins/seal/key-server.mjs.map +1 -0
- package/dist/plugins/seal/keygen.mjs +96 -0
- package/dist/plugins/seal/keygen.mjs.map +1 -0
- package/dist/plugins/seal/mode/fork-known.d.mts +8 -0
- package/dist/plugins/seal/mode/fork-known.mjs +23 -0
- package/dist/plugins/seal/mode/fork-known.mjs.map +1 -0
- package/dist/plugins/seal/mode/live.d.mts +18 -0
- package/dist/plugins/seal/mode/live.mjs +64 -0
- package/dist/plugins/seal/mode/live.mjs.map +1 -0
- package/dist/plugins/seal/mode/local-keygen.mjs +180 -0
- package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -0
- package/dist/plugins/seal/plugin-key.mjs +7 -0
- package/dist/plugins/seal/plugin-key.mjs.map +1 -0
- package/dist/plugins/seal/registry-publish.d.mts +43 -0
- package/dist/plugins/seal/registry-publish.mjs +9 -0
- package/dist/plugins/seal/registry-publish.mjs.map +1 -0
- package/dist/plugins/seal/routable.mjs +57 -0
- package/dist/plugins/seal/routable.mjs.map +1 -0
- package/dist/plugins/seal/service.mjs +17 -0
- package/dist/plugins/seal/service.mjs.map +1 -0
- package/dist/plugins/seal/snapshot.mjs +51 -0
- package/dist/plugins/seal/snapshot.mjs.map +1 -0
- package/dist/plugins/sui/auto-tick.mjs +45 -0
- package/dist/plugins/sui/auto-tick.mjs.map +1 -0
- package/dist/plugins/sui/chain-build-container.d.mts +1 -0
- package/dist/plugins/sui/chain-probe.d.mts +85 -0
- package/dist/plugins/sui/chain-probe.mjs +104 -0
- package/dist/plugins/sui/chain-probe.mjs.map +1 -0
- package/dist/plugins/sui/codegen.d.mts +14 -0
- package/dist/plugins/sui/codegen.mjs +26 -0
- package/dist/plugins/sui/codegen.mjs.map +1 -0
- package/dist/plugins/sui/errors.d.mts +74 -0
- package/dist/plugins/sui/errors.mjs +28 -0
- package/dist/plugins/sui/errors.mjs.map +1 -0
- package/dist/plugins/sui/fork-orchestration.mjs +24 -0
- package/dist/plugins/sui/fork-orchestration.mjs.map +1 -0
- package/dist/plugins/sui/fork-transaction.mjs +96 -0
- package/dist/plugins/sui/fork-transaction.mjs.map +1 -0
- package/dist/plugins/sui/index.d.mts +318 -0
- package/dist/plugins/sui/index.mjs +182 -0
- package/dist/plugins/sui/index.mjs.map +1 -0
- package/dist/plugins/sui/mode/external.mjs +60 -0
- package/dist/plugins/sui/mode/external.mjs.map +1 -0
- package/dist/plugins/sui/mode/fork.mjs +283 -0
- package/dist/plugins/sui/mode/fork.mjs.map +1 -0
- package/dist/plugins/sui/mode/live.mjs +103 -0
- package/dist/plugins/sui/mode/live.mjs.map +1 -0
- package/dist/plugins/sui/mode/local.mjs +293 -0
- package/dist/plugins/sui/mode/local.mjs.map +1 -0
- package/dist/plugins/sui/mode/shared-boot.mjs +254 -0
- package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -0
- package/dist/plugins/sui/mode/shared.d.mts +103 -0
- package/dist/plugins/sui/mode/shared.mjs +12 -0
- package/dist/plugins/sui/mode/shared.mjs.map +1 -0
- package/dist/plugins/sui/mode/spec.d.mts +94 -0
- package/dist/plugins/sui/network-resolver.d.mts +23 -0
- package/dist/plugins/sui/routable.mjs +88 -0
- package/dist/plugins/sui/routable.mjs.map +1 -0
- package/dist/plugins/sui/seed-objects.d.mts +18 -0
- package/dist/plugins/sui/seed-objects.mjs +25 -0
- package/dist/plugins/sui/seed-objects.mjs.map +1 -0
- package/dist/plugins/sui/service.mjs +38 -0
- package/dist/plugins/sui/service.mjs.map +1 -0
- package/dist/plugins/sui/snapshot.mjs +53 -0
- package/dist/plugins/sui/snapshot.mjs.map +1 -0
- package/dist/plugins/wallet/codegen.d.mts +33 -0
- package/dist/plugins/wallet/codegen.mjs +34 -0
- package/dist/plugins/wallet/codegen.mjs.map +1 -0
- package/dist/plugins/wallet/errors.d.mts +66 -0
- package/dist/plugins/wallet/errors.mjs +16 -0
- package/dist/plugins/wallet/errors.mjs.map +1 -0
- package/dist/plugins/wallet/index.d.mts +63 -0
- package/dist/plugins/wallet/index.mjs +126 -0
- package/dist/plugins/wallet/index.mjs.map +1 -0
- package/dist/plugins/wallet/origin-policy.d.mts +1 -0
- package/dist/plugins/wallet/origin-policy.mjs +65 -0
- package/dist/plugins/wallet/origin-policy.mjs.map +1 -0
- package/dist/plugins/wallet/pairing.d.mts +11 -0
- package/dist/plugins/wallet/pairing.mjs +125 -0
- package/dist/plugins/wallet/pairing.mjs.map +1 -0
- package/dist/plugins/wallet/protocol.d.mts +1 -0
- package/dist/plugins/wallet/protocol.mjs +96 -0
- package/dist/plugins/wallet/protocol.mjs.map +1 -0
- package/dist/plugins/wallet/routable.mjs +32 -0
- package/dist/plugins/wallet/routable.mjs.map +1 -0
- package/dist/plugins/wallet/server.d.mts +12 -0
- package/dist/plugins/wallet/server.mjs +317 -0
- package/dist/plugins/wallet/server.mjs.map +1 -0
- package/dist/plugins/wallet/service.d.mts +68 -0
- package/dist/plugins/wallet/service.mjs +97 -0
- package/dist/plugins/wallet/service.mjs.map +1 -0
- package/dist/plugins/wallet/snapshot.d.mts +1 -0
- package/dist/plugins/wallet/snapshot.mjs +14 -0
- package/dist/plugins/wallet/snapshot.mjs.map +1 -0
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +42 -0
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -0
- package/dist/plugins/walrus/codegen.d.mts +38 -0
- package/dist/plugins/walrus/codegen.mjs +34 -0
- package/dist/plugins/walrus/codegen.mjs.map +1 -0
- package/dist/plugins/walrus/deploy-paths.mjs +14 -0
- package/dist/plugins/walrus/deploy-paths.mjs.map +1 -0
- package/dist/plugins/walrus/deploy.d.mts +1 -0
- package/dist/plugins/walrus/deploy.mjs +224 -0
- package/dist/plugins/walrus/deploy.mjs.map +1 -0
- package/dist/plugins/walrus/errors.d.mts +38 -0
- package/dist/plugins/walrus/errors.mjs +26 -0
- package/dist/plugins/walrus/errors.mjs.map +1 -0
- package/dist/plugins/walrus/faucet-strategy.d.mts +12 -0
- package/dist/plugins/walrus/faucet-strategy.mjs +62 -0
- package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -0
- package/dist/plugins/walrus/index.d.mts +177 -0
- package/dist/plugins/walrus/index.mjs +284 -0
- package/dist/plugins/walrus/index.mjs.map +1 -0
- package/dist/plugins/walrus/mode/known-deploy.d.mts +25 -0
- package/dist/plugins/walrus/mode/known-deploy.mjs +71 -0
- package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -0
- package/dist/plugins/walrus/mode/local-cluster.d.mts +34 -0
- package/dist/plugins/walrus/mode/local-cluster.mjs +153 -0
- package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -0
- package/dist/plugins/walrus/plugin-key.mjs +7 -0
- package/dist/plugins/walrus/plugin-key.mjs.map +1 -0
- package/dist/plugins/walrus/registry-publish.d.mts +24 -0
- package/dist/plugins/walrus/registry-publish.mjs +7 -0
- package/dist/plugins/walrus/registry-publish.mjs.map +1 -0
- package/dist/plugins/walrus/routable.mjs +99 -0
- package/dist/plugins/walrus/routable.mjs.map +1 -0
- package/dist/plugins/walrus/service.mjs +20 -0
- package/dist/plugins/walrus/service.mjs.map +1 -0
- package/dist/plugins/walrus/snapshot.mjs +53 -0
- package/dist/plugins/walrus/snapshot.mjs.map +1 -0
- package/dist/plugins/walrus/storage-nodes.d.mts +15 -0
- package/dist/plugins/walrus/storage-nodes.mjs +154 -0
- package/dist/plugins/walrus/storage-nodes.mjs.map +1 -0
- package/dist/plugins/walrus/wal-swap.d.mts +2 -0
- package/dist/plugins/walrus/wal-swap.mjs +58 -0
- package/dist/plugins/walrus/wal-swap.mjs.map +1 -0
- package/dist/primitives/artifact-publisher.d.mts +12 -0
- package/dist/primitives/cache.d.mts +1 -0
- package/dist/runtime/built-in-plugin-layers.mjs +49 -0
- package/dist/runtime/built-in-plugin-layers.mjs.map +1 -0
- package/dist/runtime/docker/client.d.mts +2 -0
- package/dist/runtime/docker/client.mjs +54 -0
- package/dist/runtime/docker/client.mjs.map +1 -0
- package/dist/runtime/docker/container.d.mts +1 -0
- package/dist/runtime/docker/container.mjs +562 -0
- package/dist/runtime/docker/container.mjs.map +1 -0
- package/dist/runtime/docker/errors.d.mts +1 -0
- package/dist/runtime/docker/errors.mjs +187 -0
- package/dist/runtime/docker/errors.mjs.map +1 -0
- package/dist/runtime/docker/exec.d.mts +1 -0
- package/dist/runtime/docker/exec.mjs +63 -0
- package/dist/runtime/docker/exec.mjs.map +1 -0
- package/dist/runtime/docker/image.d.mts +1 -0
- package/dist/runtime/docker/image.mjs +278 -0
- package/dist/runtime/docker/image.mjs.map +1 -0
- package/dist/runtime/docker/index.d.mts +1 -0
- package/dist/runtime/docker/inventory.d.mts +1 -0
- package/dist/runtime/docker/inventory.mjs +167 -0
- package/dist/runtime/docker/inventory.mjs.map +1 -0
- package/dist/runtime/docker/labels.d.mts +1 -0
- package/dist/runtime/docker/labels.mjs +97 -0
- package/dist/runtime/docker/labels.mjs.map +1 -0
- package/dist/runtime/docker/logs.d.mts +1 -0
- package/dist/runtime/docker/logs.mjs +34 -0
- package/dist/runtime/docker/logs.mjs.map +1 -0
- package/dist/runtime/docker/network.d.mts +1 -0
- package/dist/runtime/docker/network.mjs +168 -0
- package/dist/runtime/docker/network.mjs.map +1 -0
- package/dist/runtime/docker/service.d.mts +9 -0
- package/dist/runtime/docker/service.mjs +266 -0
- package/dist/runtime/docker/service.mjs.map +1 -0
- package/dist/runtime/docker/sweep.d.mts +1 -0
- package/dist/runtime/docker/sweep.mjs +220 -0
- package/dist/runtime/docker/sweep.mjs.map +1 -0
- package/dist/runtime/docker/volume.d.mts +1 -0
- package/dist/runtime/docker/volume.mjs +24 -0
- package/dist/runtime/docker/volume.mjs.map +1 -0
- package/dist/runtime/docker/wrap.d.mts +1 -0
- package/dist/runtime/docker/wrap.mjs +131 -0
- package/dist/runtime/docker/wrap.mjs.map +1 -0
- package/dist/substrate/brand.d.mts +24 -0
- package/dist/substrate/brand.mjs +14 -0
- package/dist/substrate/brand.mjs.map +1 -0
- package/dist/substrate/cross-process.d.mts +1 -0
- package/dist/substrate/cross-process.mjs +28 -0
- package/dist/substrate/cross-process.mjs.map +1 -0
- package/dist/substrate/events.d.mts +117 -0
- package/dist/substrate/identity.d.mts +13 -0
- package/dist/substrate/lifecycle.d.mts +12 -0
- package/dist/substrate/manifest.d.mts +39 -0
- package/dist/substrate/manifest.mjs +33 -0
- package/dist/substrate/manifest.mjs.map +1 -0
- package/dist/substrate/network.d.mts +34 -0
- package/dist/substrate/options.d.mts +23 -0
- package/dist/substrate/plugin.d.mts +101 -0
- package/dist/substrate/plugin.mjs +61 -0
- package/dist/substrate/plugin.mjs.map +1 -0
- package/dist/substrate/projection.d.mts +100 -0
- package/dist/substrate/runtime/artifact-publisher/index.mjs +76 -0
- package/dist/substrate/runtime/artifact-publisher/index.mjs.map +1 -0
- package/dist/substrate/runtime/atomic-write.mjs +106 -0
- package/dist/substrate/runtime/atomic-write.mjs.map +1 -0
- package/dist/substrate/runtime/cache/index.d.mts +1 -0
- package/dist/substrate/runtime/cache/schema.d.mts +1 -0
- package/dist/substrate/runtime/cache/schema.mjs +22 -0
- package/dist/substrate/runtime/cache/schema.mjs.map +1 -0
- package/dist/substrate/runtime/cache/service.d.mts +1 -0
- package/dist/substrate/runtime/cache/service.mjs +89 -0
- package/dist/substrate/runtime/cache/service.mjs.map +1 -0
- package/dist/substrate/runtime/capability-sinks/index.d.mts +1 -0
- package/dist/substrate/runtime/capability-sinks/layer.d.mts +1 -0
- package/dist/substrate/runtime/capability-sinks/layer.mjs +31 -0
- package/dist/substrate/runtime/capability-sinks/layer.mjs.map +1 -0
- package/dist/substrate/runtime/capability-sinks/service.d.mts +36 -0
- package/dist/substrate/runtime/capability-sinks/service.mjs +74 -0
- package/dist/substrate/runtime/capability-sinks/service.mjs.map +1 -0
- package/dist/substrate/runtime/config-validation.d.mts +38 -0
- package/dist/substrate/runtime/config-validation.mjs +137 -0
- package/dist/substrate/runtime/config-validation.mjs.map +1 -0
- package/dist/substrate/runtime/context-helpers.mjs +32 -0
- package/dist/substrate/runtime/context-helpers.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +128 -0
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs +136 -0
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs +49 -0
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs +9 -0
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/liveness.mjs +119 -0
- package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/roster.mjs +275 -0
- package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.d.mts +1 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +117 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/stack-lock.d.mts +1 -0
- package/dist/substrate/runtime/cross-process/stack-lock.mjs +142 -0
- package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -0
- package/dist/substrate/runtime/current-plugin.mjs +15 -0
- package/dist/substrate/runtime/current-plugin.mjs.map +1 -0
- package/dist/substrate/runtime/errors.d.mts +1 -0
- package/dist/substrate/runtime/errors.mjs +76 -0
- package/dist/substrate/runtime/errors.mjs.map +1 -0
- package/dist/substrate/runtime/host-tree-tar/index.mjs +364 -0
- package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -0
- package/dist/substrate/runtime/http-probe.d.mts +35 -0
- package/dist/substrate/runtime/http-probe.mjs +65 -0
- package/dist/substrate/runtime/http-probe.mjs.map +1 -0
- package/dist/substrate/runtime/lease-broker/index.d.mts +1 -0
- package/dist/substrate/runtime/lease-broker/service.d.mts +64 -0
- package/dist/substrate/runtime/lease-broker/service.mjs +155 -0
- package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs +138 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/index.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs +31 -0
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +133 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs +34 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs +43 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/signals.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/signals.mjs +64 -0
- package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/state-machine.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/state-machine.mjs +38 -0
- package/dist/substrate/runtime/lifecycle/state-machine.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs +27 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs.map +1 -0
- package/dist/substrate/runtime/managed-container.d.mts +30 -0
- package/dist/substrate/runtime/managed-container.mjs +32 -0
- package/dist/substrate/runtime/managed-container.mjs.map +1 -0
- package/dist/substrate/runtime/manifest/manifest.mjs +73 -0
- package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -0
- package/dist/substrate/runtime/mode-errors.d.mts +36 -0
- package/dist/substrate/runtime/observability/cascade-formatter.d.mts +1 -0
- package/dist/substrate/runtime/observability/cascade-formatter.mjs +135 -0
- package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -0
- package/dist/substrate/runtime/observability/formatter-registry.d.mts +1 -0
- package/dist/substrate/runtime/observability/formatter-registry.mjs +65 -0
- package/dist/substrate/runtime/observability/formatter-registry.mjs.map +1 -0
- package/dist/substrate/runtime/observability/index.d.mts +3 -0
- package/dist/substrate/runtime/observability/logger.d.mts +58 -0
- package/dist/substrate/runtime/observability/logger.mjs +89 -0
- package/dist/substrate/runtime/observability/logger.mjs.map +1 -0
- package/dist/substrate/runtime/observability/pretty-error.d.mts +1 -0
- package/dist/substrate/runtime/observability/pretty-error.mjs +119 -0
- package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -0
- package/dist/substrate/runtime/observability/process-lines.d.mts +31 -0
- package/dist/substrate/runtime/observability/process-lines.mjs +40 -0
- package/dist/substrate/runtime/observability/process-lines.mjs.map +1 -0
- package/dist/substrate/runtime/observability/redaction.d.mts +28 -0
- package/dist/substrate/runtime/observability/redaction.mjs +45 -0
- package/dist/substrate/runtime/observability/redaction.mjs.map +1 -0
- package/dist/substrate/runtime/observability/spans.d.mts +1 -0
- package/dist/substrate/runtime/observability/spans.mjs +87 -0
- package/dist/substrate/runtime/observability/spans.mjs.map +1 -0
- package/dist/substrate/runtime/observability/subprocess-capture.d.mts +2 -0
- package/dist/substrate/runtime/observability/subprocess-capture.mjs +82 -0
- package/dist/substrate/runtime/observability/subprocess-capture.mjs.map +1 -0
- package/dist/substrate/runtime/paths.d.mts +17 -0
- package/dist/substrate/runtime/paths.mjs +61 -0
- package/dist/substrate/runtime/paths.mjs.map +1 -0
- package/dist/substrate/runtime/port-broker/index.d.mts +1 -0
- package/dist/substrate/runtime/port-broker/service.d.mts +1 -0
- package/dist/substrate/runtime/port-broker/service.mjs +319 -0
- package/dist/substrate/runtime/port-broker/service.mjs.map +1 -0
- package/dist/substrate/runtime/post-acquire-tasks.d.mts +1 -0
- package/dist/substrate/runtime/post-acquire-tasks.mjs +34 -0
- package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -0
- package/dist/substrate/runtime/probes.d.mts +51 -0
- package/dist/substrate/runtime/probes.mjs +84 -0
- package/dist/substrate/runtime/probes.mjs.map +1 -0
- package/dist/substrate/runtime/process-supervisor.d.mts +57 -0
- package/dist/substrate/runtime/process-supervisor.mjs +73 -0
- package/dist/substrate/runtime/process-supervisor.mjs.map +1 -0
- package/dist/substrate/runtime/projection/operational-endpoints.mjs +44 -0
- package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -0
- package/dist/substrate/runtime/projection/persisted.mjs +195 -0
- package/dist/substrate/runtime/projection/persisted.mjs.map +1 -0
- package/dist/substrate/runtime/projection/state-ref.mjs +48 -0
- package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -0
- package/dist/substrate/runtime/projection/update.mjs +200 -0
- package/dist/substrate/runtime/projection/update.mjs.map +1 -0
- package/dist/substrate/runtime/retry-policy.d.mts +18 -0
- package/dist/substrate/runtime/retry-policy.mjs +16 -0
- package/dist/substrate/runtime/retry-policy.mjs.map +1 -0
- package/dist/substrate/runtime/run.mjs +86 -0
- package/dist/substrate/runtime/run.mjs.map +1 -0
- package/dist/substrate/runtime/runtime-decode.d.mts +32 -0
- package/dist/substrate/runtime/runtime-decode.mjs +53 -0
- package/dist/substrate/runtime/runtime-decode.mjs.map +1 -0
- package/dist/substrate/runtime/scoped-http-server.mjs +36 -0
- package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -0
- package/dist/substrate/runtime/scoped-ref-map/service.mjs +83 -0
- package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +1 -0
- package/dist/substrate/runtime/stage-and-swap/index.d.mts +1 -0
- package/dist/substrate/runtime/stage-and-swap/index.mjs +131 -0
- package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -0
- package/dist/substrate/runtime/state-store/schema.mjs +36 -0
- package/dist/substrate/runtime/state-store/schema.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs +22 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs +30 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/index.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/service.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/service.mjs +67 -0
- package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -0
- package/dist/substrate/runtime/sui-execute/index.d.mts +11 -0
- package/dist/substrate/runtime/sui-execute/index.mjs +144 -0
- package/dist/substrate/runtime/sui-execute/index.mjs.map +1 -0
- package/dist/substrate/runtime/sui-move-build/index.d.mts +1 -0
- package/dist/substrate/runtime/sui-move-build/index.mjs +283 -0
- package/dist/substrate/runtime/sui-move-build/index.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor.d.mts +1 -0
- package/dist/substrate/runtime/supervisor.mjs +831 -0
- package/dist/substrate/runtime/supervisor.mjs.map +1 -0
- package/dist/surfaces/cli/command-tree.mjs +276 -0
- package/dist/surfaces/cli/command-tree.mjs.map +1 -0
- package/dist/surfaces/cli/commands/config.mjs +31 -0
- package/dist/surfaces/cli/commands/config.mjs.map +1 -0
- package/dist/surfaces/cli/commands/confirm-node.mjs +26 -0
- package/dist/surfaces/cli/commands/confirm-node.mjs.map +1 -0
- package/dist/surfaces/cli/commands/confirm.mjs +26 -0
- package/dist/surfaces/cli/commands/confirm.mjs.map +1 -0
- package/dist/surfaces/cli/commands/doctor-probes.mjs +452 -0
- package/dist/surfaces/cli/commands/doctor-probes.mjs.map +1 -0
- package/dist/surfaces/cli/commands/doctor.mjs +38 -0
- package/dist/surfaces/cli/commands/doctor.mjs.map +1 -0
- package/dist/surfaces/cli/commands/prune-picker.mjs +347 -0
- package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -0
- package/dist/surfaces/cli/commands/prune.mjs +178 -0
- package/dist/surfaces/cli/commands/prune.mjs.map +1 -0
- package/dist/surfaces/cli/commands/snapshot.mjs +141 -0
- package/dist/surfaces/cli/commands/snapshot.mjs.map +1 -0
- package/dist/surfaces/cli/commands/status.mjs +95 -0
- package/dist/surfaces/cli/commands/status.mjs.map +1 -0
- package/dist/surfaces/cli/commands/supervisor-presence.mjs +33 -0
- package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -0
- package/dist/surfaces/cli/commands/wipe.mjs +28 -0
- package/dist/surfaces/cli/commands/wipe.mjs.map +1 -0
- package/dist/surfaces/cli/envelope.mjs +43 -0
- package/dist/surfaces/cli/envelope.mjs.map +1 -0
- package/dist/surfaces/cli/errors.mjs +110 -0
- package/dist/surfaces/cli/errors.mjs.map +1 -0
- package/dist/surfaces/cli/flags.mjs +56 -0
- package/dist/surfaces/cli/flags.mjs.map +1 -0
- package/dist/surfaces/cli/index.mjs +418 -0
- package/dist/surfaces/cli/index.mjs.map +1 -0
- package/dist/surfaces/cli/output.mjs +115 -0
- package/dist/surfaces/cli/output.mjs.map +1 -0
- package/dist/surfaces/cli/sysexits.mjs +139 -0
- package/dist/surfaces/cli/sysexits.mjs.map +1 -0
- package/dist/surfaces/tui/app.mjs +104 -0
- package/dist/surfaces/tui/app.mjs.map +1 -0
- package/dist/surfaces/tui/dashboard.mjs +261 -0
- package/dist/surfaces/tui/dashboard.mjs.map +1 -0
- package/dist/surfaces/tui/display-derivation.mjs +395 -0
- package/dist/surfaces/tui/display-derivation.mjs.map +1 -0
- package/dist/surfaces/tui/errors.mjs +11 -0
- package/dist/surfaces/tui/errors.mjs.map +1 -0
- package/dist/surfaces/tui/event-log.mjs +155 -0
- package/dist/surfaces/tui/event-log.mjs.map +1 -0
- package/dist/surfaces/tui/heartbeat.mjs +33 -0
- package/dist/surfaces/tui/heartbeat.mjs.map +1 -0
- package/dist/surfaces/tui/index.mjs +50 -0
- package/dist/surfaces/tui/index.mjs.map +1 -0
- package/dist/surfaces/tui/input.mjs +104 -0
- package/dist/surfaces/tui/input.mjs.map +1 -0
- package/dist/surfaces/tui/mode-detect.mjs +32 -0
- package/dist/surfaces/tui/mode-detect.mjs.map +1 -0
- package/dist/surfaces/tui/mount-ink.mjs +31 -0
- package/dist/surfaces/tui/mount-ink.mjs.map +1 -0
- package/dist/surfaces/tui/plain-renderer.mjs +170 -0
- package/dist/surfaces/tui/plain-renderer.mjs.map +1 -0
- package/dist/surfaces/tui/resource-table.mjs +507 -0
- package/dist/surfaces/tui/resource-table.mjs.map +1 -0
- package/images/_shared/signal-forward.sh +77 -0
- package/images/postgres/Dockerfile +32 -0
- package/images/seal/Dockerfile +68 -0
- package/images/seal/entrypoint.sh +65 -0
- package/images/sui/Dockerfile +73 -0
- package/images/sui/entrypoint.sh +244 -0
- package/images/sui-fork/Dockerfile +53 -0
- package/images/sui-fork/entrypoint.sh +51 -0
- package/images/walrus/Dockerfile +122 -0
- package/images/walrus/deploy-walrus.sh +305 -0
- package/images/walrus/run-walrus.sh +53 -0
- package/package.json +94 -0
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
import { accountCells, deriveDisplayCells, endpointLine, groupRows, packageCells, visibleEndpointsForRow } from "./display-derivation.mjs";
|
|
2
|
+
import { Box, Text, useWindowSize } from "ink";
|
|
3
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/surfaces/tui/resource-table.tsx
|
|
5
|
+
const STATE_WIDTH = 13;
|
|
6
|
+
const NAME_WIDTH = 18;
|
|
7
|
+
const MIN_URL_WIDTH = 32;
|
|
8
|
+
const MAX_URL_WIDTH = 96;
|
|
9
|
+
const DETAIL_WIDTH = 32;
|
|
10
|
+
const ACCOUNT_WIDTH = 14;
|
|
11
|
+
const ADDRESS_WIDTH = 68;
|
|
12
|
+
const SCHEME_WIDTH = 8;
|
|
13
|
+
const SOURCE_WIDTH = 8;
|
|
14
|
+
const FUNDING_WIDTH = 34;
|
|
15
|
+
const PACKAGE_WIDTH = 18;
|
|
16
|
+
const PACKAGE_ID_WIDTH = 68;
|
|
17
|
+
const MVR_WIDTH = 28;
|
|
18
|
+
const ResourceTables = ({ rows, endpoints, accounts, packages }) => {
|
|
19
|
+
const { columns } = useWindowSize();
|
|
20
|
+
const pluginLayout = pluginTableLayout(columns);
|
|
21
|
+
const accountLayout = accountTableLayout(columns);
|
|
22
|
+
const packageLayout = packageTableLayout(columns);
|
|
23
|
+
const sections = groupRows(rows, endpoints);
|
|
24
|
+
const bySection = new Map(sections.map((section) => [section.key, section]));
|
|
25
|
+
const orderedSections = [
|
|
26
|
+
bySection.get("service"),
|
|
27
|
+
bySection.get("package"),
|
|
28
|
+
bySection.get("account"),
|
|
29
|
+
bySection.get("action"),
|
|
30
|
+
bySection.get("app"),
|
|
31
|
+
bySection.get("other")
|
|
32
|
+
].filter((section) => section !== void 0);
|
|
33
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
34
|
+
flexDirection: "column",
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ jsx(Text, {
|
|
37
|
+
bold: true,
|
|
38
|
+
children: "Stack"
|
|
39
|
+
}),
|
|
40
|
+
rows.length === 0 && accounts.length === 0 && packages.length === 0 && /* @__PURE__ */ jsx(Text, { children: "no plugins declared" }),
|
|
41
|
+
orderedSections.map((section) => section.key === "account" ? /* @__PURE__ */ jsx(AccountSection, {
|
|
42
|
+
section,
|
|
43
|
+
accounts,
|
|
44
|
+
layout: accountLayout
|
|
45
|
+
}, section.key) : section.key === "package" ? /* @__PURE__ */ jsx(PackageSection, {
|
|
46
|
+
section,
|
|
47
|
+
packages,
|
|
48
|
+
layout: packageLayout
|
|
49
|
+
}, section.key) : /* @__PURE__ */ jsx(PluginSection, {
|
|
50
|
+
section,
|
|
51
|
+
endpoints,
|
|
52
|
+
layout: pluginLayout
|
|
53
|
+
}, section.key)),
|
|
54
|
+
bySection.has("account") ? null : accounts.length > 0 ? /* @__PURE__ */ jsx(AccountSection, {
|
|
55
|
+
section: void 0,
|
|
56
|
+
accounts,
|
|
57
|
+
layout: accountLayout
|
|
58
|
+
}) : null,
|
|
59
|
+
bySection.has("package") ? null : packages.length > 0 ? /* @__PURE__ */ jsx(PackageSection, {
|
|
60
|
+
section: void 0,
|
|
61
|
+
packages,
|
|
62
|
+
layout: packageLayout
|
|
63
|
+
}) : null
|
|
64
|
+
]
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
const PluginSection = ({ section, endpoints, layout }) => /* @__PURE__ */ jsxs(Box, {
|
|
68
|
+
flexDirection: "column",
|
|
69
|
+
marginTop: 1,
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ jsx(Text, {
|
|
72
|
+
bold: true,
|
|
73
|
+
children: section.label
|
|
74
|
+
}),
|
|
75
|
+
/* @__PURE__ */ jsx(Header, {
|
|
76
|
+
cells: layout.showDetail ? [
|
|
77
|
+
"STATE",
|
|
78
|
+
"NAME",
|
|
79
|
+
"URLS",
|
|
80
|
+
"DETAIL"
|
|
81
|
+
] : [
|
|
82
|
+
"STATE",
|
|
83
|
+
"NAME",
|
|
84
|
+
"URLS"
|
|
85
|
+
],
|
|
86
|
+
widths: layout.showDetail ? [
|
|
87
|
+
STATE_WIDTH,
|
|
88
|
+
NAME_WIDTH,
|
|
89
|
+
layout.urlWidth,
|
|
90
|
+
DETAIL_WIDTH
|
|
91
|
+
] : [
|
|
92
|
+
STATE_WIDTH,
|
|
93
|
+
NAME_WIDTH,
|
|
94
|
+
layout.urlWidth
|
|
95
|
+
]
|
|
96
|
+
}),
|
|
97
|
+
section.rows.map((displayRow) => /* @__PURE__ */ jsx(PluginRow, {
|
|
98
|
+
displayRow,
|
|
99
|
+
endpoints,
|
|
100
|
+
layout
|
|
101
|
+
}, displayRow.row.key))
|
|
102
|
+
]
|
|
103
|
+
});
|
|
104
|
+
const PluginRow = ({ displayRow, endpoints, layout }) => {
|
|
105
|
+
const cells = deriveDisplayCells(displayRow.row, endpoints);
|
|
106
|
+
const urlLines = visibleEndpointsForRow(displayRow.row, endpoints).map(endpointLine);
|
|
107
|
+
const detail = cells.errorSummary || cells.narration;
|
|
108
|
+
const detailLines = detail.length === 0 ? [] : [`detail: ${detail}`];
|
|
109
|
+
const compactUrlLines = [...urlLines.length === 0 ? ["-"] : urlLines, ...layout.showDetail ? [] : detailLines];
|
|
110
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
111
|
+
flexDirection: "row",
|
|
112
|
+
gap: 1,
|
|
113
|
+
children: [
|
|
114
|
+
/* @__PURE__ */ jsx(StateCell, {
|
|
115
|
+
glyph: cells.statusGlyph,
|
|
116
|
+
label: cells.statusLabel,
|
|
117
|
+
color: cells.statusColor
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
120
|
+
width: NAME_WIDTH,
|
|
121
|
+
color: cells.labelColor,
|
|
122
|
+
bold: true,
|
|
123
|
+
children: cells.label
|
|
124
|
+
}),
|
|
125
|
+
/* @__PURE__ */ jsx(MultiLineFixedText, {
|
|
126
|
+
width: layout.urlWidth,
|
|
127
|
+
color: urlLines.length === 0 ? "white" : "cyan",
|
|
128
|
+
lines: compactUrlLines
|
|
129
|
+
}),
|
|
130
|
+
layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
|
|
131
|
+
width: DETAIL_WIDTH,
|
|
132
|
+
color: cells.errorSummary ? "red" : "white",
|
|
133
|
+
lines: [detail]
|
|
134
|
+
})
|
|
135
|
+
]
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
const AccountSection = ({ section, accounts, layout }) => {
|
|
139
|
+
const rows = section?.rows ?? [];
|
|
140
|
+
const accountByRow = new Map(accounts.filter((account) => account.rowKey !== null).map((account) => [account.rowKey, account]));
|
|
141
|
+
const rowKeys = new Set(rows.map(({ row }) => row.key));
|
|
142
|
+
const unownedAccounts = accounts.filter((account) => account.rowKey === null || !rowKeys.has(account.rowKey));
|
|
143
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
144
|
+
flexDirection: "column",
|
|
145
|
+
marginTop: 1,
|
|
146
|
+
children: [
|
|
147
|
+
/* @__PURE__ */ jsx(Text, {
|
|
148
|
+
bold: true,
|
|
149
|
+
children: "Accounts"
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ jsx(Header, {
|
|
152
|
+
cells: [
|
|
153
|
+
"STATE",
|
|
154
|
+
"ACCOUNT",
|
|
155
|
+
"ADDRESS",
|
|
156
|
+
...layout.showMeta ? ["SCHEME", "SOURCE"] : [],
|
|
157
|
+
...layout.showFunding ? ["FUNDING"] : [],
|
|
158
|
+
...layout.showDetail ? ["DETAIL"] : []
|
|
159
|
+
],
|
|
160
|
+
widths: [
|
|
161
|
+
STATE_WIDTH,
|
|
162
|
+
ACCOUNT_WIDTH,
|
|
163
|
+
layout.addressWidth,
|
|
164
|
+
...layout.showMeta ? [SCHEME_WIDTH, SOURCE_WIDTH] : [],
|
|
165
|
+
...layout.showFunding ? [FUNDING_WIDTH] : [],
|
|
166
|
+
...layout.showDetail ? [DETAIL_WIDTH] : []
|
|
167
|
+
]
|
|
168
|
+
}),
|
|
169
|
+
rows.map((displayRow) => /* @__PURE__ */ jsx(AccountRow, {
|
|
170
|
+
displayRow,
|
|
171
|
+
account: accountByRow.get(displayRow.row.key),
|
|
172
|
+
layout
|
|
173
|
+
}, displayRow.row.key)),
|
|
174
|
+
unownedAccounts.map((account) => /* @__PURE__ */ jsx(AccountRecordRow, {
|
|
175
|
+
account,
|
|
176
|
+
layout
|
|
177
|
+
}, account.key))
|
|
178
|
+
]
|
|
179
|
+
});
|
|
180
|
+
};
|
|
181
|
+
const PackageSection = ({ section, packages, layout }) => {
|
|
182
|
+
const rows = section?.rows ?? [];
|
|
183
|
+
const packageByRow = new Map(packages.filter((pkg) => pkg.rowKey !== null).map((pkg) => [pkg.rowKey, pkg]));
|
|
184
|
+
const rowKeys = new Set(rows.map(({ row }) => row.key));
|
|
185
|
+
const unownedPackages = packages.filter((pkg) => pkg.rowKey === null || !rowKeys.has(pkg.rowKey));
|
|
186
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
187
|
+
flexDirection: "column",
|
|
188
|
+
marginTop: 1,
|
|
189
|
+
children: [
|
|
190
|
+
/* @__PURE__ */ jsx(Text, {
|
|
191
|
+
bold: true,
|
|
192
|
+
children: "Packages"
|
|
193
|
+
}),
|
|
194
|
+
/* @__PURE__ */ jsx(Header, {
|
|
195
|
+
cells: [
|
|
196
|
+
"STATE",
|
|
197
|
+
"PACKAGE",
|
|
198
|
+
"PACKAGE ID",
|
|
199
|
+
...layout.showMvr ? ["MVR"] : [],
|
|
200
|
+
...layout.showDetail ? ["DETAIL"] : []
|
|
201
|
+
],
|
|
202
|
+
widths: [
|
|
203
|
+
STATE_WIDTH,
|
|
204
|
+
PACKAGE_WIDTH,
|
|
205
|
+
layout.packageIdWidth,
|
|
206
|
+
...layout.showMvr ? [layout.mvrWidth] : [],
|
|
207
|
+
...layout.showDetail ? [DETAIL_WIDTH] : []
|
|
208
|
+
]
|
|
209
|
+
}),
|
|
210
|
+
rows.map((displayRow) => /* @__PURE__ */ jsx(PackageRow, {
|
|
211
|
+
displayRow,
|
|
212
|
+
pkg: packageByRow.get(displayRow.row.key),
|
|
213
|
+
layout
|
|
214
|
+
}, displayRow.row.key)),
|
|
215
|
+
unownedPackages.map((pkg) => /* @__PURE__ */ jsx(PackageRecordRow, {
|
|
216
|
+
pkg,
|
|
217
|
+
layout
|
|
218
|
+
}, pkg.key))
|
|
219
|
+
]
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
const AccountRow = ({ displayRow, account, layout }) => {
|
|
223
|
+
const cells = deriveDisplayCells(displayRow.row);
|
|
224
|
+
const facts = account === void 0 ? {
|
|
225
|
+
name: cells.label,
|
|
226
|
+
address: "<pending>",
|
|
227
|
+
scheme: "pending",
|
|
228
|
+
source: "pending",
|
|
229
|
+
funding: "funding pending"
|
|
230
|
+
} : accountCells(account);
|
|
231
|
+
const detail = cells.errorSummary || cells.narration || "-";
|
|
232
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
233
|
+
flexDirection: "row",
|
|
234
|
+
gap: 1,
|
|
235
|
+
children: [
|
|
236
|
+
/* @__PURE__ */ jsx(StateCell, {
|
|
237
|
+
glyph: cells.statusGlyph,
|
|
238
|
+
label: cells.statusLabel,
|
|
239
|
+
color: cells.statusColor
|
|
240
|
+
}),
|
|
241
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
242
|
+
width: ACCOUNT_WIDTH,
|
|
243
|
+
color: cells.labelColor,
|
|
244
|
+
bold: true,
|
|
245
|
+
children: facts.name
|
|
246
|
+
}),
|
|
247
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
248
|
+
width: layout.addressWidth,
|
|
249
|
+
color: "white",
|
|
250
|
+
children: facts.address
|
|
251
|
+
}),
|
|
252
|
+
layout.showMeta && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FixedText, {
|
|
253
|
+
width: SCHEME_WIDTH,
|
|
254
|
+
color: "white",
|
|
255
|
+
children: facts.scheme
|
|
256
|
+
}), /* @__PURE__ */ jsx(FixedText, {
|
|
257
|
+
width: SOURCE_WIDTH,
|
|
258
|
+
color: "white",
|
|
259
|
+
children: facts.source
|
|
260
|
+
})] }),
|
|
261
|
+
layout.showFunding && /* @__PURE__ */ jsx(FixedText, {
|
|
262
|
+
width: FUNDING_WIDTH,
|
|
263
|
+
color: "white",
|
|
264
|
+
children: facts.funding
|
|
265
|
+
}),
|
|
266
|
+
layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
|
|
267
|
+
width: DETAIL_WIDTH,
|
|
268
|
+
color: cells.errorSummary ? "red" : "white",
|
|
269
|
+
lines: [detail]
|
|
270
|
+
})
|
|
271
|
+
]
|
|
272
|
+
});
|
|
273
|
+
};
|
|
274
|
+
const PackageRow = ({ displayRow, pkg, layout }) => {
|
|
275
|
+
const cells = deriveDisplayCells(displayRow.row);
|
|
276
|
+
const facts = pkg === void 0 ? {
|
|
277
|
+
name: cells.label,
|
|
278
|
+
packageId: "<pending>",
|
|
279
|
+
mvr: "pending",
|
|
280
|
+
detail: cells.errorSummary || cells.narration || "publish pending"
|
|
281
|
+
} : packageCells(pkg);
|
|
282
|
+
const detail = cells.errorSummary || cells.narration || facts.detail || "-";
|
|
283
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
284
|
+
flexDirection: "row",
|
|
285
|
+
gap: 1,
|
|
286
|
+
children: [
|
|
287
|
+
/* @__PURE__ */ jsx(StateCell, {
|
|
288
|
+
glyph: cells.statusGlyph,
|
|
289
|
+
label: cells.statusLabel,
|
|
290
|
+
color: cells.statusColor
|
|
291
|
+
}),
|
|
292
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
293
|
+
width: PACKAGE_WIDTH,
|
|
294
|
+
color: cells.labelColor,
|
|
295
|
+
bold: true,
|
|
296
|
+
children: facts.name
|
|
297
|
+
}),
|
|
298
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
299
|
+
width: layout.packageIdWidth,
|
|
300
|
+
color: "white",
|
|
301
|
+
children: facts.packageId
|
|
302
|
+
}),
|
|
303
|
+
layout.showMvr && /* @__PURE__ */ jsx(MultiLineFixedText, {
|
|
304
|
+
width: layout.mvrWidth,
|
|
305
|
+
color: "white",
|
|
306
|
+
lines: [facts.mvr]
|
|
307
|
+
}),
|
|
308
|
+
layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
|
|
309
|
+
width: DETAIL_WIDTH,
|
|
310
|
+
color: cells.errorSummary ? "red" : "white",
|
|
311
|
+
lines: [detail]
|
|
312
|
+
})
|
|
313
|
+
]
|
|
314
|
+
});
|
|
315
|
+
};
|
|
316
|
+
const AccountRecordRow = ({ account, layout }) => {
|
|
317
|
+
const facts = accountCells(account);
|
|
318
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
319
|
+
flexDirection: "row",
|
|
320
|
+
gap: 1,
|
|
321
|
+
children: [
|
|
322
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
323
|
+
width: STATE_WIDTH,
|
|
324
|
+
color: "white",
|
|
325
|
+
children: "record"
|
|
326
|
+
}),
|
|
327
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
328
|
+
width: ACCOUNT_WIDTH,
|
|
329
|
+
color: "magenta",
|
|
330
|
+
bold: true,
|
|
331
|
+
children: facts.name
|
|
332
|
+
}),
|
|
333
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
334
|
+
width: layout.addressWidth,
|
|
335
|
+
color: "white",
|
|
336
|
+
children: facts.address
|
|
337
|
+
}),
|
|
338
|
+
layout.showMeta && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FixedText, {
|
|
339
|
+
width: SCHEME_WIDTH,
|
|
340
|
+
color: "white",
|
|
341
|
+
children: facts.scheme
|
|
342
|
+
}), /* @__PURE__ */ jsx(FixedText, {
|
|
343
|
+
width: SOURCE_WIDTH,
|
|
344
|
+
color: "white",
|
|
345
|
+
children: facts.source
|
|
346
|
+
})] }),
|
|
347
|
+
layout.showFunding && /* @__PURE__ */ jsx(FixedText, {
|
|
348
|
+
width: FUNDING_WIDTH,
|
|
349
|
+
color: "white",
|
|
350
|
+
children: facts.funding
|
|
351
|
+
}),
|
|
352
|
+
layout.showDetail && /* @__PURE__ */ jsx(FixedText, {
|
|
353
|
+
width: DETAIL_WIDTH,
|
|
354
|
+
color: "white",
|
|
355
|
+
children: "-"
|
|
356
|
+
})
|
|
357
|
+
]
|
|
358
|
+
});
|
|
359
|
+
};
|
|
360
|
+
const PackageRecordRow = ({ pkg, layout }) => {
|
|
361
|
+
const facts = packageCells(pkg);
|
|
362
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
363
|
+
flexDirection: "row",
|
|
364
|
+
gap: 1,
|
|
365
|
+
children: [
|
|
366
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
367
|
+
width: STATE_WIDTH,
|
|
368
|
+
color: "white",
|
|
369
|
+
children: "record"
|
|
370
|
+
}),
|
|
371
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
372
|
+
width: PACKAGE_WIDTH,
|
|
373
|
+
color: "magenta",
|
|
374
|
+
bold: true,
|
|
375
|
+
children: facts.name
|
|
376
|
+
}),
|
|
377
|
+
/* @__PURE__ */ jsx(FixedText, {
|
|
378
|
+
width: layout.packageIdWidth,
|
|
379
|
+
color: "white",
|
|
380
|
+
children: facts.packageId
|
|
381
|
+
}),
|
|
382
|
+
layout.showMvr && /* @__PURE__ */ jsx(MultiLineFixedText, {
|
|
383
|
+
width: layout.mvrWidth,
|
|
384
|
+
color: "white",
|
|
385
|
+
lines: [facts.mvr]
|
|
386
|
+
}),
|
|
387
|
+
layout.showDetail && /* @__PURE__ */ jsx(MultiLineFixedText, {
|
|
388
|
+
width: DETAIL_WIDTH,
|
|
389
|
+
color: "white",
|
|
390
|
+
lines: [facts.detail]
|
|
391
|
+
})
|
|
392
|
+
]
|
|
393
|
+
});
|
|
394
|
+
};
|
|
395
|
+
const StateCell = ({ glyph, label, color }) => /* @__PURE__ */ jsx(FixedText, {
|
|
396
|
+
width: STATE_WIDTH,
|
|
397
|
+
color,
|
|
398
|
+
children: `${glyph} ${label}`
|
|
399
|
+
});
|
|
400
|
+
const Header = ({ cells, widths }) => /* @__PURE__ */ jsx(Box, {
|
|
401
|
+
flexDirection: "row",
|
|
402
|
+
gap: 1,
|
|
403
|
+
children: cells.map((cell, index) => widths[index] === 0 ? /* @__PURE__ */ jsx(Text, {
|
|
404
|
+
bold: true,
|
|
405
|
+
children: cell
|
|
406
|
+
}, `${index}:${cell}`) : /* @__PURE__ */ jsx(FixedText, {
|
|
407
|
+
width: widths[index] ?? 0,
|
|
408
|
+
color: "white",
|
|
409
|
+
bold: true,
|
|
410
|
+
children: cell
|
|
411
|
+
}, `${index}:${cell}`))
|
|
412
|
+
});
|
|
413
|
+
const FixedText = ({ width, color, bold = false, children }) => /* @__PURE__ */ jsx(Box, {
|
|
414
|
+
width,
|
|
415
|
+
flexShrink: 0,
|
|
416
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
417
|
+
color,
|
|
418
|
+
bold,
|
|
419
|
+
children: clip(children, width)
|
|
420
|
+
})
|
|
421
|
+
});
|
|
422
|
+
const MultiLineFixedText = ({ width, color, lines }) => /* @__PURE__ */ jsx(Box, {
|
|
423
|
+
width,
|
|
424
|
+
flexShrink: 0,
|
|
425
|
+
flexDirection: "column",
|
|
426
|
+
children: lines.flatMap((line) => wrap(line, width)).map((line, index) => /* @__PURE__ */ jsx(Text, {
|
|
427
|
+
color,
|
|
428
|
+
wrap: "truncate-end",
|
|
429
|
+
children: line
|
|
430
|
+
}, `${index}:${line}`))
|
|
431
|
+
});
|
|
432
|
+
const clip = (value, width) => {
|
|
433
|
+
if (width <= 0 || value.length <= width) return value;
|
|
434
|
+
if (width <= 1) return value.slice(0, width);
|
|
435
|
+
return `${value.slice(0, width - 1)}…`;
|
|
436
|
+
};
|
|
437
|
+
const pluginTableLayout = (columns) => {
|
|
438
|
+
const gapCount = (showDetail) => showDetail ? 3 : 2;
|
|
439
|
+
const showDetail = columns >= STATE_WIDTH + NAME_WIDTH + DETAIL_WIDTH + MIN_URL_WIDTH + gapCount(true);
|
|
440
|
+
const fixedWidth = STATE_WIDTH + NAME_WIDTH + (showDetail ? DETAIL_WIDTH : 0) + gapCount(showDetail);
|
|
441
|
+
const availableUrlWidth = Math.max(MIN_URL_WIDTH, columns - fixedWidth);
|
|
442
|
+
return {
|
|
443
|
+
showDetail,
|
|
444
|
+
urlWidth: Math.min(MAX_URL_WIDTH, availableUrlWidth)
|
|
445
|
+
};
|
|
446
|
+
};
|
|
447
|
+
const accountTableLayout = (columns) => {
|
|
448
|
+
const fullWidth = STATE_WIDTH + ACCOUNT_WIDTH + ADDRESS_WIDTH + SCHEME_WIDTH + SOURCE_WIDTH + FUNDING_WIDTH + DETAIL_WIDTH + 6;
|
|
449
|
+
const midWidth = STATE_WIDTH + ACCOUNT_WIDTH + 32 + SCHEME_WIDTH + SOURCE_WIDTH + FUNDING_WIDTH + 5;
|
|
450
|
+
const showDetail = columns >= fullWidth;
|
|
451
|
+
const showMeta = columns >= midWidth;
|
|
452
|
+
const showFunding = columns >= midWidth;
|
|
453
|
+
const fixed = STATE_WIDTH + ACCOUNT_WIDTH + (showMeta ? SCHEME_WIDTH + SOURCE_WIDTH : 0) + (showFunding ? FUNDING_WIDTH : 0) + (showDetail ? DETAIL_WIDTH : 0) + (1 + (showMeta ? 2 : 0) + (showFunding ? 1 : 0) + (showDetail ? 1 : 0));
|
|
454
|
+
return {
|
|
455
|
+
showDetail,
|
|
456
|
+
showMeta,
|
|
457
|
+
showFunding,
|
|
458
|
+
addressWidth: Math.min(ADDRESS_WIDTH, Math.max(24, columns - fixed))
|
|
459
|
+
};
|
|
460
|
+
};
|
|
461
|
+
const packageTableLayout = (columns) => {
|
|
462
|
+
const showDetail = columns >= STATE_WIDTH + PACKAGE_WIDTH + PACKAGE_ID_WIDTH + MVR_WIDTH + DETAIL_WIDTH + 4;
|
|
463
|
+
const showMvr = columns >= STATE_WIDTH + PACKAGE_WIDTH + 24 + 16 + 3;
|
|
464
|
+
const fixed = STATE_WIDTH + PACKAGE_WIDTH + (showMvr ? MVR_WIDTH : 0) + (showDetail ? DETAIL_WIDTH : 0) + (1 + (showMvr ? 1 : 0) + (showDetail ? 1 : 0));
|
|
465
|
+
return {
|
|
466
|
+
showDetail,
|
|
467
|
+
showMvr,
|
|
468
|
+
mvrWidth: showDetail ? MVR_WIDTH : 20,
|
|
469
|
+
packageIdWidth: Math.min(PACKAGE_ID_WIDTH, Math.max(24, columns - fixed))
|
|
470
|
+
};
|
|
471
|
+
};
|
|
472
|
+
const wrap = (value, width) => {
|
|
473
|
+
const limit = Math.max(1, width - 1);
|
|
474
|
+
if (width <= 0 || value.length <= limit) return [value];
|
|
475
|
+
const lines = [];
|
|
476
|
+
let rest = value;
|
|
477
|
+
while (rest.length > limit) {
|
|
478
|
+
const idx = wrapIndex(rest, limit);
|
|
479
|
+
lines.push(rest.slice(0, idx).trimEnd());
|
|
480
|
+
rest = rest.slice(idx).trimStart();
|
|
481
|
+
}
|
|
482
|
+
if (rest.length > 0) lines.push(rest);
|
|
483
|
+
return lines;
|
|
484
|
+
};
|
|
485
|
+
const wrapIndex = (value, width) => {
|
|
486
|
+
const window = value.slice(0, width + 1);
|
|
487
|
+
const candidates = [
|
|
488
|
+
" -> ",
|
|
489
|
+
" | ",
|
|
490
|
+
" "
|
|
491
|
+
];
|
|
492
|
+
let bestIndex = -1;
|
|
493
|
+
let bestLength = 0;
|
|
494
|
+
for (const candidate of candidates) {
|
|
495
|
+
const idx = window.lastIndexOf(candidate);
|
|
496
|
+
if (idx > bestIndex) {
|
|
497
|
+
bestIndex = idx;
|
|
498
|
+
bestLength = candidate.length;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
if (bestIndex > 0) return bestIndex + bestLength;
|
|
502
|
+
return width;
|
|
503
|
+
};
|
|
504
|
+
//#endregion
|
|
505
|
+
export { ResourceTables };
|
|
506
|
+
|
|
507
|
+
//# sourceMappingURL=resource-table.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-table.mjs","names":[],"sources":["../../../src/surfaces/tui/resource-table.tsx"],"sourcesContent":["import { Box, Text, useWindowSize } from 'ink';\nimport type React from 'react';\n\nimport type {\n\tAccountProjection,\n\tEndpoint,\n\tPackageProjection,\n\tRow,\n} from '../../substrate/projection.ts';\nimport {\n\taccountCells,\n\tderiveDisplayCells,\n\tendpointLine,\n\tgroupRows,\n\tpackageCells,\n\tvisibleEndpointsForRow,\n\ttype ColorToken,\n\ttype DisplayRow,\n\ttype DisplaySection,\n} from './display-derivation.ts';\n\nexport interface ResourceTablesProps {\n\treadonly rows: ReadonlyArray<Row>;\n\treadonly endpoints: ReadonlyArray<Endpoint>;\n\treadonly accounts: ReadonlyArray<AccountProjection>;\n\treadonly packages: ReadonlyArray<PackageProjection>;\n}\n\nconst STATE_WIDTH = 13;\nconst NAME_WIDTH = 18;\nconst MIN_URL_WIDTH = 32;\nconst MAX_URL_WIDTH = 96;\nconst DETAIL_WIDTH = 32;\nconst ACCOUNT_WIDTH = 14;\nconst ADDRESS_WIDTH = 68;\nconst SCHEME_WIDTH = 8;\nconst SOURCE_WIDTH = 8;\nconst FUNDING_WIDTH = 34;\nconst PACKAGE_WIDTH = 18;\nconst PACKAGE_ID_WIDTH = 68;\nconst MVR_WIDTH = 28;\n\ninterface PluginTableLayout {\n\treadonly urlWidth: number;\n\treadonly showDetail: boolean;\n}\n\ninterface AccountTableLayout {\n\treadonly addressWidth: number;\n\treadonly showMeta: boolean;\n\treadonly showFunding: boolean;\n\treadonly showDetail: boolean;\n}\n\ninterface PackageTableLayout {\n\treadonly packageIdWidth: number;\n\treadonly mvrWidth: number;\n\treadonly showMvr: boolean;\n\treadonly showDetail: boolean;\n}\n\nexport const ResourceTables = ({\n\trows,\n\tendpoints,\n\taccounts,\n\tpackages,\n}: ResourceTablesProps): React.JSX.Element => {\n\tconst { columns } = useWindowSize();\n\tconst pluginLayout = pluginTableLayout(columns);\n\tconst accountLayout = accountTableLayout(columns);\n\tconst packageLayout = packageTableLayout(columns);\n\tconst sections = groupRows(rows, endpoints);\n\tconst bySection = new Map(sections.map((section) => [section.key, section]));\n\tconst orderedSections = [\n\t\tbySection.get('service'),\n\t\tbySection.get('package'),\n\t\tbySection.get('account'),\n\t\tbySection.get('action'),\n\t\tbySection.get('app'),\n\t\tbySection.get('other'),\n\t].filter((section): section is DisplaySection => section !== undefined);\n\n\treturn (\n\t\t<Box flexDirection=\"column\">\n\t\t\t<Text bold>Stack</Text>\n\t\t\t{rows.length === 0 && accounts.length === 0 && packages.length === 0 && (\n\t\t\t\t<Text>no plugins declared</Text>\n\t\t\t)}\n\t\t\t{orderedSections.map((section) =>\n\t\t\t\tsection.key === 'account' ? (\n\t\t\t\t\t<AccountSection\n\t\t\t\t\t\tkey={section.key}\n\t\t\t\t\t\tsection={section}\n\t\t\t\t\t\taccounts={accounts}\n\t\t\t\t\t\tlayout={accountLayout}\n\t\t\t\t\t/>\n\t\t\t\t) : section.key === 'package' ? (\n\t\t\t\t\t<PackageSection\n\t\t\t\t\t\tkey={section.key}\n\t\t\t\t\t\tsection={section}\n\t\t\t\t\t\tpackages={packages}\n\t\t\t\t\t\tlayout={packageLayout}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<PluginSection\n\t\t\t\t\t\tkey={section.key}\n\t\t\t\t\t\tsection={section}\n\t\t\t\t\t\tendpoints={endpoints}\n\t\t\t\t\t\tlayout={pluginLayout}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t)}\n\t\t\t{bySection.has('account') ? null : accounts.length > 0 ? (\n\t\t\t\t<AccountSection section={undefined} accounts={accounts} layout={accountLayout} />\n\t\t\t) : null}\n\t\t\t{bySection.has('package') ? null : packages.length > 0 ? (\n\t\t\t\t<PackageSection section={undefined} packages={packages} layout={packageLayout} />\n\t\t\t) : null}\n\t\t</Box>\n\t);\n};\n\nconst PluginSection = ({\n\tsection,\n\tendpoints,\n\tlayout,\n}: {\n\treadonly section: DisplaySection;\n\treadonly endpoints: ReadonlyArray<Endpoint>;\n\treadonly layout: PluginTableLayout;\n}): React.JSX.Element => (\n\t<Box flexDirection=\"column\" marginTop={1}>\n\t\t<Text bold>{section.label}</Text>\n\t\t<Header\n\t\t\tcells={layout.showDetail ? ['STATE', 'NAME', 'URLS', 'DETAIL'] : ['STATE', 'NAME', 'URLS']}\n\t\t\twidths={\n\t\t\t\tlayout.showDetail\n\t\t\t\t\t? [STATE_WIDTH, NAME_WIDTH, layout.urlWidth, DETAIL_WIDTH]\n\t\t\t\t\t: [STATE_WIDTH, NAME_WIDTH, layout.urlWidth]\n\t\t\t}\n\t\t/>\n\t\t{section.rows.map((displayRow) => (\n\t\t\t<PluginRow\n\t\t\t\tkey={displayRow.row.key}\n\t\t\t\tdisplayRow={displayRow}\n\t\t\t\tendpoints={endpoints}\n\t\t\t\tlayout={layout}\n\t\t\t/>\n\t\t))}\n\t</Box>\n);\n\nconst PluginRow = ({\n\tdisplayRow,\n\tendpoints,\n\tlayout,\n}: {\n\treadonly displayRow: DisplayRow;\n\treadonly endpoints: ReadonlyArray<Endpoint>;\n\treadonly layout: PluginTableLayout;\n}): React.JSX.Element => {\n\tconst cells = deriveDisplayCells(displayRow.row, endpoints);\n\tconst urlLines = visibleEndpointsForRow(displayRow.row, endpoints).map(endpointLine);\n\tconst detail = cells.errorSummary || cells.narration;\n\tconst detailLines = detail.length === 0 ? [] : [`detail: ${detail}`];\n\tconst compactUrlLines = [\n\t\t...(urlLines.length === 0 ? ['-'] : urlLines),\n\t\t...(layout.showDetail ? [] : detailLines),\n\t];\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<StateCell glyph={cells.statusGlyph} label={cells.statusLabel} color={cells.statusColor} />\n\t\t\t<FixedText width={NAME_WIDTH} color={cells.labelColor} bold>\n\t\t\t\t{cells.label}\n\t\t\t</FixedText>\n\t\t\t<MultiLineFixedText\n\t\t\t\twidth={layout.urlWidth}\n\t\t\t\tcolor={urlLines.length === 0 ? 'white' : 'cyan'}\n\t\t\t\tlines={compactUrlLines}\n\t\t\t/>\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText\n\t\t\t\t\twidth={DETAIL_WIDTH}\n\t\t\t\t\tcolor={cells.errorSummary ? 'red' : 'white'}\n\t\t\t\t\tlines={[detail]}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst AccountSection = ({\n\tsection,\n\taccounts,\n\tlayout,\n}: {\n\treadonly section: DisplaySection | undefined;\n\treadonly accounts: ReadonlyArray<AccountProjection>;\n\treadonly layout: AccountTableLayout;\n}): React.JSX.Element => {\n\tconst rows = section?.rows ?? [];\n\tconst accountByRow = new Map(\n\t\taccounts\n\t\t\t.filter((account) => account.rowKey !== null)\n\t\t\t.map((account) => [account.rowKey as string, account]),\n\t);\n\tconst rowKeys = new Set(rows.map(({ row }) => row.key));\n\tconst unownedAccounts = accounts.filter(\n\t\t(account) => account.rowKey === null || !rowKeys.has(account.rowKey),\n\t);\n\n\treturn (\n\t\t<Box flexDirection=\"column\" marginTop={1}>\n\t\t\t<Text bold>Accounts</Text>\n\t\t\t<Header\n\t\t\t\tcells={[\n\t\t\t\t\t'STATE',\n\t\t\t\t\t'ACCOUNT',\n\t\t\t\t\t'ADDRESS',\n\t\t\t\t\t...(layout.showMeta ? ['SCHEME', 'SOURCE'] : []),\n\t\t\t\t\t...(layout.showFunding ? ['FUNDING'] : []),\n\t\t\t\t\t...(layout.showDetail ? ['DETAIL'] : []),\n\t\t\t\t]}\n\t\t\t\twidths={[\n\t\t\t\t\tSTATE_WIDTH,\n\t\t\t\t\tACCOUNT_WIDTH,\n\t\t\t\t\tlayout.addressWidth,\n\t\t\t\t\t...(layout.showMeta ? [SCHEME_WIDTH, SOURCE_WIDTH] : []),\n\t\t\t\t\t...(layout.showFunding ? [FUNDING_WIDTH] : []),\n\t\t\t\t\t...(layout.showDetail ? [DETAIL_WIDTH] : []),\n\t\t\t\t]}\n\t\t\t/>\n\t\t\t{rows.map((displayRow) => (\n\t\t\t\t<AccountRow\n\t\t\t\t\tkey={displayRow.row.key}\n\t\t\t\t\tdisplayRow={displayRow}\n\t\t\t\t\taccount={accountByRow.get(displayRow.row.key)}\n\t\t\t\t\tlayout={layout}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{unownedAccounts.map((account) => (\n\t\t\t\t<AccountRecordRow key={account.key} account={account} layout={layout} />\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n\nconst PackageSection = ({\n\tsection,\n\tpackages,\n\tlayout,\n}: {\n\treadonly section: DisplaySection | undefined;\n\treadonly packages: ReadonlyArray<PackageProjection>;\n\treadonly layout: PackageTableLayout;\n}): React.JSX.Element => {\n\tconst rows = section?.rows ?? [];\n\tconst packageByRow = new Map(\n\t\tpackages.filter((pkg) => pkg.rowKey !== null).map((pkg) => [pkg.rowKey as string, pkg]),\n\t);\n\tconst rowKeys = new Set(rows.map(({ row }) => row.key));\n\tconst unownedPackages = packages.filter((pkg) => pkg.rowKey === null || !rowKeys.has(pkg.rowKey));\n\n\treturn (\n\t\t<Box flexDirection=\"column\" marginTop={1}>\n\t\t\t<Text bold>Packages</Text>\n\t\t\t<Header\n\t\t\t\tcells={[\n\t\t\t\t\t'STATE',\n\t\t\t\t\t'PACKAGE',\n\t\t\t\t\t'PACKAGE ID',\n\t\t\t\t\t...(layout.showMvr ? ['MVR'] : []),\n\t\t\t\t\t...(layout.showDetail ? ['DETAIL'] : []),\n\t\t\t\t]}\n\t\t\t\twidths={[\n\t\t\t\t\tSTATE_WIDTH,\n\t\t\t\t\tPACKAGE_WIDTH,\n\t\t\t\t\tlayout.packageIdWidth,\n\t\t\t\t\t...(layout.showMvr ? [layout.mvrWidth] : []),\n\t\t\t\t\t...(layout.showDetail ? [DETAIL_WIDTH] : []),\n\t\t\t\t]}\n\t\t\t/>\n\t\t\t{rows.map((displayRow) => (\n\t\t\t\t<PackageRow\n\t\t\t\t\tkey={displayRow.row.key}\n\t\t\t\t\tdisplayRow={displayRow}\n\t\t\t\t\tpkg={packageByRow.get(displayRow.row.key)}\n\t\t\t\t\tlayout={layout}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{unownedPackages.map((pkg) => (\n\t\t\t\t<PackageRecordRow key={pkg.key} pkg={pkg} layout={layout} />\n\t\t\t))}\n\t\t</Box>\n\t);\n};\n\nconst AccountRow = ({\n\tdisplayRow,\n\taccount,\n\tlayout,\n}: {\n\treadonly displayRow: DisplayRow;\n\treadonly account: AccountProjection | undefined;\n\treadonly layout: AccountTableLayout;\n}): React.JSX.Element => {\n\tconst cells = deriveDisplayCells(displayRow.row);\n\tconst facts =\n\t\taccount === undefined\n\t\t\t? {\n\t\t\t\t\tname: cells.label,\n\t\t\t\t\taddress: '<pending>',\n\t\t\t\t\tscheme: 'pending',\n\t\t\t\t\tsource: 'pending',\n\t\t\t\t\tfunding: 'funding pending',\n\t\t\t\t}\n\t\t\t: accountCells(account);\n\tconst detail = cells.errorSummary || cells.narration || '-';\n\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<StateCell glyph={cells.statusGlyph} label={cells.statusLabel} color={cells.statusColor} />\n\t\t\t<FixedText width={ACCOUNT_WIDTH} color={cells.labelColor} bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.addressWidth} color=\"white\">\n\t\t\t\t{facts.address}\n\t\t\t</FixedText>\n\t\t\t{layout.showMeta && (\n\t\t\t\t<>\n\t\t\t\t\t<FixedText width={SCHEME_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.scheme}\n\t\t\t\t\t</FixedText>\n\t\t\t\t\t<FixedText width={SOURCE_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.source}\n\t\t\t\t\t</FixedText>\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{layout.showFunding && (\n\t\t\t\t<FixedText width={FUNDING_WIDTH} color=\"white\">\n\t\t\t\t\t{facts.funding}\n\t\t\t\t</FixedText>\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText\n\t\t\t\t\twidth={DETAIL_WIDTH}\n\t\t\t\t\tcolor={cells.errorSummary ? 'red' : 'white'}\n\t\t\t\t\tlines={[detail]}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst PackageRow = ({\n\tdisplayRow,\n\tpkg,\n\tlayout,\n}: {\n\treadonly displayRow: DisplayRow;\n\treadonly pkg: PackageProjection | undefined;\n\treadonly layout: PackageTableLayout;\n}): React.JSX.Element => {\n\tconst cells = deriveDisplayCells(displayRow.row);\n\tconst facts =\n\t\tpkg === undefined\n\t\t\t? {\n\t\t\t\t\tname: cells.label,\n\t\t\t\t\tpackageId: '<pending>',\n\t\t\t\t\tmvr: 'pending',\n\t\t\t\t\tdetail: cells.errorSummary || cells.narration || 'publish pending',\n\t\t\t\t}\n\t\t\t: packageCells(pkg);\n\tconst detail = cells.errorSummary || cells.narration || facts.detail || '-';\n\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<StateCell glyph={cells.statusGlyph} label={cells.statusLabel} color={cells.statusColor} />\n\t\t\t<FixedText width={PACKAGE_WIDTH} color={cells.labelColor} bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.packageIdWidth} color=\"white\">\n\t\t\t\t{facts.packageId}\n\t\t\t</FixedText>\n\t\t\t{layout.showMvr && (\n\t\t\t\t<MultiLineFixedText width={layout.mvrWidth} color=\"white\" lines={[facts.mvr]} />\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText\n\t\t\t\t\twidth={DETAIL_WIDTH}\n\t\t\t\t\tcolor={cells.errorSummary ? 'red' : 'white'}\n\t\t\t\t\tlines={[detail]}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst AccountRecordRow = ({\n\taccount,\n\tlayout,\n}: {\n\treadonly account: AccountProjection;\n\treadonly layout: AccountTableLayout;\n}): React.JSX.Element => {\n\tconst facts = accountCells(account);\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<FixedText width={STATE_WIDTH} color=\"white\">\n\t\t\t\trecord\n\t\t\t</FixedText>\n\t\t\t<FixedText width={ACCOUNT_WIDTH} color=\"magenta\" bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.addressWidth} color=\"white\">\n\t\t\t\t{facts.address}\n\t\t\t</FixedText>\n\t\t\t{layout.showMeta && (\n\t\t\t\t<>\n\t\t\t\t\t<FixedText width={SCHEME_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.scheme}\n\t\t\t\t\t</FixedText>\n\t\t\t\t\t<FixedText width={SOURCE_WIDTH} color=\"white\">\n\t\t\t\t\t\t{facts.source}\n\t\t\t\t\t</FixedText>\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{layout.showFunding && (\n\t\t\t\t<FixedText width={FUNDING_WIDTH} color=\"white\">\n\t\t\t\t\t{facts.funding}\n\t\t\t\t</FixedText>\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<FixedText width={DETAIL_WIDTH} color=\"white\">\n\t\t\t\t\t-\n\t\t\t\t</FixedText>\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst PackageRecordRow = ({\n\tpkg,\n\tlayout,\n}: {\n\treadonly pkg: PackageProjection;\n\treadonly layout: PackageTableLayout;\n}): React.JSX.Element => {\n\tconst facts = packageCells(pkg);\n\treturn (\n\t\t<Box flexDirection=\"row\" gap={1}>\n\t\t\t<FixedText width={STATE_WIDTH} color=\"white\">\n\t\t\t\trecord\n\t\t\t</FixedText>\n\t\t\t<FixedText width={PACKAGE_WIDTH} color=\"magenta\" bold>\n\t\t\t\t{facts.name}\n\t\t\t</FixedText>\n\t\t\t<FixedText width={layout.packageIdWidth} color=\"white\">\n\t\t\t\t{facts.packageId}\n\t\t\t</FixedText>\n\t\t\t{layout.showMvr && (\n\t\t\t\t<MultiLineFixedText width={layout.mvrWidth} color=\"white\" lines={[facts.mvr]} />\n\t\t\t)}\n\t\t\t{layout.showDetail && (\n\t\t\t\t<MultiLineFixedText width={DETAIL_WIDTH} color=\"white\" lines={[facts.detail]} />\n\t\t\t)}\n\t\t</Box>\n\t);\n};\n\nconst StateCell = ({\n\tglyph,\n\tlabel,\n\tcolor,\n}: {\n\treadonly glyph: string;\n\treadonly label: string;\n\treadonly color: ColorToken;\n}): React.JSX.Element => (\n\t<FixedText width={STATE_WIDTH} color={color}>\n\t\t{`${glyph} ${label}`}\n\t</FixedText>\n);\n\nconst Header = ({\n\tcells,\n\twidths,\n}: {\n\treadonly cells: ReadonlyArray<string>;\n\treadonly widths: ReadonlyArray<number>;\n}): React.JSX.Element => (\n\t<Box flexDirection=\"row\" gap={1}>\n\t\t{cells.map((cell, index) =>\n\t\t\twidths[index] === 0 ? (\n\t\t\t\t<Text key={`${index}:${cell}`} bold>\n\t\t\t\t\t{cell}\n\t\t\t\t</Text>\n\t\t\t) : (\n\t\t\t\t<FixedText key={`${index}:${cell}`} width={widths[index] ?? 0} color=\"white\" bold>\n\t\t\t\t\t{cell}\n\t\t\t\t</FixedText>\n\t\t\t),\n\t\t)}\n\t</Box>\n);\n\nconst FixedText = ({\n\twidth,\n\tcolor,\n\tbold = false,\n\tchildren,\n}: {\n\treadonly width: number;\n\treadonly color: ColorToken;\n\treadonly bold?: boolean;\n\treadonly children: string;\n}): React.JSX.Element => (\n\t<Box width={width} flexShrink={0}>\n\t\t<Text color={color} bold={bold}>\n\t\t\t{clip(children, width)}\n\t\t</Text>\n\t</Box>\n);\n\nconst MultiLineFixedText = ({\n\twidth,\n\tcolor,\n\tlines,\n}: {\n\treadonly width: number;\n\treadonly color: ColorToken;\n\treadonly lines: ReadonlyArray<string>;\n}): React.JSX.Element => (\n\t<Box width={width} flexShrink={0} flexDirection=\"column\">\n\t\t{lines\n\t\t\t.flatMap((line) => wrap(line, width))\n\t\t\t.map((line, index) => (\n\t\t\t\t<Text key={`${index}:${line}`} color={color} wrap=\"truncate-end\">\n\t\t\t\t\t{line}\n\t\t\t\t</Text>\n\t\t\t))}\n\t</Box>\n);\n\nconst clip = (value: string, width: number): string => {\n\tif (width <= 0 || value.length <= width) return value;\n\tif (width <= 1) return value.slice(0, width);\n\treturn `${value.slice(0, width - 1)}…`;\n};\n\nconst pluginTableLayout = (columns: number): PluginTableLayout => {\n\tconst gapCount = (showDetail: boolean): number => (showDetail ? 3 : 2);\n\tconst detailBudget = STATE_WIDTH + NAME_WIDTH + DETAIL_WIDTH + MIN_URL_WIDTH + gapCount(true);\n\tconst showDetail = columns >= detailBudget;\n\tconst fixedWidth =\n\t\tSTATE_WIDTH + NAME_WIDTH + (showDetail ? DETAIL_WIDTH : 0) + gapCount(showDetail);\n\tconst availableUrlWidth = Math.max(MIN_URL_WIDTH, columns - fixedWidth);\n\treturn {\n\t\tshowDetail,\n\t\turlWidth: Math.min(MAX_URL_WIDTH, availableUrlWidth),\n\t};\n};\n\nconst accountTableLayout = (columns: number): AccountTableLayout => {\n\tconst fullWidth =\n\t\tSTATE_WIDTH +\n\t\tACCOUNT_WIDTH +\n\t\tADDRESS_WIDTH +\n\t\tSCHEME_WIDTH +\n\t\tSOURCE_WIDTH +\n\t\tFUNDING_WIDTH +\n\t\tDETAIL_WIDTH +\n\t\t6;\n\tconst midWidth =\n\t\tSTATE_WIDTH + ACCOUNT_WIDTH + 32 + SCHEME_WIDTH + SOURCE_WIDTH + FUNDING_WIDTH + 5;\n\tconst showDetail = columns >= fullWidth;\n\tconst showMeta = columns >= midWidth;\n\tconst showFunding = columns >= midWidth;\n\tconst fixed =\n\t\tSTATE_WIDTH +\n\t\tACCOUNT_WIDTH +\n\t\t(showMeta ? SCHEME_WIDTH + SOURCE_WIDTH : 0) +\n\t\t(showFunding ? FUNDING_WIDTH : 0) +\n\t\t(showDetail ? DETAIL_WIDTH : 0) +\n\t\t(1 + (showMeta ? 2 : 0) + (showFunding ? 1 : 0) + (showDetail ? 1 : 0));\n\treturn {\n\t\tshowDetail,\n\t\tshowMeta,\n\t\tshowFunding,\n\t\taddressWidth: Math.min(ADDRESS_WIDTH, Math.max(24, columns - fixed)),\n\t};\n};\n\nconst packageTableLayout = (columns: number): PackageTableLayout => {\n\tconst fullWidth = STATE_WIDTH + PACKAGE_WIDTH + PACKAGE_ID_WIDTH + MVR_WIDTH + DETAIL_WIDTH + 4;\n\tconst showDetail = columns >= fullWidth;\n\tconst showMvr = columns >= STATE_WIDTH + PACKAGE_WIDTH + 24 + 16 + 3;\n\tconst fixed =\n\t\tSTATE_WIDTH +\n\t\tPACKAGE_WIDTH +\n\t\t(showMvr ? MVR_WIDTH : 0) +\n\t\t(showDetail ? DETAIL_WIDTH : 0) +\n\t\t(1 + (showMvr ? 1 : 0) + (showDetail ? 1 : 0));\n\treturn {\n\t\tshowDetail,\n\t\tshowMvr,\n\t\tmvrWidth: showDetail ? MVR_WIDTH : 20,\n\t\tpackageIdWidth: Math.min(PACKAGE_ID_WIDTH, Math.max(24, columns - fixed)),\n\t};\n};\n\nconst wrap = (value: string, width: number): ReadonlyArray<string> => {\n\tconst limit = Math.max(1, width - 1);\n\tif (width <= 0 || value.length <= limit) return [value];\n\tconst lines: Array<string> = [];\n\tlet rest = value;\n\twhile (rest.length > limit) {\n\t\tconst idx = wrapIndex(rest, limit);\n\t\tlines.push(rest.slice(0, idx).trimEnd());\n\t\trest = rest.slice(idx).trimStart();\n\t}\n\tif (rest.length > 0) lines.push(rest);\n\treturn lines;\n};\n\nconst wrapIndex = (value: string, width: number): number => {\n\tconst window = value.slice(0, width + 1);\n\tconst candidates = [' -> ', ' | ', ' '];\n\tlet bestIndex = -1;\n\tlet bestLength = 0;\n\tfor (const candidate of candidates) {\n\t\tconst idx = window.lastIndexOf(candidate);\n\t\tif (idx > bestIndex) {\n\t\t\tbestIndex = idx;\n\t\t\tbestLength = candidate.length;\n\t\t}\n\t}\n\tif (bestIndex > 0) return bestIndex + bestLength;\n\treturn width;\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Shared signal-forwarding helpers for entrypoint shells that run a
|
|
3
|
+
# foreground binary as a non-PID-1 child.
|
|
4
|
+
#
|
|
5
|
+
# Why: several upstream Rust binaries shipped in the devstack images
|
|
6
|
+
# (sui validator, seal key-server) need PID-1 signal adaptation. Keep
|
|
7
|
+
# the shell as PID 1 and run the binary as a child, then forward Docker's
|
|
8
|
+
# stop signal to the child. SIGINT remains the default because Sui's
|
|
9
|
+
# clean shutdown path is ctrl_c-driven. Services without a SIGINT handler
|
|
10
|
+
# can register with TERM instead; non-interactive POSIX shells may start
|
|
11
|
+
# background children with SIGINT ignored, so "no handler" does not make
|
|
12
|
+
# SIGINT a reliable default-terminate signal.
|
|
13
|
+
#
|
|
14
|
+
# Usage (POSIX-sh / dash compatible):
|
|
15
|
+
#
|
|
16
|
+
# . /usr/local/lib/devstack/signal-forward.sh
|
|
17
|
+
#
|
|
18
|
+
# <binary> "$@" &
|
|
19
|
+
# CHILD_PID=$!
|
|
20
|
+
# register_signal_forward "$CHILD_PID"
|
|
21
|
+
# wait_for_child "$CHILD_PID"
|
|
22
|
+
# exit "$?"
|
|
23
|
+
#
|
|
24
|
+
# For an additional sibling child (e.g. sui-faucet alongside sui) call
|
|
25
|
+
# `register_signal_forward "$SECONDARY_PID"` again — multiple PIDs are
|
|
26
|
+
# tracked and each gets its registered signal on shell signal delivery.
|
|
27
|
+
|
|
28
|
+
# Newline-separated "PID SIGNAL" list. POSIX sh has no arrays.
|
|
29
|
+
_DEVSTACK_FORWARD_PIDS=""
|
|
30
|
+
_DEVSTACK_FORWARD_NL='
|
|
31
|
+
'
|
|
32
|
+
|
|
33
|
+
# Add a PID to the forward list and (idempotently) install the trap.
|
|
34
|
+
# The optional second argument is the signal delivered to the child;
|
|
35
|
+
# default SIGINT preserves the Sui entrypoint's existing behavior.
|
|
36
|
+
register_signal_forward() {
|
|
37
|
+
pid="$1"
|
|
38
|
+
signal="${2:-INT}"
|
|
39
|
+
entry="$pid $signal"
|
|
40
|
+
if [ -z "$_DEVSTACK_FORWARD_PIDS" ]; then
|
|
41
|
+
_DEVSTACK_FORWARD_PIDS="$entry"
|
|
42
|
+
# shellcheck disable=SC2064
|
|
43
|
+
trap _devstack_forward_int INT TERM
|
|
44
|
+
else
|
|
45
|
+
_DEVSTACK_FORWARD_PIDS="$_DEVSTACK_FORWARD_PIDS$_DEVSTACK_FORWARD_NL$entry"
|
|
46
|
+
fi
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
# Trap body. Delivers each registered child signal; suppresses already-exited
|
|
50
|
+
# children. Not exported as -f (POSIX sh doesn't have function export);
|
|
51
|
+
# sourced into the calling shell so the trap can resolve it.
|
|
52
|
+
_devstack_forward_int() {
|
|
53
|
+
_saved_ifs=$IFS
|
|
54
|
+
IFS=$_DEVSTACK_FORWARD_NL
|
|
55
|
+
# shellcheck disable=SC2086
|
|
56
|
+
set -- $_DEVSTACK_FORWARD_PIDS
|
|
57
|
+
IFS=$_saved_ifs
|
|
58
|
+
for _entry in "$@"; do
|
|
59
|
+
_pid=${_entry%% *}
|
|
60
|
+
_signal=${_entry#* }
|
|
61
|
+
kill "-$_signal" "$_pid" 2>/dev/null || true
|
|
62
|
+
done
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
# Block until the primary child PID is genuinely gone and return its
|
|
66
|
+
# exit code via $?. dash's `wait <pid>` returns 128+signum on trapped
|
|
67
|
+
# signal delivery even if the child is still alive, so we re-check
|
|
68
|
+
# `kill -0` and loop until the kernel has reaped the child.
|
|
69
|
+
wait_for_child() {
|
|
70
|
+
pid="$1"
|
|
71
|
+
exit_code=0
|
|
72
|
+
while kill -0 "$pid" 2>/dev/null; do
|
|
73
|
+
wait "$pid"
|
|
74
|
+
exit_code=$?
|
|
75
|
+
done
|
|
76
|
+
return "$exit_code"
|
|
77
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
# devstack-rewrite vendored postgres image.
|
|
3
|
+
#
|
|
4
|
+
# Single load-bearing modification: relocate PGDATA off the upstream
|
|
5
|
+
# `VOLUME /var/lib/postgresql/data` declaration.
|
|
6
|
+
#
|
|
7
|
+
# Why: `docker commit` (the mechanism the snapshot engine uses to
|
|
8
|
+
# capture a stack's state) excludes paths declared as VOLUME in the
|
|
9
|
+
# image. The upstream postgres image declares the data directory as a
|
|
10
|
+
# VOLUME, which means docker auto-creates an anonymous volume there
|
|
11
|
+
# even when `-v` is not passed. Writes to that volume are NOT in the
|
|
12
|
+
# writable layer that `docker commit` captures — so a snapshot of a
|
|
13
|
+
# vanilla `postgres:*` container would silently restore as an empty
|
|
14
|
+
# database with no rows.
|
|
15
|
+
#
|
|
16
|
+
# Fix: set `PGDATA` to a path that has NO VOLUME directive in the
|
|
17
|
+
# ancestry. `/pgdata` is arbitrary — anywhere outside the inherited
|
|
18
|
+
# `/var/lib/postgresql/data` works. Writes land in the container's
|
|
19
|
+
# writable layer where `docker commit` (and therefore the snapshot
|
|
20
|
+
# engine) captures them.
|
|
21
|
+
#
|
|
22
|
+
# Distilled doc § Postgres-specific concerns / Invariants:
|
|
23
|
+
# "Vendored image must relocate `PGDATA` off the upstream `VOLUME`
|
|
24
|
+
# path — otherwise snapshot is silently empty."
|
|
25
|
+
#
|
|
26
|
+
# Default tag tracks `postgres:17-alpine` (one major bump up from v3's
|
|
27
|
+
# `16-alpine`). Override via `--build-arg POSTGRES_VERSION=...`.
|
|
28
|
+
|
|
29
|
+
ARG POSTGRES_VERSION=17-alpine
|
|
30
|
+
FROM postgres:${POSTGRES_VERSION}
|
|
31
|
+
|
|
32
|
+
ENV PGDATA=/var/lib/postgresql/data-devstack
|