@mysten-incubation/devstack 0.0.1 → 0.1.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/README.md +7 -3
- package/dashboard-ui/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/dashboard-ui/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/dashboard-ui/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/dashboard-ui/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dashboard-ui/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/dashboard-ui/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/dashboard-ui/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/dashboard-ui/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/dashboard-ui/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/dashboard-ui/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/dashboard-ui/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/dashboard-ui/assets/index-Bmi1UtAg.js +1356 -0
- package/dashboard-ui/assets/index-D5EShVt4.js +3 -0
- package/dashboard-ui/assets/index-Deml9drg.css +1 -0
- package/dashboard-ui/index.html +13 -0
- package/dist/api/define-capabilities.d.mts +14 -3
- package/dist/api/define-capabilities.mjs +18 -1
- package/dist/api/define-capabilities.mjs.map +1 -1
- package/dist/api/define-devstack.d.mts +1 -1
- package/dist/api/define-devstack.mjs +6 -26
- package/dist/api/define-devstack.mjs.map +1 -1
- package/dist/api/define-plugin.d.mts +1 -0
- package/dist/api/define-plugin.mjs +2 -0
- package/dist/api/inference-network.d.mts +132 -0
- package/dist/api/inference-network.mjs +105 -16
- package/dist/api/inference-network.mjs.map +1 -1
- package/dist/api/plugin-errors.d.mts +7 -0
- package/dist/api/run-stack.d.mts +20 -9
- package/dist/api/run-stack.mjs +56 -29
- package/dist/api/run-stack.mjs.map +1 -1
- package/dist/build-integrations/playwright/config.d.mts +6 -4
- package/dist/build-integrations/playwright/config.mjs +5 -3
- package/dist/build-integrations/playwright/config.mjs.map +1 -1
- package/dist/build-integrations/playwright/errors.d.mts +1 -1
- package/dist/build-integrations/playwright/global-setup.d.mts +43 -17
- package/dist/build-integrations/playwright/global-setup.mjs +250 -13
- package/dist/build-integrations/playwright/global-setup.mjs.map +1 -1
- package/dist/build-integrations/playwright/index.d.mts +5 -3
- package/dist/build-integrations/playwright/index.mjs +4 -2
- package/dist/build-integrations/playwright/stack-context.d.mts +0 -1
- package/dist/build-integrations/playwright/stack-context.mjs +24 -63
- package/dist/build-integrations/playwright/stack-context.mjs.map +1 -1
- package/dist/build-integrations/playwright/wallet-context.d.mts +7 -10
- package/dist/build-integrations/playwright/wallet-context.mjs +8 -13
- package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -1
- package/dist/build-integrations/runtime/cold-start-url.d.mts +5 -0
- package/dist/build-integrations/runtime/cold-start-url.mjs +4 -3
- package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -1
- package/dist/build-integrations/runtime/conventional-routes.d.mts +51 -0
- package/dist/build-integrations/runtime/conventional-routes.mjs +92 -0
- package/dist/build-integrations/runtime/conventional-routes.mjs.map +1 -0
- package/dist/build-integrations/runtime/discover.d.mts +38 -30
- package/dist/build-integrations/runtime/discover.mjs +73 -70
- package/dist/build-integrations/runtime/discover.mjs.map +1 -1
- package/dist/build-integrations/runtime/endpoint-registry.d.mts +3 -1
- package/dist/build-integrations/runtime/endpoint-registry.mjs +3 -1
- package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -1
- package/dist/build-integrations/runtime/index.d.mts +7 -2
- package/dist/build-integrations/runtime/index.mjs +9 -2
- package/dist/build-integrations/runtime/manifest-types.d.mts +2 -0
- package/dist/build-integrations/runtime/manifest-types.mjs +3 -0
- package/dist/build-integrations/runtime/playwright-stack-context-slot.d.mts +29 -0
- package/dist/build-integrations/runtime/playwright-stack-context-slot.mjs +10 -0
- package/dist/build-integrations/runtime/playwright-stack-context-slot.mjs.map +1 -0
- package/dist/build-integrations/runtime/read-stack-context.d.mts +1 -1
- package/dist/build-integrations/runtime/read-stack-context.mjs +10 -4
- package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -1
- package/dist/build-integrations/runtime/resolve-discovery-env.d.mts +48 -0
- package/dist/build-integrations/runtime/resolve-discovery-env.mjs +42 -0
- package/dist/build-integrations/runtime/resolve-discovery-env.mjs.map +1 -0
- package/dist/build-integrations/runtime/stack-context.d.mts +1 -1
- package/dist/build-integrations/runtime/wallet-paths.mjs +2 -0
- package/dist/build-integrations/vite/index.d.mts +51 -0
- package/dist/build-integrations/vite/index.mjs +73 -0
- package/dist/build-integrations/vite/index.mjs.map +1 -0
- package/dist/build-integrations/vitest/env.d.mts +4 -3
- package/dist/build-integrations/vitest/env.mjs +6 -4
- package/dist/build-integrations/vitest/env.mjs.map +1 -1
- package/dist/build-integrations/vitest/errors.d.mts +25 -4
- package/dist/build-integrations/vitest/errors.mjs +15 -2
- package/dist/build-integrations/vitest/errors.mjs.map +1 -1
- package/dist/build-integrations/vitest/index.d.mts +2 -2
- package/dist/build-integrations/vitest/index.mjs +3 -3
- package/dist/build-integrations/vitest/setup.d.mts +4 -2
- package/dist/build-integrations/vitest/setup.mjs +2 -2
- package/dist/build-integrations/vitest/setup.mjs.map +1 -1
- package/dist/build-integrations/vitest/stack-context.d.mts +0 -1
- package/dist/build-integrations/vitest/stack-context.mjs +33 -13
- package/dist/build-integrations/vitest/stack-context.mjs.map +1 -1
- package/dist/cli/bail.mjs +23 -0
- package/dist/cli/bail.mjs.map +1 -0
- package/dist/{surfaces/cli/commands → cli}/doctor-probes.mjs +26 -16
- package/dist/cli/doctor-probes.mjs.map +1 -0
- package/dist/cli/main.d.mts +15 -1
- package/dist/cli/main.mjs +166 -482
- package/dist/cli/main.mjs.map +1 -1
- package/dist/cli/prune-direct.mjs +31 -201
- package/dist/cli/prune-direct.mjs.map +1 -1
- package/dist/cli/snapshot-reader.mjs +14 -11
- package/dist/cli/snapshot-reader.mjs.map +1 -1
- package/dist/cli/up-lifecycle.mjs +4 -1
- package/dist/cli/up-lifecycle.mjs.map +1 -1
- package/dist/cli/wirings/apply.mjs +95 -0
- package/dist/cli/wirings/apply.mjs.map +1 -0
- package/dist/cli/wirings/build-verb-layers.mjs +42 -0
- package/dist/cli/wirings/build-verb-layers.mjs.map +1 -0
- package/dist/cli/wirings/config-loader.mjs +69 -0
- package/dist/cli/wirings/config-loader.mjs.map +1 -0
- package/dist/cli/wirings/engine-command.mjs +30 -0
- package/dist/cli/wirings/engine-command.mjs.map +1 -0
- package/dist/cli/wirings/identity.mjs +72 -0
- package/dist/cli/wirings/identity.mjs.map +1 -0
- package/dist/cli/wirings/provide-file-system.mjs +7 -0
- package/dist/cli/wirings/provide-file-system.mjs.map +1 -0
- package/dist/cli/wirings/snapshot.mjs +177 -0
- package/dist/cli/wirings/snapshot.mjs.map +1 -0
- package/dist/cli/wirings/up.mjs +287 -0
- package/dist/cli/wirings/up.mjs.map +1 -0
- package/dist/cli/wirings/wipe.mjs +40 -0
- package/dist/cli/wirings/wipe.mjs.map +1 -0
- package/dist/contracts/capability-decl.d.mts +0 -2
- package/dist/contracts/codegenable.d.mts +43 -0
- package/dist/contracts/container-runtime.d.mts +26 -1
- package/dist/contracts/faucet-strategy.d.mts +25 -0
- package/dist/contracts/funding-strategy.d.mts +42 -0
- package/dist/contracts/plugin-expander.mjs +60 -0
- package/dist/contracts/plugin-expander.mjs.map +1 -0
- package/dist/contracts/projection.d.mts +5 -3
- package/dist/contracts/renderer.d.mts +23 -0
- package/dist/contracts/routable.d.mts +14 -1
- package/dist/contracts/snapshotable.d.mts +25 -3
- package/dist/contracts/wallet-protocol.d.mts +52 -0
- package/dist/contracts/wallet-protocol.mjs +52 -0
- package/dist/contracts/wallet-protocol.mjs.map +1 -0
- package/dist/index.d.mts +26 -25
- package/dist/index.mjs +20 -13
- package/dist/{runtime → orchestrators}/built-in-plugin-layers.mjs +10 -5
- package/dist/orchestrators/built-in-plugin-layers.mjs.map +1 -0
- package/dist/orchestrators/codegen/bindings.d.mts +1 -2
- package/dist/orchestrators/codegen/bindings.mjs +52 -186
- package/dist/orchestrators/codegen/bindings.mjs.map +1 -1
- package/dist/orchestrators/codegen/emit.mjs +19 -1
- package/dist/orchestrators/codegen/emit.mjs.map +1 -1
- package/dist/orchestrators/codegen/errors.mjs +8 -3
- package/dist/orchestrators/codegen/errors.mjs.map +1 -1
- package/dist/orchestrators/codegen/format.mjs +47 -39
- package/dist/orchestrators/codegen/format.mjs.map +1 -1
- package/dist/orchestrators/codegen/gitignore.mjs +3 -1
- package/dist/orchestrators/codegen/gitignore.mjs.map +1 -1
- package/dist/orchestrators/codegen/output-location.mjs +40 -0
- package/dist/orchestrators/codegen/output-location.mjs.map +1 -0
- package/dist/orchestrators/codegen/paths.d.mts +1 -1
- package/dist/orchestrators/codegen/paths.mjs +40 -14
- package/dist/orchestrators/codegen/paths.mjs.map +1 -1
- package/dist/orchestrators/codegen/permissions.mjs +3 -1
- package/dist/orchestrators/codegen/permissions.mjs.map +1 -1
- package/dist/orchestrators/codegen/service.mjs +157 -105
- package/dist/orchestrators/codegen/service.mjs.map +1 -1
- package/dist/orchestrators/lifecycle-prune/errors.mjs +31 -0
- package/dist/orchestrators/lifecycle-prune/errors.mjs.map +1 -0
- package/dist/orchestrators/lifecycle-prune/index.mjs +350 -0
- package/dist/orchestrators/lifecycle-prune/index.mjs.map +1 -0
- package/dist/orchestrators/router/cleanup.mjs +26 -27
- package/dist/orchestrators/router/cleanup.mjs.map +1 -1
- package/dist/orchestrators/router/entrypoints.mjs +2 -2
- package/dist/orchestrators/router/entrypoints.mjs.map +1 -1
- package/dist/orchestrators/router/file-provider.mjs +14 -5
- package/dist/orchestrators/router/file-provider.mjs.map +1 -1
- package/dist/orchestrators/router/hostname.mjs +19 -55
- package/dist/orchestrators/router/hostname.mjs.map +1 -1
- package/dist/orchestrators/router/index.mjs +11 -0
- package/dist/orchestrators/router/profile.mjs +2 -2
- package/dist/orchestrators/router/sentinels.mjs +26 -0
- package/dist/orchestrators/router/sentinels.mjs.map +1 -0
- package/dist/orchestrators/router/service.mjs +40 -37
- package/dist/orchestrators/router/service.mjs.map +1 -1
- package/dist/orchestrators/router/traefik-container.mjs +27 -16
- package/dist/orchestrators/router/traefik-container.mjs.map +1 -1
- package/dist/{substrate/runtime → orchestrators}/run.mjs +26 -21
- package/dist/orchestrators/run.mjs.map +1 -0
- package/dist/orchestrators/runtime-composition.d.mts +1 -1
- package/dist/orchestrators/runtime-composition.mjs +123 -39
- package/dist/orchestrators/runtime-composition.mjs.map +1 -1
- package/dist/orchestrators/snapshot/capture-command.d.mts +1 -0
- package/dist/orchestrators/snapshot/capture-command.mjs +25 -0
- package/dist/orchestrators/snapshot/capture-command.mjs.map +1 -0
- package/dist/orchestrators/snapshot/capture.mjs +42 -28
- package/dist/orchestrators/snapshot/capture.mjs.map +1 -1
- package/dist/orchestrators/snapshot/descriptor.mjs +35 -10
- package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -1
- package/dist/orchestrators/snapshot/identity-guard.mjs +1 -1
- package/dist/orchestrators/snapshot/index.mjs +13 -0
- package/dist/orchestrators/snapshot/integrity.d.mts +1 -1
- package/dist/orchestrators/snapshot/integrity.mjs +73 -17
- package/dist/orchestrators/snapshot/integrity.mjs.map +1 -1
- package/dist/orchestrators/snapshot/pending-marker.d.mts +1 -0
- package/dist/orchestrators/snapshot/pending-marker.mjs +99 -0
- package/dist/orchestrators/snapshot/pending-marker.mjs.map +1 -0
- package/dist/orchestrators/snapshot/phase-error.mjs +23 -0
- package/dist/orchestrators/snapshot/phase-error.mjs.map +1 -0
- package/dist/orchestrators/snapshot/prune.mjs +20 -55
- package/dist/orchestrators/snapshot/prune.mjs.map +1 -1
- package/dist/orchestrators/snapshot/recover-pending.d.mts +1 -0
- package/dist/orchestrators/snapshot/recover-pending.mjs +223 -0
- package/dist/orchestrators/snapshot/recover-pending.mjs.map +1 -0
- package/dist/orchestrators/snapshot/restore.mjs +118 -84
- package/dist/orchestrators/snapshot/restore.mjs.map +1 -1
- package/dist/orchestrators/snapshot/service.mjs +53 -56
- package/dist/orchestrators/snapshot/service.mjs.map +1 -1
- package/dist/orchestrators/snapshot/state-document.d.mts +1 -0
- package/dist/orchestrators/snapshot/state-document.mjs +47 -7
- package/dist/orchestrators/snapshot/state-document.mjs.map +1 -1
- package/dist/orchestrators/snapshot/wipe.mjs +67 -10
- package/dist/orchestrators/snapshot/wipe.mjs.map +1 -1
- package/dist/plugins/account/codegen.mjs +9 -8
- package/dist/plugins/account/codegen.mjs.map +1 -1
- package/dist/plugins/account/errors.d.mts +33 -6
- package/dist/plugins/account/errors.mjs.map +1 -1
- package/dist/plugins/account/funding.d.mts +29 -19
- package/dist/plugins/account/funding.mjs +84 -66
- package/dist/plugins/account/funding.mjs.map +1 -1
- package/dist/plugins/account/index.d.mts +2 -4
- package/dist/plugins/account/index.mjs +64 -31
- package/dist/plugins/account/index.mjs.map +1 -1
- package/dist/plugins/account/keypair.mjs +6 -9
- package/dist/plugins/account/keypair.mjs.map +1 -1
- package/dist/plugins/account/lease.mjs +1 -0
- package/dist/plugins/account/lease.mjs.map +1 -1
- package/dist/plugins/account/registry.d.mts +14 -1
- package/dist/plugins/account/registry.mjs +18 -18
- package/dist/plugins/account/registry.mjs.map +1 -1
- package/dist/plugins/account/service.d.mts +23 -4
- package/dist/plugins/account/service.mjs +83 -45
- package/dist/plugins/account/service.mjs.map +1 -1
- package/dist/plugins/account/snapshot.mjs +2 -5
- package/dist/plugins/account/snapshot.mjs.map +1 -1
- package/dist/plugins/account/spans.mjs +16 -0
- package/dist/plugins/account/spans.mjs.map +1 -0
- package/dist/plugins/account/variants/keystore.mjs +6 -8
- package/dist/plugins/account/variants/keystore.mjs.map +1 -1
- package/dist/plugins/action/build-context.d.mts +3 -2
- package/dist/plugins/action/errors.d.mts +16 -12
- package/dist/plugins/action/errors.mjs.map +1 -1
- package/dist/plugins/action/execute.mjs +65 -103
- package/dist/plugins/action/execute.mjs.map +1 -1
- package/dist/plugins/action/index.d.mts +0 -2
- package/dist/plugins/action/index.mjs +17 -13
- package/dist/plugins/action/index.mjs.map +1 -1
- package/dist/plugins/action/service.mjs +38 -35
- package/dist/plugins/action/service.mjs.map +1 -1
- package/dist/plugins/action/spans.mjs +11 -0
- package/dist/plugins/action/spans.mjs.map +1 -0
- package/dist/plugins/coin/codegen.mjs +9 -8
- package/dist/plugins/coin/codegen.mjs.map +1 -1
- package/dist/plugins/coin/discovery.mjs +8 -4
- package/dist/plugins/coin/discovery.mjs.map +1 -1
- package/dist/plugins/coin/index.d.mts +11 -29
- package/dist/plugins/coin/index.mjs +56 -27
- package/dist/plugins/coin/index.mjs.map +1 -1
- package/dist/plugins/coin/metadata.mjs +8 -15
- package/dist/plugins/coin/metadata.mjs.map +1 -1
- package/dist/plugins/coin/mint.d.mts +30 -11
- package/dist/plugins/coin/mint.mjs +78 -74
- package/dist/plugins/coin/mint.mjs.map +1 -1
- package/dist/plugins/coin/registry.mjs +4 -7
- package/dist/plugins/coin/registry.mjs.map +1 -1
- package/dist/plugins/coin/service.d.mts +39 -1
- package/dist/plugins/coin/service.mjs +11 -4
- package/dist/plugins/coin/service.mjs.map +1 -1
- package/dist/plugins/coin/spans.mjs +20 -0
- package/dist/plugins/coin/spans.mjs.map +1 -0
- package/dist/plugins/dashboard/domain.mjs +402 -0
- package/dist/plugins/dashboard/domain.mjs.map +1 -0
- package/dist/plugins/dashboard/index.d.mts +29 -0
- package/dist/plugins/dashboard/index.mjs +91 -0
- package/dist/plugins/dashboard/index.mjs.map +1 -0
- package/dist/plugins/dashboard/origin-policy.mjs +36 -0
- package/dist/plugins/dashboard/origin-policy.mjs.map +1 -0
- package/dist/plugins/dashboard/routable.mjs +27 -0
- package/dist/plugins/dashboard/routable.mjs.map +1 -0
- package/dist/plugins/dashboard/schema/builder.mjs +21 -0
- package/dist/plugins/dashboard/schema/builder.mjs.map +1 -0
- package/dist/plugins/dashboard/schema/enums.mjs +72 -0
- package/dist/plugins/dashboard/schema/enums.mjs.map +1 -0
- package/dist/plugins/dashboard/schema/root.mjs +351 -0
- package/dist/plugins/dashboard/schema/root.mjs.map +1 -0
- package/dist/plugins/dashboard/schema/types.mjs +508 -0
- package/dist/plugins/dashboard/schema/types.mjs.map +1 -0
- package/dist/plugins/dashboard/schema.mjs +11 -0
- package/dist/plugins/dashboard/schema.mjs.map +1 -0
- package/dist/plugins/dashboard/server.mjs +166 -0
- package/dist/plugins/dashboard/server.mjs.map +1 -0
- package/dist/plugins/deepbook/deploy.mjs +53 -115
- package/dist/plugins/deepbook/deploy.mjs.map +1 -1
- package/dist/plugins/deepbook/errors.mjs +1 -0
- package/dist/plugins/deepbook/errors.mjs.map +1 -1
- package/dist/plugins/deepbook/faucet-strategy.mjs +47 -34
- package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -1
- package/dist/plugins/deepbook/hash.mjs +9 -0
- package/dist/plugins/deepbook/hash.mjs.map +1 -0
- package/dist/plugins/deepbook/index.d.mts +1 -10
- package/dist/plugins/deepbook/index.mjs +25 -22
- package/dist/plugins/deepbook/index.mjs.map +1 -1
- package/dist/plugins/deepbook/pyth/index.mjs +26 -55
- package/dist/plugins/deepbook/pyth/index.mjs.map +1 -1
- package/dist/plugins/deepbook/snapshot.mjs +17 -29
- package/dist/plugins/deepbook/snapshot.mjs.map +1 -1
- package/dist/plugins/deepbook/spans.mjs +18 -0
- package/dist/plugins/deepbook/spans.mjs.map +1 -0
- package/dist/plugins/deepbook/type-strings.mjs +65 -0
- package/dist/plugins/deepbook/type-strings.mjs.map +1 -0
- package/dist/plugins/deepbook/types.d.mts +2 -3
- package/dist/plugins/deepbook/types.mjs.map +1 -1
- package/dist/plugins/faucet/dispatcher.d.mts +21 -2
- package/dist/plugins/faucet/dispatcher.mjs +1 -2
- package/dist/plugins/faucet/dispatcher.mjs.map +1 -1
- package/dist/plugins/faucet/errors.d.mts +11 -24
- package/dist/plugins/faucet/errors.mjs.map +1 -1
- package/dist/plugins/faucet/http.mjs +33 -14
- package/dist/plugins/faucet/http.mjs.map +1 -1
- package/dist/plugins/faucet/index.d.mts +15 -5
- package/dist/plugins/faucet/index.mjs +3 -0
- package/dist/plugins/faucet/index.mjs.map +1 -1
- package/dist/plugins/faucet/spans.mjs +12 -0
- package/dist/plugins/faucet/spans.mjs.map +1 -0
- package/dist/plugins/host-service/errors.d.mts +1 -1
- package/dist/plugins/host-service/index.mjs +34 -8
- package/dist/plugins/host-service/index.mjs.map +1 -1
- package/dist/plugins/host-service/routable.mjs +2 -1
- package/dist/plugins/host-service/routable.mjs.map +1 -1
- package/dist/plugins/host-service/service.d.mts +21 -0
- package/dist/plugins/host-service/service.mjs +136 -81
- package/dist/plugins/host-service/service.mjs.map +1 -1
- package/dist/plugins/internal/acquire-on-chain-artifact.mjs +23 -0
- package/dist/plugins/internal/acquire-on-chain-artifact.mjs.map +1 -0
- package/dist/plugins/internal/codegen-helpers.mjs +18 -0
- package/dist/plugins/internal/codegen-helpers.mjs.map +1 -0
- package/dist/plugins/internal/funding-failure-error.mjs +32 -0
- package/dist/plugins/internal/funding-failure-error.mjs.map +1 -0
- package/dist/plugins/package/build.mjs +1 -1
- package/dist/plugins/package/build.mjs.map +1 -1
- package/dist/plugins/package/codegen.mjs +26 -0
- package/dist/plugins/package/codegen.mjs.map +1 -1
- package/dist/plugins/package/errors.d.mts +16 -6
- package/dist/plugins/package/errors.mjs.map +1 -1
- package/dist/plugins/package/index.d.mts +0 -4
- package/dist/plugins/package/index.mjs +27 -21
- package/dist/plugins/package/index.mjs.map +1 -1
- package/dist/plugins/package/mode-known.mjs +26 -12
- package/dist/plugins/package/mode-known.mjs.map +1 -1
- package/dist/plugins/package/mode-local.mjs +47 -41
- package/dist/plugins/package/mode-local.mjs.map +1 -1
- package/dist/plugins/package/publish-executor.mjs +55 -114
- package/dist/plugins/package/publish-executor.mjs.map +1 -1
- package/dist/plugins/package/registry.mjs +2 -1
- package/dist/plugins/package/registry.mjs.map +1 -1
- package/dist/plugins/package/service.mjs.map +1 -1
- package/dist/plugins/package/spans.mjs +14 -0
- package/dist/plugins/package/spans.mjs.map +1 -0
- package/dist/plugins/postgres/db-ensure.mjs +19 -12
- package/dist/plugins/postgres/db-ensure.mjs.map +1 -1
- package/dist/plugins/postgres/errors.d.mts +5 -0
- package/dist/plugins/postgres/errors.mjs.map +1 -1
- package/dist/plugins/postgres/index.mjs +10 -17
- package/dist/plugins/postgres/index.mjs.map +1 -1
- package/dist/plugins/postgres/service.mjs +58 -24
- package/dist/plugins/postgres/service.mjs.map +1 -1
- package/dist/plugins/postgres/snapshot.mjs.map +1 -1
- package/dist/plugins/postgres/spans.mjs +11 -0
- package/dist/plugins/postgres/spans.mjs.map +1 -0
- package/dist/plugins/router-entrypoints.mjs +4 -4
- package/dist/plugins/router-entrypoints.mjs.map +1 -1
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +15 -13
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -1
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +15 -19
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -1
- package/dist/plugins/seal/codegen.d.mts +2 -3
- package/dist/plugins/seal/codegen.mjs.map +1 -1
- package/dist/plugins/seal/config-render.mjs +35 -8
- package/dist/plugins/seal/config-render.mjs.map +1 -1
- package/dist/plugins/seal/deploy.mjs +31 -39
- package/dist/plugins/seal/deploy.mjs.map +1 -1
- package/dist/plugins/seal/errors.d.mts +1 -3
- package/dist/plugins/seal/errors.mjs +7 -1
- package/dist/plugins/seal/errors.mjs.map +1 -1
- package/dist/plugins/seal/index.d.mts +1 -6
- package/dist/plugins/seal/index.mjs +40 -14
- package/dist/plugins/seal/index.mjs.map +1 -1
- package/dist/plugins/seal/key-manager.d.mts +1 -9
- package/dist/plugins/seal/key-manager.mjs +2 -18
- package/dist/plugins/seal/key-manager.mjs.map +1 -1
- package/dist/plugins/seal/key-server.mjs +37 -36
- package/dist/plugins/seal/key-server.mjs.map +1 -1
- package/dist/plugins/seal/keygen.mjs +16 -17
- package/dist/plugins/seal/keygen.mjs.map +1 -1
- package/dist/plugins/seal/mode/fork-known.mjs +36 -14
- package/dist/plugins/seal/mode/fork-known.mjs.map +1 -1
- package/dist/plugins/seal/mode/live.d.mts +6 -4
- package/dist/plugins/seal/mode/live.mjs +14 -21
- package/dist/plugins/seal/mode/live.mjs.map +1 -1
- package/dist/plugins/seal/mode/local-keygen.mjs +57 -21
- package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -1
- package/dist/plugins/seal/registry-publish.mjs +1 -0
- package/dist/plugins/seal/registry-publish.mjs.map +1 -1
- package/dist/plugins/seal/routable.mjs.map +1 -1
- package/dist/plugins/seal/service.mjs.map +1 -1
- package/dist/plugins/seal/spans.mjs +18 -0
- package/dist/plugins/seal/spans.mjs.map +1 -0
- package/dist/plugins/sui/auto-tick.mjs +17 -23
- package/dist/plugins/sui/auto-tick.mjs.map +1 -1
- package/dist/plugins/sui/chain-build-container.mjs +18 -0
- package/dist/plugins/sui/chain-build-container.mjs.map +1 -0
- package/dist/plugins/sui/chain-probe.d.mts +5 -5
- package/dist/plugins/sui/chain-probe.mjs +28 -58
- package/dist/plugins/sui/chain-probe.mjs.map +1 -1
- package/dist/plugins/sui/codegen.mjs +26 -0
- package/dist/plugins/sui/codegen.mjs.map +1 -1
- package/dist/plugins/sui/errors.d.mts +2 -29
- package/dist/plugins/sui/errors.mjs +1 -3
- package/dist/plugins/sui/errors.mjs.map +1 -1
- package/dist/plugins/sui/fork-faucet-strategy.d.mts +1 -0
- package/dist/plugins/sui/fork-faucet-strategy.mjs +55 -0
- package/dist/plugins/sui/fork-faucet-strategy.mjs.map +1 -0
- package/dist/plugins/sui/fork-orchestration.d.mts +1 -0
- package/dist/plugins/sui/fork-orchestration.mjs +170 -2
- package/dist/plugins/sui/fork-orchestration.mjs.map +1 -1
- package/dist/plugins/sui/fork-transaction.d.mts +2 -0
- package/dist/plugins/sui/fork-transaction.mjs +92 -28
- package/dist/plugins/sui/fork-transaction.mjs.map +1 -1
- package/dist/plugins/sui/index.d.mts +33 -70
- package/dist/plugins/sui/index.mjs +58 -35
- package/dist/plugins/sui/index.mjs.map +1 -1
- package/dist/plugins/{faucet/strategies/sui-local.mjs → sui/local-faucet-strategy.mjs} +10 -7
- package/dist/plugins/sui/local-faucet-strategy.mjs.map +1 -0
- package/dist/plugins/sui/mode/external.mjs +7 -13
- package/dist/plugins/sui/mode/external.mjs.map +1 -1
- package/dist/plugins/sui/mode/fork.mjs +136 -59
- package/dist/plugins/sui/mode/fork.mjs.map +1 -1
- package/dist/plugins/sui/mode/live.mjs +10 -16
- package/dist/plugins/sui/mode/live.mjs.map +1 -1
- package/dist/plugins/sui/mode/local.mjs +37 -36
- package/dist/plugins/sui/mode/local.mjs.map +1 -1
- package/dist/plugins/sui/mode/shared-boot.mjs +38 -115
- package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -1
- package/dist/plugins/sui/mode/shared.d.mts +1 -5
- package/dist/plugins/sui/mode/shared.mjs.map +1 -1
- package/dist/plugins/sui/mode/spec.d.mts +18 -0
- package/dist/plugins/sui/move-summary-runner.mjs +207 -0
- package/dist/plugins/sui/move-summary-runner.mjs.map +1 -0
- package/dist/plugins/sui/network-resolver.d.mts +4 -3
- package/dist/plugins/sui/service.mjs.map +1 -1
- package/dist/plugins/sui/snapshot.mjs +3 -0
- package/dist/plugins/sui/snapshot.mjs.map +1 -1
- package/dist/plugins/sui/spans.mjs +17 -0
- package/dist/plugins/sui/spans.mjs.map +1 -0
- package/dist/plugins/wallet/codegen.d.mts +0 -1
- package/dist/plugins/wallet/codegen.mjs +8 -9
- package/dist/plugins/wallet/codegen.mjs.map +1 -1
- package/dist/plugins/wallet/index.d.mts +6 -8
- package/dist/plugins/wallet/index.mjs +46 -35
- package/dist/plugins/wallet/index.mjs.map +1 -1
- package/dist/plugins/wallet/origin-policy.mjs +12 -28
- package/dist/plugins/wallet/origin-policy.mjs.map +1 -1
- package/dist/plugins/wallet/pairing.mjs +6 -4
- package/dist/plugins/wallet/pairing.mjs.map +1 -1
- package/dist/plugins/wallet/protocol.d.mts +1 -0
- package/dist/plugins/wallet/protocol.mjs +5 -44
- package/dist/plugins/wallet/protocol.mjs.map +1 -1
- package/dist/plugins/wallet/routable.mjs +2 -8
- package/dist/plugins/wallet/routable.mjs.map +1 -1
- package/dist/plugins/wallet/server.mjs +36 -44
- package/dist/plugins/wallet/server.mjs.map +1 -1
- package/dist/plugins/wallet/service.d.mts +1 -5
- package/dist/plugins/wallet/service.mjs +22 -18
- package/dist/plugins/wallet/service.mjs.map +1 -1
- package/dist/plugins/wallet/spans.mjs +22 -0
- package/dist/plugins/wallet/spans.mjs.map +1 -0
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +33 -8
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -1
- package/dist/plugins/walrus/codegen.d.mts +3 -3
- package/dist/plugins/walrus/codegen.mjs.map +1 -1
- package/dist/plugins/walrus/deploy-paths.mjs +21 -5
- package/dist/plugins/walrus/deploy-paths.mjs.map +1 -1
- package/dist/plugins/walrus/deploy.mjs +67 -69
- package/dist/plugins/walrus/deploy.mjs.map +1 -1
- package/dist/plugins/walrus/errors.mjs +1 -0
- package/dist/plugins/walrus/errors.mjs.map +1 -1
- package/dist/plugins/walrus/faucet-strategy.mjs +12 -7
- package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -1
- package/dist/plugins/walrus/index.d.mts +2 -13
- package/dist/plugins/walrus/index.mjs +18 -23
- package/dist/plugins/walrus/index.mjs.map +1 -1
- package/dist/plugins/walrus/mode/known-deploy.mjs +7 -5
- package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -1
- package/dist/plugins/walrus/mode/local-cluster.mjs +26 -7
- package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -1
- package/dist/plugins/walrus/registry-publish.mjs.map +1 -1
- package/dist/plugins/walrus/routable.mjs +7 -23
- package/dist/plugins/walrus/routable.mjs.map +1 -1
- package/dist/plugins/walrus/service.mjs.map +1 -1
- package/dist/plugins/walrus/spans.mjs +18 -0
- package/dist/plugins/walrus/spans.mjs.map +1 -0
- package/dist/plugins/walrus/storage-nodes.d.mts +6 -2
- package/dist/plugins/walrus/storage-nodes.mjs +15 -8
- package/dist/plugins/walrus/storage-nodes.mjs.map +1 -1
- package/dist/plugins/walrus/wal-swap.mjs +58 -15
- package/dist/plugins/walrus/wal-swap.mjs.map +1 -1
- package/dist/primitives/artifact-publisher.d.mts +1 -1
- package/dist/primitives/artifact-publisher.mjs +15 -0
- package/dist/primitives/artifact-publisher.mjs.map +1 -0
- package/dist/runtime/docker/client.mjs +17 -4
- package/dist/runtime/docker/client.mjs.map +1 -1
- package/dist/runtime/docker/container.mjs +219 -132
- package/dist/runtime/docker/container.mjs.map +1 -1
- package/dist/runtime/docker/errors.mjs +0 -6
- package/dist/runtime/docker/errors.mjs.map +1 -1
- package/dist/runtime/docker/exec.mjs +21 -18
- package/dist/runtime/docker/exec.mjs.map +1 -1
- package/dist/runtime/docker/image.mjs +36 -13
- package/dist/runtime/docker/image.mjs.map +1 -1
- package/dist/runtime/docker/index.mjs +14 -0
- package/dist/runtime/docker/inspect-and-decode.mjs +51 -0
- package/dist/runtime/docker/inspect-and-decode.mjs.map +1 -0
- package/dist/runtime/docker/inventory.mjs +14 -11
- package/dist/runtime/docker/inventory.mjs.map +1 -1
- package/dist/runtime/docker/labels.mjs +38 -5
- package/dist/runtime/docker/labels.mjs.map +1 -1
- package/dist/runtime/docker/logs.d.mts +1 -1
- package/dist/runtime/docker/logs.mjs.map +1 -1
- package/dist/runtime/docker/network.mjs +83 -47
- package/dist/runtime/docker/network.mjs.map +1 -1
- package/dist/runtime/docker/render-run-args.mjs +82 -0
- package/dist/runtime/docker/render-run-args.mjs.map +1 -0
- package/dist/runtime/docker/service.d.mts +1 -1
- package/dist/runtime/docker/service.mjs +12 -7
- package/dist/runtime/docker/service.mjs.map +1 -1
- package/dist/runtime/docker/sweep.mjs +118 -43
- package/dist/runtime/docker/sweep.mjs.map +1 -1
- package/dist/runtime/docker/volume.mjs +2 -0
- package/dist/runtime/docker/volume.mjs.map +1 -1
- package/dist/runtime/docker/wrap.mjs +30 -1
- package/dist/runtime/docker/wrap.mjs.map +1 -1
- package/dist/substrate/cross-process.mjs +14 -8
- package/dist/substrate/cross-process.mjs.map +1 -1
- package/dist/substrate/event-time.mjs +33 -0
- package/dist/substrate/event-time.mjs.map +1 -0
- package/dist/substrate/events.d.mts +28 -8
- package/dist/substrate/identity.d.mts +2 -1
- package/dist/substrate/manifest.d.mts +68 -5
- package/dist/substrate/manifest.mjs +34 -5
- package/dist/substrate/manifest.mjs.map +1 -1
- package/dist/substrate/network.d.mts +3 -5
- package/dist/substrate/options.d.mts +0 -2
- package/dist/substrate/plugin.d.mts +13 -0
- package/dist/substrate/plugin.mjs +4 -2
- package/dist/substrate/plugin.mjs.map +1 -1
- package/dist/substrate/projection.d.mts +35 -3
- package/dist/substrate/runtime/artifact-publisher/index.mjs +19 -9
- package/dist/substrate/runtime/artifact-publisher/index.mjs.map +1 -1
- package/dist/substrate/runtime/atomic-write.mjs +97 -32
- package/dist/substrate/runtime/atomic-write.mjs.map +1 -1
- package/dist/substrate/runtime/cache/index.mjs +3 -0
- package/dist/substrate/runtime/cache/schema.mjs +2 -2
- package/dist/substrate/runtime/cache/schema.mjs.map +1 -1
- package/dist/substrate/runtime/cache/service.mjs +9 -7
- package/dist/substrate/runtime/cache/service.mjs.map +1 -1
- package/dist/substrate/runtime/capability-sinks/index.d.mts +1 -1
- package/dist/substrate/runtime/capability-sinks/index.mjs +3 -0
- package/dist/substrate/runtime/capability-sinks/layer.mjs +1 -1
- package/dist/substrate/runtime/capability-sinks/service.d.mts +61 -2
- package/dist/substrate/runtime/capability-sinks/service.mjs +21 -26
- package/dist/substrate/runtime/capability-sinks/service.mjs.map +1 -1
- package/dist/substrate/runtime/config-validation.d.mts +1 -13
- package/dist/substrate/runtime/config-validation.mjs +2 -91
- package/dist/substrate/runtime/config-validation.mjs.map +1 -1
- package/dist/substrate/runtime/container-runtime.d.mts +1 -0
- package/dist/substrate/runtime/container-runtime.mjs +2 -0
- package/dist/substrate/runtime/control-plane/domain.mjs +101 -0
- package/dist/substrate/runtime/control-plane/domain.mjs.map +1 -0
- package/dist/substrate/runtime/control-plane/service.mjs +7 -0
- package/dist/substrate/runtime/control-plane/service.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +46 -19
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs +30 -12
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/command-channel/index.mjs +5 -0
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs +11 -2
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs +1 -1
- package/dist/substrate/runtime/cross-process/index.mjs +11 -0
- package/dist/substrate/runtime/cross-process/live-clock.mjs +34 -0
- package/dist/substrate/runtime/cross-process/live-clock.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/liveness.mjs +52 -10
- package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/lock.d.mts +1 -0
- package/dist/substrate/runtime/cross-process/lock.mjs +23 -0
- package/dist/substrate/runtime/cross-process/lock.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs +64 -0
- package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/roster.mjs +97 -83
- package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/self-pid.mjs +8 -0
- package/dist/substrate/runtime/cross-process/self-pid.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +24 -28
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/stack-lock.mjs +41 -20
- package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -1
- package/dist/substrate/runtime/current-plugin.mjs +2 -2
- package/dist/substrate/runtime/current-plugin.mjs.map +1 -1
- package/dist/substrate/runtime/errors.mjs +12 -6
- package/dist/substrate/runtime/errors.mjs.map +1 -1
- package/dist/substrate/runtime/format-unknown-error.mjs +30 -0
- package/dist/substrate/runtime/format-unknown-error.mjs.map +1 -0
- package/dist/substrate/runtime/host-bind-mount-owner.mjs +10 -0
- package/dist/substrate/runtime/host-bind-mount-owner.mjs.map +1 -0
- package/dist/substrate/runtime/host-gateway.mjs +20 -0
- package/dist/substrate/runtime/host-gateway.mjs.map +1 -0
- package/dist/substrate/runtime/host-tree-tar/index.mjs +61 -50
- package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -1
- package/dist/substrate/runtime/http-probe.d.mts +1 -1
- package/dist/substrate/runtime/index.mjs +14 -0
- package/dist/substrate/runtime/lease-broker/index.d.mts +1 -1
- package/dist/substrate/runtime/lease-broker/index.mjs +2 -0
- package/dist/substrate/runtime/lease-broker/service.d.mts +1 -64
- package/dist/substrate/runtime/lease-broker/service.mjs +1 -1
- package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs +22 -3
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/index.mjs +9 -0
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +20 -3
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs +1 -1
- package/dist/substrate/runtime/lifecycle/signals.mjs +5 -5
- package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/state-machine.mjs +1 -1
- package/dist/substrate/runtime/managed-container.d.mts +19 -1
- package/dist/substrate/runtime/managed-container.mjs +20 -1
- package/dist/substrate/runtime/managed-container.mjs.map +1 -1
- package/dist/substrate/runtime/manifest/index.mjs +3 -0
- package/dist/substrate/runtime/manifest/manifest.mjs +15 -11
- package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -1
- package/dist/substrate/runtime/mode-errors.mjs +20 -0
- package/dist/substrate/runtime/mode-errors.mjs.map +1 -0
- package/dist/substrate/runtime/observability/cascade-formatter.mjs +9 -13
- package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -1
- package/dist/substrate/runtime/observability/formatter-registry.mjs +19 -36
- package/dist/substrate/runtime/observability/formatter-registry.mjs.map +1 -1
- package/dist/substrate/runtime/observability/ignore-with-log.d.mts +1 -0
- package/dist/substrate/runtime/observability/ignore-with-log.mjs +17 -0
- package/dist/substrate/runtime/observability/ignore-with-log.mjs.map +1 -0
- package/dist/substrate/runtime/observability/index.d.mts +1 -1
- package/dist/substrate/runtime/observability/index.mjs +13 -0
- package/dist/substrate/runtime/observability/log-store.d.mts +1 -0
- package/dist/substrate/runtime/observability/log-store.mjs +175 -0
- package/dist/substrate/runtime/observability/log-store.mjs.map +1 -0
- package/dist/substrate/runtime/observability/logger.d.mts +2 -1
- package/dist/substrate/runtime/observability/logger.mjs +5 -9
- package/dist/substrate/runtime/observability/logger.mjs.map +1 -1
- package/dist/substrate/runtime/observability/output-truncate.mjs +35 -0
- package/dist/substrate/runtime/observability/output-truncate.mjs.map +1 -0
- package/dist/substrate/runtime/observability/pretty-error.mjs +9 -12
- package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -1
- package/dist/substrate/runtime/observability/redaction.d.mts +2 -13
- package/dist/substrate/runtime/observability/redaction.mjs +8 -14
- package/dist/substrate/runtime/observability/redaction.mjs.map +1 -1
- package/dist/substrate/runtime/observability/span-store.d.mts +1 -0
- package/dist/substrate/runtime/observability/span-store.mjs +110 -0
- package/dist/substrate/runtime/observability/span-store.mjs.map +1 -0
- package/dist/substrate/runtime/observability/spans.mjs +14 -14
- package/dist/substrate/runtime/observability/spans.mjs.map +1 -1
- package/dist/substrate/runtime/observability/subprocess-capture.mjs +1 -1
- package/dist/substrate/runtime/passthrough-or-wrap.mjs +33 -0
- package/dist/substrate/runtime/passthrough-or-wrap.mjs.map +1 -0
- package/dist/substrate/runtime/paths.d.mts +1 -1
- package/dist/substrate/runtime/paths.mjs +4 -3
- package/dist/substrate/runtime/paths.mjs.map +1 -1
- package/dist/substrate/runtime/phase-preserving-produce.mjs +40 -0
- package/dist/substrate/runtime/phase-preserving-produce.mjs.map +1 -0
- package/dist/substrate/runtime/port-broker/index.mjs +3 -0
- package/dist/substrate/runtime/port-broker/service.mjs +170 -126
- package/dist/substrate/runtime/port-broker/service.mjs.map +1 -1
- package/dist/substrate/runtime/post-acquire-tasks.mjs +1 -1
- package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -1
- package/dist/substrate/runtime/probes.d.mts +7 -5
- package/dist/substrate/runtime/probes.mjs +3 -1
- package/dist/substrate/runtime/probes.mjs.map +1 -1
- package/dist/substrate/runtime/projection/index.mjs +4 -0
- package/dist/substrate/runtime/projection/operational-endpoints.mjs +1 -2
- package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -1
- package/dist/substrate/runtime/projection/persisted.mjs +33 -15
- package/dist/substrate/runtime/projection/persisted.mjs.map +1 -1
- package/dist/substrate/runtime/projection/state-ref.mjs +26 -2
- package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -1
- package/dist/substrate/runtime/projection/update.mjs +88 -24
- package/dist/substrate/runtime/projection/update.mjs.map +1 -1
- package/dist/substrate/runtime/random-suffix.mjs +11 -0
- package/dist/substrate/runtime/random-suffix.mjs.map +1 -0
- package/dist/substrate/runtime/retry-policy.d.mts +59 -1
- package/dist/substrate/runtime/retry-policy.mjs +66 -1
- package/dist/substrate/runtime/retry-policy.mjs.map +1 -1
- package/dist/substrate/runtime/routed-url.d.mts +1 -0
- package/dist/substrate/runtime/routed-url.mjs +79 -0
- package/dist/substrate/runtime/routed-url.mjs.map +1 -0
- package/dist/substrate/runtime/runtime-decode.d.mts +1 -1
- package/dist/substrate/runtime/runtime-decode.mjs.map +1 -1
- package/dist/substrate/runtime/scoped-http-server.mjs +2 -3
- package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -1
- package/dist/substrate/runtime/scoped-multimap/index.mjs +2 -0
- package/dist/substrate/runtime/scoped-multimap/service.mjs +52 -0
- package/dist/substrate/runtime/scoped-multimap/service.mjs.map +1 -0
- package/dist/substrate/runtime/scoped-ref-map/index.mjs +2 -0
- package/dist/substrate/runtime/scoped-ref-map/service.mjs +2 -2
- package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +1 -1
- package/dist/substrate/runtime/stage-and-swap/index.mjs +72 -4
- package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -1
- package/dist/substrate/runtime/state-store/index.d.mts +1 -0
- package/dist/substrate/runtime/state-store/index.mjs +3 -0
- package/dist/substrate/runtime/state-store/schema.d.mts +1 -0
- package/dist/substrate/runtime/state-store/schema.mjs +19 -14
- package/dist/substrate/runtime/state-store/schema.mjs.map +1 -1
- package/dist/substrate/runtime/state-store/service.d.mts +1 -0
- package/dist/substrate/runtime/state-store/service.mjs +145 -0
- package/dist/substrate/runtime/state-store/service.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.mjs +33 -0
- package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs +1 -1
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -1
- package/dist/substrate/runtime/strategy-registry/index.mjs +4 -0
- package/dist/substrate/runtime/strategy-registry/service.mjs +19 -33
- package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -1
- package/dist/substrate/runtime/subnet-broker.mjs +60 -0
- package/dist/substrate/runtime/subnet-broker.mjs.map +1 -0
- package/dist/substrate/runtime/sui-execute/index.d.mts +21 -1
- package/dist/substrate/runtime/sui-execute/index.mjs +84 -20
- package/dist/substrate/runtime/sui-execute/index.mjs.map +1 -1
- package/dist/substrate/runtime/sui-execute/sign-and-dispatch.d.mts +1 -0
- package/dist/substrate/runtime/sui-execute/sign-and-dispatch.mjs +32 -0
- package/dist/substrate/runtime/sui-execute/sign-and-dispatch.mjs.map +1 -0
- package/dist/substrate/runtime/sui-ledger/object-ref.mjs +32 -0
- package/dist/substrate/runtime/sui-ledger/object-ref.mjs.map +1 -0
- package/dist/substrate/runtime/sui-move-build/index.mjs +93 -19
- package/dist/substrate/runtime/sui-move-build/index.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/acquire-node.mjs +181 -0
- package/dist/substrate/runtime/supervisor/acquire-node.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/background-tasks.mjs +144 -0
- package/dist/substrate/runtime/supervisor/background-tasks.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/command-loop.mjs +68 -0
- package/dist/substrate/runtime/supervisor/command-loop.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs +151 -0
- package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/errors.d.mts +1 -0
- package/dist/substrate/runtime/supervisor/errors.mjs +9 -0
- package/dist/substrate/runtime/supervisor/errors.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/index.d.mts +1 -0
- package/dist/substrate/runtime/supervisor/index.mjs +3 -0
- package/dist/substrate/runtime/supervisor/shutdown.mjs +51 -0
- package/dist/substrate/runtime/supervisor/shutdown.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/start-supervisor.d.mts +1 -0
- package/dist/substrate/runtime/supervisor/start-supervisor.mjs +250 -0
- package/dist/substrate/runtime/supervisor/start-supervisor.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/state.d.mts +1 -0
- package/dist/substrate/runtime/supervisor/state.mjs +22 -0
- package/dist/substrate/runtime/supervisor/state.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/teardown.mjs +57 -0
- package/dist/substrate/runtime/supervisor/teardown.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/types.d.mts +1 -0
- package/dist/substrate/runtime/supervisor/wiring.mjs +133 -0
- package/dist/substrate/runtime/supervisor/wiring.mjs.map +1 -0
- package/dist/substrate/runtime/typed-env.mjs +8 -0
- package/dist/substrate/runtime/typed-env.mjs.map +1 -0
- package/dist/substrate/state-store.d.mts +1 -0
- package/dist/substrate/versioned-doc-schema.mjs +17 -0
- package/dist/substrate/versioned-doc-schema.mjs.map +1 -0
- package/dist/substrate/versioned-doc-sync.mjs +94 -0
- package/dist/substrate/versioned-doc-sync.mjs.map +1 -0
- package/dist/surfaces/cli/command-tree.mjs.map +1 -1
- package/dist/surfaces/cli/commands/index.mjs +9 -0
- package/dist/surfaces/cli/commands/prune-picker-entry.mjs +13 -0
- package/dist/surfaces/cli/commands/prune-picker-entry.mjs.map +1 -0
- package/dist/surfaces/cli/commands/prune-picker.mjs +3 -2
- package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -1
- package/dist/surfaces/cli/commands/prune.mjs +34 -17
- package/dist/surfaces/cli/commands/prune.mjs.map +1 -1
- package/dist/surfaces/cli/commands/status.mjs +2 -2
- package/dist/surfaces/cli/commands/status.mjs.map +1 -1
- package/dist/surfaces/cli/commands/supervisor-presence.mjs +5 -3
- package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -1
- package/dist/surfaces/cli/commands/wipe.mjs +38 -4
- package/dist/surfaces/cli/commands/wipe.mjs.map +1 -1
- package/dist/surfaces/cli/errors.mjs +1 -1
- package/dist/surfaces/cli/errors.mjs.map +1 -1
- package/dist/surfaces/cli/flags.mjs +0 -1
- package/dist/surfaces/cli/flags.mjs.map +1 -1
- package/dist/surfaces/cli/index.mjs +98 -18
- package/dist/surfaces/cli/index.mjs.map +1 -1
- package/dist/surfaces/cli/output.mjs +1 -0
- package/dist/surfaces/cli/output.mjs.map +1 -1
- package/dist/surfaces/cli/sysexits.mjs +2 -1
- package/dist/surfaces/cli/sysexits.mjs.map +1 -1
- package/dist/surfaces/tui/app.mjs +25 -3
- package/dist/surfaces/tui/app.mjs.map +1 -1
- package/dist/surfaces/tui/display-derivation.mjs +23 -74
- package/dist/surfaces/tui/display-derivation.mjs.map +1 -1
- package/dist/surfaces/tui/event-log.mjs +35 -23
- package/dist/surfaces/tui/event-log.mjs.map +1 -1
- package/dist/surfaces/tui/input.mjs +5 -1
- package/dist/surfaces/tui/input.mjs.map +1 -1
- package/dist/surfaces/tui/plain-renderer.mjs +70 -34
- package/dist/surfaces/tui/plain-renderer.mjs.map +1 -1
- package/package.json +24 -4
- package/dist/contracts/liveness-classifier.d.mts +0 -19
- package/dist/contracts/network-resolver.d.mts +0 -15
- package/dist/contracts/network-resolver.mjs +0 -7
- package/dist/contracts/network-resolver.mjs.map +0 -1
- package/dist/orchestrators/codegen/extras.mjs +0 -16
- package/dist/orchestrators/codegen/extras.mjs.map +0 -1
- package/dist/plugins/deepbook/routable.mjs +0 -21
- package/dist/plugins/deepbook/routable.mjs.map +0 -1
- package/dist/plugins/faucet/service.d.mts +0 -20
- package/dist/plugins/faucet/strategies/sui-local.d.mts +0 -23
- package/dist/plugins/faucet/strategies/sui-local.mjs.map +0 -1
- package/dist/plugins/sui/seed-objects.d.mts +0 -18
- package/dist/plugins/sui/seed-objects.mjs +0 -25
- package/dist/plugins/sui/seed-objects.mjs.map +0 -1
- package/dist/runtime/built-in-plugin-layers.mjs.map +0 -1
- package/dist/substrate/runtime/context-helpers.mjs +0 -32
- package/dist/substrate/runtime/context-helpers.mjs.map +0 -1
- package/dist/substrate/runtime/run.mjs.map +0 -1
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs +0 -30
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs.map +0 -1
- package/dist/substrate/runtime/supervisor.d.mts +0 -1
- package/dist/substrate/runtime/supervisor.mjs +0 -831
- package/dist/substrate/runtime/supervisor.mjs.map +0 -1
- package/dist/surfaces/cli/commands/doctor-probes.mjs.map +0 -1
- /package/dist/{substrate/runtime/strategy-registry/faucet-capability-for.d.mts → plugins/faucet/http.d.mts} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{M as o,B as A,J as Qe,V as q,T as ke,a as et,b as W,c as tt,O as Pe,l as Ue,t as Me,m as nt,d as st,e as M,f as rt,A as at,C as ot,g as it,n as Ge,h as B,i as K,S as fe,j as ct,s as ut,F as ne,k as Y,o as me,p as pt,q as _e,r as dt,u as J,v as lt,w as be,x as mt,y as b,z as gt,D as X,E as H,G as se,U as F,H as Tt,I as ht,K as Ee,L as z,P as kt,N as vt,Q as yt,R as ft,W as _t,X as bt,Y as Et}from"./index-Bmi1UtAg.js";let ee=(function(e){return e[e.ED25519=0]="ED25519",e[e.SECP256K1=1]="SECP256K1",e[e.SECP256R1=2]="SECP256R1",e[e.MULTISIG=3]="MULTISIG",e[e.BLS12381=4]="BLS12381",e[e.ZKLOGIN=5]="ZKLOGIN",e[e.PASSKEY=6]="PASSKEY",e})({});var wt=class extends o{constructor(){super("sui.rpc.v2.UserSignature",[{no:1,name:"bcs",kind:"message",T:()=>A},{no:2,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",ee]},{no:3,name:"simple",kind:"message",oneof:"signature",T:()=>ve},{no:4,name:"multisig",kind:"message",oneof:"signature",T:()=>Ct},{no:5,name:"zklogin",kind:"message",oneof:"signature",T:()=>$e},{no:6,name:"passkey",kind:"message",oneof:"signature",T:()=>qe}])}};const te=new wt;var St=class extends o{constructor(){super("sui.rpc.v2.SimpleSignature",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",ee]},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"public_key",kind:"scalar",opt:!0,T:12}])}};const ve=new St;var Nt=class extends o{constructor(){super("sui.rpc.v2.ZkLoginPublicIdentifier",[{no:1,name:"iss",kind:"scalar",opt:!0,T:9},{no:2,name:"address_seed",kind:"scalar",opt:!0,T:9}])}};const Be=new Nt;var Ot=class extends o{constructor(){super("sui.rpc.v2.MultisigMemberPublicKey",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",ee]},{no:2,name:"public_key",kind:"scalar",opt:!0,T:12},{no:3,name:"zklogin",kind:"message",T:()=>Be}])}};const Rt=new Ot;var Lt=class extends o{constructor(){super("sui.rpc.v2.MultisigMember",[{no:1,name:"public_key",kind:"message",T:()=>Rt},{no:2,name:"weight",kind:"scalar",opt:!0,T:13}])}};const xt=new Lt;var At=class extends o{constructor(){super("sui.rpc.v2.MultisigCommittee",[{no:1,name:"members",kind:"message",repeat:2,T:()=>xt},{no:2,name:"threshold",kind:"scalar",opt:!0,T:13}])}};const It=new At;var Dt=class extends o{constructor(){super("sui.rpc.v2.MultisigAggregatedSignature",[{no:1,name:"signatures",kind:"message",repeat:2,T:()=>Pt},{no:2,name:"bitmap",kind:"scalar",opt:!0,T:13},{no:3,name:"legacy_bitmap",kind:"scalar",opt:!0,T:12},{no:4,name:"committee",kind:"message",T:()=>It}])}};const Ct=new Dt;var jt=class extends o{constructor(){super("sui.rpc.v2.MultisigMemberSignature",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",ee]},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"zklogin",kind:"message",T:()=>$e},{no:4,name:"passkey",kind:"message",T:()=>qe}])}};const Pt=new jt;var Ut=class extends o{constructor(){super("sui.rpc.v2.ZkLoginAuthenticator",[{no:1,name:"inputs",kind:"message",T:()=>Gt},{no:2,name:"max_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"signature",kind:"message",T:()=>ve},{no:4,name:"public_identifier",kind:"message",T:()=>Be},{no:5,name:"jwk_id",kind:"message",T:()=>Qe}])}};const $e=new Ut;var Mt=class extends o{constructor(){super("sui.rpc.v2.ZkLoginInputs",[{no:1,name:"proof_points",kind:"message",T:()=>$t},{no:2,name:"iss_base64_details",kind:"message",T:()=>Vt},{no:3,name:"header_base64",kind:"scalar",opt:!0,T:9},{no:4,name:"address_seed",kind:"scalar",opt:!0,T:9}])}};const Gt=new Mt;var Bt=class extends o{constructor(){super("sui.rpc.v2.ZkLoginProof",[{no:1,name:"a",kind:"message",T:()=>we},{no:2,name:"b",kind:"message",T:()=>Wt},{no:3,name:"c",kind:"message",T:()=>we}])}};const $t=new Bt;var qt=class extends o{constructor(){super("sui.rpc.v2.ZkLoginClaim",[{no:1,name:"value",kind:"scalar",opt:!0,T:9},{no:2,name:"index_mod_4",kind:"scalar",opt:!0,T:13}])}};const Vt=new qt;var Ft=class extends o{constructor(){super("sui.rpc.v2.CircomG1",[{no:1,name:"e0",kind:"scalar",opt:!0,T:9},{no:2,name:"e1",kind:"scalar",opt:!0,T:9},{no:3,name:"e2",kind:"scalar",opt:!0,T:9}])}};const we=new Ft;var Kt=class extends o{constructor(){super("sui.rpc.v2.CircomG2",[{no:1,name:"e00",kind:"scalar",opt:!0,T:9},{no:2,name:"e01",kind:"scalar",opt:!0,T:9},{no:3,name:"e10",kind:"scalar",opt:!0,T:9},{no:4,name:"e11",kind:"scalar",opt:!0,T:9},{no:5,name:"e20",kind:"scalar",opt:!0,T:9},{no:6,name:"e21",kind:"scalar",opt:!0,T:9}])}};const Wt=new Kt;var Jt=class extends o{constructor(){super("sui.rpc.v2.PasskeyAuthenticator",[{no:1,name:"authenticator_data",kind:"scalar",opt:!0,T:12},{no:2,name:"client_data_json",kind:"scalar",opt:!0,T:9},{no:3,name:"signature",kind:"message",T:()=>ve}])}};const qe=new Jt;var Ht=class extends o{constructor(){super("sui.rpc.v2.ValidatorCommittee",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"members",kind:"message",repeat:2,T:()=>Ve}])}};const zt=new Ht;var Zt=class extends o{constructor(){super("sui.rpc.v2.ValidatorCommitteeMember",[{no:1,name:"public_key",kind:"scalar",opt:!0,T:12},{no:2,name:"weight",kind:"scalar",opt:!0,T:4,L:0}])}};const Ve=new Zt;var Yt=class extends o{constructor(){super("sui.rpc.v2.ValidatorAggregatedSignature",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"bitmap",kind:"scalar",opt:!0,T:12}])}};const Xt=new Yt;var Qt=class extends o{constructor(){super("sui.rpc.v2.TransactionEvents",[{no:1,name:"bcs",kind:"message",T:()=>A},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"events",kind:"message",repeat:2,T:()=>nn}])}};const en=new Qt;var tn=class extends o{constructor(){super("sui.rpc.v2.Event",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module",kind:"scalar",opt:!0,T:9},{no:3,name:"sender",kind:"scalar",opt:!0,T:9},{no:4,name:"event_type",kind:"scalar",opt:!0,T:9},{no:5,name:"contents",kind:"message",T:()=>A},{no:6,name:"json",kind:"message",T:()=>q}])}};const nn=new tn;var sn=class extends o{constructor(){super("sui.rpc.v2.ExecutedTransaction",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"transaction",kind:"message",T:()=>ke},{no:3,name:"signatures",kind:"message",repeat:2,T:()=>te},{no:4,name:"effects",kind:"message",T:()=>et},{no:5,name:"events",kind:"message",T:()=>en},{no:6,name:"checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"timestamp",kind:"message",T:()=>W},{no:8,name:"balance_changes",kind:"message",repeat:2,T:()=>tt},{no:9,name:"objects",kind:"message",T:()=>Pe}])}};const Z=new sn;var rn=class extends o{constructor(){super("google.protobuf.FieldMask",[{no:1,name:"paths",kind:"scalar",repeat:2,T:9}])}internalJsonWrite(e,t){const n=/[A-Z]|(_([.0-9_]|$))/g;return e.paths.map(s=>{if(n.test(s))throw new Error('Unable to encode FieldMask to JSON. lowerCamelCase of path name "'+s+'" is irreversible.');return Ue(s)}).join(",")}internalJsonRead(e,t,n){if(typeof e!="string")throw new Error("Unable to parse FieldMask from JSON "+Me(e)+". Expected string.");if(n||(n=this.create()),e==="")return n;let s=r=>{if(r.includes("_"))throw new Error("Unable to parse FieldMask from JSON. Path names must be lowerCamelCase.");return r.replace(/[A-Z]/g,a=>"_"+a.toLowerCase())};return n.paths=e.split(",").map(s),n}};const R=new rn;function an(e,t){var n,s,r;let a=e;return a.service=t,a.localName=(n=a.localName)!==null&&n!==void 0?n:Ue(a.name),a.serverStreaming=!!a.serverStreaming,a.clientStreaming=!!a.clientStreaming,a.options=(s=a.options)!==null&&s!==void 0?s:{},a.idempotency=(r=a.idempotency)!==null&&r!==void 0?r:void 0,a}class D{constructor(t,n,s){this.typeName=t,this.methods=n.map(r=>an(r,this)),this.options=s??{}}}class h extends Error{constructor(t,n="UNKNOWN",s){super(t),this.name="RpcError",Object.setPrototypeOf(this,new.target.prototype),this.code=n,this.meta=s??{}}toString(){const t=[this.name+": "+this.message];this.code&&(t.push(""),t.push("Code: "+this.code)),this.serviceName&&this.methodName&&t.push("Method: "+this.serviceName+"/"+this.methodName);let n=Object.entries(this.meta);if(n.length){t.push(""),t.push("Meta:");for(let[s,r]of n)t.push(` ${s}: ${r}`)}return t.join(`
|
|
2
|
+
`)}}function on(e,t){if(!t)return e;let n={};Q(e,n),Q(t,n);for(let s of Object.keys(t)){let r=t[s];switch(s){case"jsonOptions":n.jsonOptions=st(e.jsonOptions,n.jsonOptions);break;case"binaryOptions":n.binaryOptions=nt(e.binaryOptions,n.binaryOptions);break;case"meta":n.meta={},Q(e.meta,n.meta),Q(t.meta,n.meta);break;case"interceptors":n.interceptors=e.interceptors?e.interceptors.concat(r):r.concat();break}}return n}function Q(e,t){if(!e)return;let n=t;for(let[s,r]of Object.entries(e))r instanceof Date?n[s]=new Date(r.getTime()):Array.isArray(r)?n[s]=r.concat():n[s]=r}var E;(function(e){e[e.PENDING=0]="PENDING",e[e.REJECTED=1]="REJECTED",e[e.RESOLVED=2]="RESOLVED"})(E||(E={}));class I{constructor(t=!0){this._state=E.PENDING,this._promise=new Promise((n,s)=>{this._resolve=n,this._reject=s}),t&&this._promise.catch(n=>{})}get state(){return this._state}get promise(){return this._promise}resolve(t){if(this.state!==E.PENDING)throw new Error(`cannot resolve ${E[this.state].toLowerCase()}`);this._resolve(t),this._state=E.RESOLVED}reject(t){if(this.state!==E.PENDING)throw new Error(`cannot reject ${E[this.state].toLowerCase()}`);this._reject(t),this._state=E.REJECTED}resolvePending(t){this._state===E.PENDING&&this.resolve(t)}rejectPending(t){this._state===E.PENDING&&this.reject(t)}}class cn{constructor(){this._lis={nxt:[],msg:[],err:[],cmp:[]},this._closed=!1,this._itState={q:[]}}onNext(t){return this.addLis(t,this._lis.nxt)}onMessage(t){return this.addLis(t,this._lis.msg)}onError(t){return this.addLis(t,this._lis.err)}onComplete(t){return this.addLis(t,this._lis.cmp)}addLis(t,n){return n.push(t),()=>{let s=n.indexOf(t);s>=0&&n.splice(s,1)}}clearLis(){for(let t of Object.values(this._lis))t.splice(0,t.length)}get closed(){return this._closed!==!1}notifyNext(t,n,s){M((t?1:0)+(n?1:0)+(s?1:0)<=1,"only one emission at a time"),t&&this.notifyMessage(t),n&&this.notifyError(n),s&&this.notifyComplete()}notifyMessage(t){M(!this.closed,"stream is closed"),this.pushIt({value:t,done:!1}),this._lis.msg.forEach(n=>n(t)),this._lis.nxt.forEach(n=>n(t,void 0,!1))}notifyError(t){M(!this.closed,"stream is closed"),this._closed=t,this.pushIt(t),this._lis.err.forEach(n=>n(t)),this._lis.nxt.forEach(n=>n(void 0,t,!1)),this.clearLis()}notifyComplete(){M(!this.closed,"stream is closed"),this._closed=!0,this.pushIt({value:null,done:!0}),this._lis.cmp.forEach(t=>t()),this._lis.nxt.forEach(t=>t(void 0,void 0,!0)),this.clearLis()}[Symbol.asyncIterator](){return this._closed===!0?this.pushIt({value:null,done:!0}):this._closed!==!1&&this.pushIt(this._closed),{next:()=>{let t=this._itState;M(t,"bad state"),M(!t.p,"iterator contract broken");let n=t.q.shift();return n?"value"in n?Promise.resolve(n):Promise.reject(n):(t.p=new I,t.p.promise)}}}pushIt(t){let n=this._itState;if(n.p){const s=n.p;M(s.state==E.PENDING,"iterator contract broken"),"value"in t?s.resolve(t):s.reject(t),delete n.p}else n.q.push(t)}}var un=function(e,t,n,s){function r(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function d(l){try{u(s.next(l))}catch(m){i(m)}}function p(l){try{u(s.throw(l))}catch(m){i(m)}}function u(l){l.done?a(l.value):r(l.value).then(d,p)}u((s=s.apply(e,t||[])).next())})};class pn{constructor(t,n,s,r,a,i,d){this.method=t,this.requestHeaders=n,this.request=s,this.headers=r,this.response=a,this.status=i,this.trailers=d}then(t,n){return this.promiseFinished().then(s=>t?Promise.resolve(t(s)):s,s=>n?Promise.resolve(n(s)):Promise.reject(s))}promiseFinished(){return un(this,void 0,void 0,function*(){let[t,n,s,r]=yield Promise.all([this.headers,this.response,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:t,response:n,status:s,trailers:r}})}}var dn=function(e,t,n,s){function r(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function d(l){try{u(s.next(l))}catch(m){i(m)}}function p(l){try{u(s.throw(l))}catch(m){i(m)}}function u(l){l.done?a(l.value):r(l.value).then(d,p)}u((s=s.apply(e,t||[])).next())})};class ln{constructor(t,n,s,r,a,i,d){this.method=t,this.requestHeaders=n,this.request=s,this.headers=r,this.responses=a,this.status=i,this.trailers=d}then(t,n){return this.promiseFinished().then(s=>t?Promise.resolve(t(s)):s,s=>n?Promise.resolve(n(s)):Promise.reject(s))}promiseFinished(){return dn(this,void 0,void 0,function*(){let[t,n,s]=yield Promise.all([this.headers,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:t,status:n,trailers:s}})}}function k(e,t,n,s,r){var a,i,d,p;if(e=="unary"){let u=(l,m,f)=>t.unary(l,m,f);for(const l of((a=s.interceptors)!==null&&a!==void 0?a:[]).filter(m=>m.interceptUnary).reverse()){const m=u;u=(f,S,C)=>l.interceptUnary(m,f,S,C)}return u(n,r,s)}if(e=="serverStreaming"){let u=(l,m,f)=>t.serverStreaming(l,m,f);for(const l of((i=s.interceptors)!==null&&i!==void 0?i:[]).filter(m=>m.interceptServerStreaming).reverse()){const m=u;u=(f,S,C)=>l.interceptServerStreaming(m,f,S,C)}return u(n,r,s)}if(e=="clientStreaming"){let u=(l,m)=>t.clientStreaming(l,m);for(const l of((d=s.interceptors)!==null&&d!==void 0?d:[]).filter(m=>m.interceptClientStreaming).reverse()){const m=u;u=(f,S)=>l.interceptClientStreaming(m,f,S)}return u(n,s)}if(e=="duplex"){let u=(l,m)=>t.duplex(l,m);for(const l of((p=s.interceptors)!==null&&p!==void 0?p:[]).filter(m=>m.interceptDuplex).reverse()){const m=u;u=(f,S)=>l.interceptDuplex(m,f,S)}return u(n,s)}rt(e)}let ge=(function(e){return e[e.ENABLED=0]="ENABLED",e[e.DISABLED=1]="DISABLED",e})({});var mn=class extends o{constructor(){super("sui.rpc.v2.ExecuteTransactionRequest",[{no:1,name:"transaction",kind:"message",T:()=>ke},{no:2,name:"signatures",kind:"message",repeat:2,T:()=>te},{no:3,name:"read_mask",kind:"message",T:()=>R}])}};const gn=new mn;var Tn=class extends o{constructor(){super("sui.rpc.v2.ExecuteTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>Z}])}};const hn=new Tn;var kn=class extends o{constructor(){super("sui.rpc.v2.SimulateTransactionRequest",[{no:1,name:"transaction",kind:"message",T:()=>ke},{no:2,name:"read_mask",kind:"message",T:()=>R},{no:3,name:"checks",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SimulateTransactionRequest.TransactionChecks",ge]},{no:4,name:"do_gas_selection",kind:"scalar",opt:!0,T:8}])}};const vn=new kn;var yn=class extends o{constructor(){super("sui.rpc.v2.SimulateTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>Z},{no:2,name:"command_outputs",kind:"message",repeat:2,T:()=>bn},{no:3,name:"suggested_gas_price",kind:"scalar",opt:!0,T:4,L:0}])}};const fn=new yn;var _n=class extends o{constructor(){super("sui.rpc.v2.CommandResult",[{no:1,name:"return_values",kind:"message",repeat:2,T:()=>Se},{no:2,name:"mutated_by_ref",kind:"message",repeat:2,T:()=>Se}])}};const bn=new _n;var En=class extends o{constructor(){super("sui.rpc.v2.CommandOutput",[{no:1,name:"argument",kind:"message",T:()=>at},{no:2,name:"value",kind:"message",T:()=>A},{no:3,name:"json",kind:"message",T:()=>q}])}};const Se=new En,re=new D("sui.rpc.v2.TransactionExecutionService",[{name:"ExecuteTransaction",options:{},I:gn,O:hn},{name:"SimulateTransaction",options:{},I:vn,O:fn}]);var wn=class extends ot{#e;constructor({client:e,...t}){super(t),this.#e=e}async getObjects(e){const t=it(e.objectIds,50),n=[],s=["owner","object_type","digest","version","object_id"];e.include?.content&&s.push("contents"),e.include?.previousTransaction&&s.push("previous_transaction"),e.include?.objectBcs&&s.push("bcs"),e.include?.json&&s.push("json"),e.include?.display&&s.push("display");for(const r of t){const a=await this.#e.ledgerService.batchGetObjects({requests:r.map(i=>({objectId:i})),readMask:{paths:s}});n.push(...a.response.objects.map(i=>{if(i.result.oneofKind==="error")return new Error(i.result.error.message);if(i.result.oneofKind!=="object")return new Error("Unexpected result type");const d=i.result.object.contents?.value??void 0,p=i.result.object.bcs?.value??void 0,u=i.result.object.objectType,l=u&&u.includes("::")?Ge(u):u??"",m=e.include?.json?i.result.object.json?q.toJson(i.result.object.json):null:void 0,f=Ne(e.include?.display,i.result.object.display);return{objectId:i.result.object.objectId,version:i.result.object.version?.toString(),digest:i.result.object.digest,content:d,owner:$(i.result.object.owner),type:l,previousTransaction:i.result.object.previousTransaction??void 0,objectBcs:p,json:m,display:f}}))}return{objects:n}}async listOwnedObjects(e){const t=["owner","object_type","digest","version","object_id"];e.include?.content&&t.push("contents"),e.include?.previousTransaction&&t.push("previous_transaction"),e.include?.objectBcs&&t.push("bcs"),e.include?.json&&t.push("json"),e.include?.display&&t.push("display");const n=await this.#e.stateService.listOwnedObjects({owner:e.owner,objectType:e.type?(await this.mvr.resolveType({type:e.type})).type:void 0,pageToken:e.cursor?B(e.cursor):void 0,pageSize:e.limit,readMask:{paths:t}});return{objects:n.response.objects.map(s=>({objectId:s.objectId,version:s.version?.toString(),digest:s.digest,content:s.contents?.value,owner:$(s.owner),type:s.objectType,previousTransaction:s.previousTransaction??void 0,objectBcs:s.bcs?.value,json:e.include?.json?s.json?q.toJson(s.json):null:void 0,display:Ne(e.include?.display,s.display)})),cursor:n.response.nextPageToken?K(n.response.nextPageToken):null,hasNextPage:n.response.nextPageToken!==void 0}}async listCoins(e){const t=["owner","object_type","digest","version","object_id","balance"],n=e.coinType??fe,s=await this.#e.stateService.listOwnedObjects({owner:e.owner,objectType:`0x2::coin::Coin<${(await this.mvr.resolveType({type:n})).type}>`,pageToken:e.cursor?B(e.cursor):void 0,readMask:{paths:t}});return{objects:s.response.objects.map(r=>({objectId:r.objectId,version:r.version?.toString(),digest:r.digest,owner:$(r.owner),type:r.objectType,balance:r.balance?.toString()})),cursor:s.response.nextPageToken?K(s.response.nextPageToken):null,hasNextPage:s.response.nextPageToken!==void 0}}async getBalance(e){const t=e.coinType??fe,n=await this.#e.stateService.getBalance({owner:e.owner,coinType:(await this.mvr.resolveType({type:t})).type});return{balance:{balance:n.response.balance?.balance?.toString()??"0",coinType:n.response.balance?.coinType??t,coinBalance:n.response.balance?.coinBalance?.toString()??"0",addressBalance:n.response.balance?.addressBalance?.toString()??"0"}}}async getCoinMetadata(e){const t=(await this.mvr.resolveType({type:e.coinType})).type;let n;try{({response:n}=await this.#e.stateService.getCoinInfo({coinType:t}))}catch{return{coinMetadata:null}}return n.metadata?{coinMetadata:{id:n.metadata.id??null,decimals:n.metadata.decimals??0,name:n.metadata.name??"",symbol:n.metadata.symbol??"",description:n.metadata.description??"",iconUrl:n.metadata.iconUrl??null}}:{coinMetadata:null}}async listBalances(e){const t=await this.#e.stateService.listBalances({owner:e.owner,pageToken:e.cursor?B(e.cursor):void 0,pageSize:e.limit});return{hasNextPage:!!t.response.nextPageToken,cursor:t.response.nextPageToken?K(t.response.nextPageToken):null,balances:t.response.balances.map(n=>({balance:n.balance?.toString()??"0",coinType:n.coinType,coinBalance:n.coinBalance?.toString()??"0",addressBalance:n.addressBalance?.toString()??"0"}))}}async getTransaction(e){const t=["digest","transaction.digest","signatures","effects.status"];e.include?.transaction&&t.push("transaction.sender","transaction.gas_payment","transaction.expiration","transaction.kind"),e.include?.bcs&&t.push("transaction.bcs"),e.include?.balanceChanges&&t.push("balance_changes"),e.include?.effects&&t.push("effects"),e.include?.events&&t.push("events"),e.include?.objectTypes&&(t.push("effects.changed_objects.object_type"),t.push("effects.changed_objects.object_id"));const{response:n}=await this.#e.ledgerService.getTransaction({digest:e.digest,readMask:{paths:t}});if(!n.transaction)throw new Error(`Transaction ${e.digest} not found`);return ae(n.transaction,e.include)}async executeTransaction(e){const t=["digest","transaction.digest","signatures","effects.status"];e.include?.transaction&&t.push("transaction.sender","transaction.gas_payment","transaction.expiration","transaction.kind"),e.include?.bcs&&t.push("transaction.bcs"),e.include?.balanceChanges&&t.push("balance_changes"),e.include?.effects&&t.push("effects"),e.include?.events&&t.push("events"),e.include?.objectTypes&&(t.push("effects.changed_objects.object_type"),t.push("effects.changed_objects.object_id"));const{response:n}=await this.#e.transactionExecutionService.executeTransaction({transaction:{bcs:{value:e.transaction}},signatures:e.signatures.map(s=>({bcs:{value:B(s)},signature:{oneofKind:void 0}})),readMask:{paths:t}});return ae(n.transaction,e.include)}async simulateTransaction(e){const t=["transaction.digest","transaction.transaction.digest","transaction.signatures","transaction.effects.status"];e.include?.transaction&&t.push("transaction.transaction.sender","transaction.transaction.gas_payment","transaction.transaction.expiration","transaction.transaction.kind"),e.include?.bcs&&t.push("transaction.transaction.bcs"),e.include?.balanceChanges&&t.push("transaction.balance_changes"),e.include?.effects&&t.push("transaction.effects"),e.include?.events&&t.push("transaction.events"),e.include?.objectTypes&&(t.push("transaction.effects.changed_objects.object_type"),t.push("transaction.effects.changed_objects.object_id")),e.include?.commandResults&&t.push("command_outputs"),e.transaction instanceof Uint8Array||await e.transaction.prepareForSerialization({client:this});const{response:n}=await this.#e.transactionExecutionService.simulateTransaction({transaction:e.transaction instanceof Uint8Array?{bcs:{value:e.transaction}}:ct(e.transaction),readMask:{paths:t},doGasSelection:!1,checks:e.checksEnabled===!1?ge.DISABLED:ge.ENABLED}),s=ae(n.transaction,e.include),r=e.include?.commandResults&&n.commandOutputs?n.commandOutputs.map(a=>({returnValues:(a.returnValues??[]).map(i=>({bcs:i.value?.value??null})),mutatedReferences:(a.mutatedByRef??[]).map(i=>({bcs:i.value?.value??null}))})):void 0;return s.$kind==="Transaction"?{$kind:"Transaction",Transaction:s.Transaction,commandResults:r}:{$kind:"FailedTransaction",FailedTransaction:s.FailedTransaction,commandResults:r}}async getReferenceGasPrice(){return{referenceGasPrice:(await this.#e.ledgerService.getEpoch({readMask:{paths:["reference_gas_price"]}})).response.epoch?.referenceGasPrice?.toString()??""}}async getProtocolConfig(){const e=(await this.#e.ledgerService.getEpoch({readMask:{paths:["protocol_config"]}})).response.epoch?.protocolConfig;if(!e)throw new Error("Protocol config not found in response");const t={...e.featureFlags},n={};if(e.attributes)for(const[s,r]of Object.entries(e.attributes))n[s]=r??null;return{protocolConfig:{protocolVersion:e.protocolVersion?.toString()??null,featureFlags:t,attributes:n}}}async getCurrentSystemState(){const e=(await this.#e.ledgerService.getEpoch({readMask:{paths:["system_state.version","system_state.epoch","system_state.protocol_version","system_state.reference_gas_price","system_state.epoch_start_timestamp_ms","system_state.safe_mode","system_state.safe_mode_storage_rewards","system_state.safe_mode_computation_rewards","system_state.safe_mode_storage_rebates","system_state.safe_mode_non_refundable_storage_fee","system_state.parameters","system_state.storage_fund","system_state.stake_subsidy"]}})).response.epoch,t=e?.systemState;if(!t)throw new Error("System state not found in response");const n=e?.start?.seconds?Number(e.start.seconds)*1e3+Math.floor((e.start.nanos||0)/1e6):t.epochStartTimestampMs?Number(t.epochStartTimestampMs):null;return{systemState:{systemStateVersion:t.version?.toString()??null,epoch:t.epoch?.toString()??null,protocolVersion:t.protocolVersion?.toString()??null,referenceGasPrice:t.referenceGasPrice?.toString()??null,epochStartTimestampMs:n.toString(),safeMode:t.safeMode??!1,safeModeStorageRewards:t.safeModeStorageRewards?.toString()??null,safeModeComputationRewards:t.safeModeComputationRewards?.toString()??null,safeModeStorageRebates:t.safeModeStorageRebates?.toString()??null,safeModeNonRefundableStorageFee:t.safeModeNonRefundableStorageFee?.toString()??null,parameters:{epochDurationMs:t.parameters?.epochDurationMs?.toString()??null,stakeSubsidyStartEpoch:t.parameters?.stakeSubsidyStartEpoch?.toString()??null,maxValidatorCount:t.parameters?.maxValidatorCount?.toString()??null,minValidatorJoiningStake:t.parameters?.minValidatorJoiningStake?.toString()??null,validatorLowStakeThreshold:t.parameters?.validatorLowStakeThreshold?.toString()??null,validatorLowStakeGracePeriod:t.parameters?.validatorLowStakeGracePeriod?.toString()??null},storageFund:{totalObjectStorageRebates:t.storageFund?.totalObjectStorageRebates?.toString()??null,nonRefundableBalance:t.storageFund?.nonRefundableBalance?.toString()??null},stakeSubsidy:{balance:t.stakeSubsidy?.balance?.toString()??null,distributionCounter:t.stakeSubsidy?.distributionCounter?.toString()??null,currentDistributionAmount:t.stakeSubsidy?.currentDistributionAmount?.toString()??null,stakeSubsidyPeriodLength:t.stakeSubsidy?.stakeSubsidyPeriodLength?.toString()??null,stakeSubsidyDecreaseRate:t.stakeSubsidy?.stakeSubsidyDecreaseRate??null}}}}async listDynamicFields(e){return this.#e.listDynamicFields(e)}async verifyZkLoginSignature(e){const t=B(e.bytes),n=e.intentScope==="PersonalMessage"?ut.byteVector().serialize(t).toBytes():t,{response:s}=await this.#e.signatureVerificationService.verifySignature({message:{name:e.intentScope,value:n},signature:{bcs:{value:B(e.signature)},signature:{oneofKind:void 0}},address:e.address,jwks:[]});return{success:s.isValid??!1,errors:s.reason?[s.reason]:[]}}async defaultNameServiceName(e){return{data:{name:(await this.#e.nameService.reverseLookupName({address:e.address})).response.record?.name??null}}}async getMoveFunction(e){const t=(await this.mvr.resolvePackage({package:e.packageId})).package,{response:n}=await this.#e.movePackageService.getFunction({packageId:t,moduleName:e.moduleName,name:e.name});let s="unknown";switch(n.function?.visibility){case ne.PUBLIC:s="public";break;case ne.PRIVATE:s="private";break;case ne.FRIEND:s="friend";break}return{function:{packageId:me(t),moduleName:e.moduleName,name:n.function?.name,visibility:s,isEntry:n.function?.isEntry??!1,typeParameters:n.function?.typeParameters?.map(({constraints:r})=>({isPhantom:!1,constraints:r.map(a=>{switch(a){case Y.COPY:return"copy";case Y.DROP:return"drop";case Y.STORE:return"store";case Y.KEY:return"key";default:return"unknown"}})??[]}))??[],parameters:n.function?.parameters?.map(r=>xe(r))??[],returns:n.function?.returns?.map(r=>xe(r))??[]}}}async getChainIdentifier(e){return this.cache.read(["chainIdentifier"],async()=>{const{response:t}=await this.#e.ledgerService.getServiceInfo({});if(!t.chainId)throw new Error("Chain identifier not found in service info");return{chainIdentifier:t.chainId}})}resolveTransactionPlugin(){const e=this.#e;return async function(n,s,r){const a=n.snapshot();a.sender||(a.sender="0x0000000000000000000000000000000000000000000000000000000000000000");const i=pt(a);let d;try{d=(await e.transactionExecutionService.simulateTransaction({transaction:i,doGasSelection:!s.onlyTransactionKind&&(a.gasData.budget==null||a.gasData.payment==null),readMask:{paths:["transaction.transaction.sender","transaction.transaction.gas_payment","transaction.transaction.expiration","transaction.transaction.kind","transaction.effects.status"]}})).response}catch(p){throw p instanceof Error&&p.message?new _e(decodeURIComponent(p.message),{cause:p}):p}if(!s.onlyTransactionKind&&d.transaction?.effects?.status&&!d.transaction.effects.status.success){const p=d.transaction.effects.status.error?ye(d.transaction.effects.status.error):void 0;throw new _e(`Transaction resolution failed: ${p?.message??"Transaction failed"}`,{executionError:p})}if(!d.transaction?.transaction)throw new Error("simulateTransaction did not return resolved transaction data");return dt(n,d.transaction.transaction,s),await r()}}};function Ne(e,t){if(e)return t===void 0?null:{output:t.output!==void 0?q.toJson(t.output):null,errors:t.errors!==void 0?q.toJson(t.errors):null}}function $(e){if(!e)return null;if(e.kind===J.IMMUTABLE)return{$kind:"Immutable",Immutable:!0};if(e.kind===J.ADDRESS)return{AddressOwner:e.address,$kind:"AddressOwner"};if(e.kind===J.OBJECT)return{$kind:"ObjectOwner",ObjectOwner:e.address};if(e.kind===J.SHARED)return{$kind:"Shared",Shared:{initialSharedVersion:e.version?.toString()}};if(e.kind===J.CONSENSUS_ADDRESS)return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{startVersion:e.version?.toString(),owner:e.address}};throw new Error(`Unknown owner kind ${JSON.stringify(e,(t,n)=>typeof n=="bigint"?n.toString():n)}`)}function ye(e){const t=e.description??"Unknown error",n=e.command!=null?Number(e.command):void 0,s=e.errorDetails;switch(s?.oneofKind){case"abort":{const r=s.abort,a=r.cleverError;return{$kind:"MoveAbort",message:mt({command:n,location:r.location,abortCode:String(r.abortCode??0n),cleverError:a?{lineNumber:a.lineNumber!=null?Number(a.lineNumber):void 0,constantName:a.constantName,value:a.value?.oneofKind==="rendered"?a.value.rendered:void 0}:void 0}),command:n,MoveAbort:Sn(r)}}case"sizeError":return{$kind:"SizeError",message:t,command:n,SizeError:{name:G(e.kind),size:Number(s.sizeError.size??0n),maxSize:Number(s.sizeError.maxSize??0n)}};case"commandArgumentError":return{$kind:"CommandArgumentError",message:t,command:n,CommandArgumentError:{argument:s.commandArgumentError.argument??0,name:G(s.commandArgumentError.kind)}};case"typeArgumentError":return{$kind:"TypeArgumentError",message:t,command:n,TypeArgumentError:{typeArgument:s.typeArgumentError.typeArgument??0,name:G(s.typeArgumentError.kind)}};case"packageUpgradeError":return{$kind:"PackageUpgradeError",message:t,command:n,PackageUpgradeError:{name:G(s.packageUpgradeError.kind),packageId:s.packageUpgradeError.packageId,digest:s.packageUpgradeError.digest}};case"indexError":return{$kind:"IndexError",message:t,command:n,IndexError:{index:s.indexError.index,subresult:s.indexError.subresult}};case"coinDenyListError":return{$kind:"CoinDenyListError",message:t,command:n,CoinDenyListError:{name:G(e.kind),coinType:s.coinDenyListError.coinType,address:s.coinDenyListError.address}};case"congestedObjects":return{$kind:"CongestedObjects",message:t,command:n,CongestedObjects:{name:G(e.kind),objects:s.congestedObjects.objects}};case"objectId":return{$kind:"ObjectIdError",message:t,command:n,ObjectIdError:{name:G(e.kind),objectId:s.objectId}};default:return{$kind:"Unknown",message:t,command:n,Unknown:null}}}function Sn(e){return{abortCode:String(e.abortCode??0n),location:{...e.location},cleverError:e.cleverError?{errorCode:e.cleverError.errorCode!=null?Number(e.cleverError.errorCode):void 0,lineNumber:e.cleverError.lineNumber!=null?Number(e.cleverError.lineNumber):void 0,constantName:e.cleverError.constantName,constantType:e.cleverError.constantType,value:e.cleverError.value?.oneofKind==="rendered"?e.cleverError.value.rendered:e.cleverError.value?.oneofKind==="raw"?K(e.cleverError.value.raw):void 0}:void 0}}function G(e){if(e==null)return"Unknown";const t=gt[e];return!t||t.endsWith("_UNKNOWN")?"Unknown":t.split("_").map(n=>n.charAt(0)+n.slice(1).toLowerCase()).join("")}function Oe(e){if(e==null)return null;switch(e){case X.CREATED:return"Created";case X.DELETED:return"Deleted";case X.NONE:case X.ID_OPERATION_UNKNOWN:return"None";default:return"Unknown"}}function Re(e){if(e==null)return null;switch(e){case se.EXISTS:return"Exists";case se.DOES_NOT_EXIST:return"DoesNotExist";case se.UNKNOWN:return"Unknown";default:return"Unknown"}}function Le(e){if(e==null)return null;switch(e){case H.OBJECT_WRITE:return"ObjectWrite";case H.PACKAGE_WRITE:return"PackageWrite";case H.DOES_NOT_EXIST:return"DoesNotExist";case H.ACCUMULATOR_WRITE:return"AccumulatorWriteV1";case H.UNKNOWN:return"Unknown";default:return"Unknown"}}function Nn(e){if(e==null)return null;switch(e){case F.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:return"Unknown";case F.READ_ONLY_ROOT:return"ReadOnlyRoot";case F.MUTATE_CONSENSUS_STREAM_ENDED:return"MutateConsensusStreamEnded";case F.READ_CONSENSUS_STREAM_ENDED:return"ReadConsensusStreamEnded";case F.CANCELED:return"Cancelled";case F.PER_EPOCH_CONFIG:return"PerEpochConfig";default:return"Unknown"}}function On({effects:e}){if(!e)return null;const t=e.changedObjects.map(n=>({objectId:n.objectId,inputState:Re(n.inputState),inputVersion:n.inputVersion?.toString()??null,inputDigest:n.inputDigest??null,inputOwner:$(n.inputOwner),outputState:Le(n.outputState),outputVersion:n.outputVersion?.toString()??null,outputDigest:n.outputDigest??null,outputOwner:$(n.outputOwner),idOperation:Oe(n.idOperation)}));return{bcs:e.bcs?.value,version:2,status:e.status?.success?{success:!0,error:null}:{success:!1,error:ye(e.status.error)},gasUsed:{computationCost:e.gasUsed?.computationCost?.toString(),storageCost:e.gasUsed?.storageCost?.toString(),storageRebate:e.gasUsed?.storageRebate?.toString(),nonRefundableStorageFee:e.gasUsed?.nonRefundableStorageFee?.toString()},transactionDigest:e.transactionDigest,gasObject:{objectId:e.gasObject?.objectId,inputState:Re(e.gasObject?.inputState),inputVersion:e.gasObject?.inputVersion?.toString()??null,inputDigest:e.gasObject?.inputDigest??null,inputOwner:$(e.gasObject?.inputOwner),outputState:Le(e.gasObject?.outputState),outputVersion:e.gasObject?.outputVersion?.toString()??null,outputDigest:e.gasObject?.outputDigest??null,outputOwner:$(e.gasObject?.outputOwner),idOperation:Oe(e.gasObject?.idOperation)},eventsDigest:e.eventsDigest??null,dependencies:e.dependencies,lamportVersion:e.lamportVersion?.toString()??null,changedObjects:t,unchangedConsensusObjects:e.unchangedConsensusObjects.map(n=>({kind:Nn(n.kind),objectId:n.objectId,version:n.version?.toString()??null,digest:n.digest??null})),auxiliaryDataDigest:e.auxiliaryDataDigest??null}}function ae(e,t){const n={};t?.objectTypes&&e.effects?.changedObjects?.forEach(p=>{p.objectId&&p.objectType&&(n[p.objectId]=p.objectType)});let s;if(t?.transaction){const p=e.transaction;if(!p)throw new Error("Transaction data is required but missing from gRPC response");const u=lt(p);s={gasData:u.gasData,sender:u.sender,expiration:u.expiration,commands:u.commands,inputs:u.inputs,version:u.version}}const r=t?.bcs?e.transaction?.bcs?.value:void 0,a=t?.effects?On({effects:e.effects}):void 0,i=e.effects?.status?.success?{success:!0,error:null}:{success:!1,error:e.effects?.status?.error?ye(e.effects.status.error):{$kind:"Unknown",message:"Transaction failed",Unknown:null}},d={digest:e.digest,epoch:e.effects?.epoch?.toString()??null,status:i,effects:a,objectTypes:t?.objectTypes?n:void 0,transaction:s,bcs:r,signatures:e.signatures?.map(p=>K(p.bcs?.value))??[],balanceChanges:t?.balanceChanges?e.balanceChanges?.map(p=>({coinType:p.coinType,address:p.address,amount:p.amount}))??[]:void 0,events:t?.events?e.events?.events.map(p=>({packageId:me(p.packageId),module:p.module,sender:me(p.sender),eventType:p.eventType,bcs:p.contents?.value??new Uint8Array,json:p.json?q.toJson(p.json):null}))??[]:void 0};return i.success?{$kind:"Transaction",Transaction:d}:{$kind:"FailedTransaction",FailedTransaction:d}}function xe(e){let t=null;return e.reference===be.IMMUTABLE?t="immutable":e.reference===be.MUTABLE&&(t="mutable"),{reference:t,body:Te(e.body)}}function Te(e){switch(e.type){case b.TYPE_UNKNOWN:return{$kind:"unknown"};case b.ADDRESS:return{$kind:"address"};case b.BOOL:return{$kind:"bool"};case b.U8:return{$kind:"u8"};case b.U16:return{$kind:"u16"};case b.U32:return{$kind:"u32"};case b.U64:return{$kind:"u64"};case b.U128:return{$kind:"u128"};case b.U256:return{$kind:"u256"};case b.VECTOR:return{$kind:"vector",vector:Te(e.typeParameterInstantiation[0])};case b.DATATYPE:return{$kind:"datatype",datatype:{typeName:e.typeName,typeParameters:e.typeParameterInstantiation.map(t=>Te(t))}};case b.TYPE_PARAMETER:return{$kind:"typeParameter",index:e.typeParameter};default:return{$kind:"unknown"}}}var Rn=class{constructor(e){this._transport=e,this.typeName=re.typeName,this.methods=re.methods,this.options=re.options}executeTransaction(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}simulateTransaction(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}},Ln=class extends o{constructor(){super("sui.rpc.v2.ProtocolConfig",[{no:1,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"feature_flags",kind:"map",K:9,V:{kind:"scalar",T:8}},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}])}};const xn=new Ln;var An=class extends o{constructor(){super("sui.rpc.v2.SystemState",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"validators",kind:"message",T:()=>Vn},{no:5,name:"storage_fund",kind:"message",T:()=>$n},{no:6,name:"parameters",kind:"message",T:()=>Pn},{no:7,name:"reference_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"validator_report_records",kind:"message",repeat:2,T:()=>Cn},{no:9,name:"stake_subsidy",kind:"message",T:()=>Gn},{no:10,name:"safe_mode",kind:"scalar",opt:!0,T:8},{no:11,name:"safe_mode_storage_rewards",kind:"scalar",opt:!0,T:4,L:0},{no:12,name:"safe_mode_computation_rewards",kind:"scalar",opt:!0,T:4,L:0},{no:13,name:"safe_mode_storage_rebates",kind:"scalar",opt:!0,T:4,L:0},{no:14,name:"safe_mode_non_refundable_storage_fee",kind:"scalar",opt:!0,T:4,L:0},{no:15,name:"epoch_start_timestamp_ms",kind:"scalar",opt:!0,T:4,L:0},{no:16,name:"extra_fields",kind:"message",T:()=>w}])}};const In=new An;var Dn=class extends o{constructor(){super("sui.rpc.v2.ValidatorReportRecord",[{no:1,name:"reported",kind:"scalar",opt:!0,T:9},{no:2,name:"reporters",kind:"scalar",repeat:2,T:9}])}};const Cn=new Dn;var jn=class extends o{constructor(){super("sui.rpc.v2.SystemParameters",[{no:1,name:"epoch_duration_ms",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"stake_subsidy_start_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"min_validator_count",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"max_validator_count",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"min_validator_joining_stake",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"validator_low_stake_threshold",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"validator_very_low_stake_threshold",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"validator_low_stake_grace_period",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"extra_fields",kind:"message",T:()=>w}])}};const Pn=new jn;var Un=class extends o{constructor(){super("sui.rpc.v2.MoveTable",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"size",kind:"scalar",opt:!0,T:4,L:0}])}};const w=new Un;var Mn=class extends o{constructor(){super("sui.rpc.v2.StakeSubsidy",[{no:1,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"distribution_counter",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"current_distribution_amount",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"stake_subsidy_period_length",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"stake_subsidy_decrease_rate",kind:"scalar",opt:!0,T:13},{no:6,name:"extra_fields",kind:"message",T:()=>w}])}};const Gn=new Mn;var Bn=class extends o{constructor(){super("sui.rpc.v2.StorageFund",[{no:1,name:"total_object_storage_rebates",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"non_refundable_balance",kind:"scalar",opt:!0,T:4,L:0}])}};const $n=new Bn;var qn=class extends o{constructor(){super("sui.rpc.v2.ValidatorSet",[{no:1,name:"total_stake",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"active_validators",kind:"message",repeat:2,T:()=>Kn},{no:3,name:"pending_active_validators",kind:"message",T:()=>w},{no:4,name:"pending_removals",kind:"scalar",repeat:1,T:4,L:0},{no:5,name:"staking_pool_mappings",kind:"message",T:()=>w},{no:6,name:"inactive_validators",kind:"message",T:()=>w},{no:7,name:"validator_candidates",kind:"message",T:()=>w},{no:8,name:"at_risk_validators",kind:"map",K:9,V:{kind:"scalar",T:4,L:0}},{no:9,name:"extra_fields",kind:"message",T:()=>w}])}};const Vn=new qn;var Fn=class extends o{constructor(){super("sui.rpc.v2.Validator",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"address",kind:"scalar",opt:!0,T:9},{no:3,name:"description",kind:"scalar",opt:!0,T:9},{no:4,name:"image_url",kind:"scalar",opt:!0,T:9},{no:5,name:"project_url",kind:"scalar",opt:!0,T:9},{no:7,name:"protocol_public_key",kind:"scalar",opt:!0,T:12},{no:8,name:"proof_of_possession",kind:"scalar",opt:!0,T:12},{no:10,name:"network_public_key",kind:"scalar",opt:!0,T:12},{no:12,name:"worker_public_key",kind:"scalar",opt:!0,T:12},{no:13,name:"network_address",kind:"scalar",opt:!0,T:9},{no:14,name:"p2p_address",kind:"scalar",jsonName:"p2pAddress",opt:!0,T:9},{no:15,name:"primary_address",kind:"scalar",opt:!0,T:9},{no:16,name:"worker_address",kind:"scalar",opt:!0,T:9},{no:18,name:"next_epoch_protocol_public_key",kind:"scalar",opt:!0,T:12},{no:19,name:"next_epoch_proof_of_possession",kind:"scalar",opt:!0,T:12},{no:21,name:"next_epoch_network_public_key",kind:"scalar",opt:!0,T:12},{no:23,name:"next_epoch_worker_public_key",kind:"scalar",opt:!0,T:12},{no:24,name:"next_epoch_network_address",kind:"scalar",opt:!0,T:9},{no:25,name:"next_epoch_p2p_address",kind:"scalar",jsonName:"nextEpochP2pAddress",opt:!0,T:9},{no:26,name:"next_epoch_primary_address",kind:"scalar",opt:!0,T:9},{no:27,name:"next_epoch_worker_address",kind:"scalar",opt:!0,T:9},{no:28,name:"metadata_extra_fields",kind:"message",T:()=>w},{no:29,name:"voting_power",kind:"scalar",opt:!0,T:4,L:0},{no:30,name:"operation_cap_id",kind:"scalar",opt:!0,T:9},{no:31,name:"gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:32,name:"staking_pool",kind:"message",T:()=>Jn},{no:33,name:"commission_rate",kind:"scalar",opt:!0,T:4,L:0},{no:34,name:"next_epoch_stake",kind:"scalar",opt:!0,T:4,L:0},{no:35,name:"next_epoch_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:36,name:"next_epoch_commission_rate",kind:"scalar",opt:!0,T:4,L:0},{no:37,name:"extra_fields",kind:"message",T:()=>w}])}};const Kn=new Fn;var Wn=class extends o{constructor(){super("sui.rpc.v2.StakingPool",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"activation_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"deactivation_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"sui_balance",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"rewards_pool",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"pool_token_balance",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"exchange_rates",kind:"message",T:()=>w},{no:8,name:"pending_stake",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"pending_total_sui_withdraw",kind:"scalar",opt:!0,T:4,L:0},{no:10,name:"pending_pool_token_withdraw",kind:"scalar",opt:!0,T:4,L:0},{no:11,name:"extra_fields",kind:"message",T:()=>w}])}};const Jn=new Wn;var Hn=class extends o{constructor(){super("sui.rpc.v2.Epoch",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"committee",kind:"message",T:()=>zt},{no:3,name:"system_state",kind:"message",T:()=>In},{no:4,name:"first_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"last_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"start",kind:"message",T:()=>W},{no:7,name:"end",kind:"message",T:()=>W},{no:8,name:"reference_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"protocol_config",kind:"message",T:()=>xn}])}};const zn=new Hn;var Zn=class extends o{constructor(){super("sui.rpc.v2.CheckpointContents",[{no:1,name:"bcs",kind:"message",T:()=>A},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:5},{no:4,name:"transactions",kind:"message",repeat:2,T:()=>Qn}])}};const Yn=new Zn;var Xn=class extends o{constructor(){super("sui.rpc.v2.CheckpointedTransactionInfo",[{no:1,name:"transaction",kind:"scalar",opt:!0,T:9},{no:2,name:"effects",kind:"scalar",opt:!0,T:9},{no:3,name:"signatures",kind:"message",repeat:2,T:()=>te},{no:4,name:"address_aliases_versions",kind:"message",repeat:2,T:()=>ts}])}};const Qn=new Xn;var es=class extends o{constructor(){super("sui.rpc.v2.AddressAliasesVersion",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}};const ts=new es;let ns=(function(e){return e[e.CHECKPOINT_COMMITMENT_KIND_UNKNOWN=0]="CHECKPOINT_COMMITMENT_KIND_UNKNOWN",e[e.ECMH_LIVE_OBJECT_SET=1]="ECMH_LIVE_OBJECT_SET",e[e.CHECKPOINT_ARTIFACTS=2]="CHECKPOINT_ARTIFACTS",e})({});var ss=class extends o{constructor(){super("sui.rpc.v2.CheckpointSummary",[{no:1,name:"bcs",kind:"message",T:()=>A},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"sequence_number",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"total_network_transactions",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"content_digest",kind:"scalar",opt:!0,T:9},{no:7,name:"previous_digest",kind:"scalar",opt:!0,T:9},{no:8,name:"epoch_rolling_gas_cost_summary",kind:"message",T:()=>Tt},{no:9,name:"timestamp",kind:"message",T:()=>W},{no:10,name:"commitments",kind:"message",repeat:2,T:()=>Fe},{no:11,name:"end_of_epoch_data",kind:"message",T:()=>os},{no:12,name:"version_specific_data",kind:"scalar",opt:!0,T:12}])}};const rs=new ss;var as=class extends o{constructor(){super("sui.rpc.v2.EndOfEpochData",[{no:1,name:"next_epoch_committee",kind:"message",repeat:2,T:()=>Ve},{no:2,name:"next_epoch_protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"epoch_commitments",kind:"message",repeat:2,T:()=>Fe}])}};const os=new as;var is=class extends o{constructor(){super("sui.rpc.v2.CheckpointCommitment",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CheckpointCommitment.CheckpointCommitmentKind",ns]},{no:2,name:"digest",kind:"scalar",opt:!0,T:9}])}};const Fe=new is;var cs=class extends o{constructor(){super("sui.rpc.v2.Checkpoint",[{no:1,name:"sequence_number",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"summary",kind:"message",T:()=>rs},{no:4,name:"signature",kind:"message",T:()=>Xt},{no:5,name:"contents",kind:"message",T:()=>Yn},{no:6,name:"transactions",kind:"message",repeat:2,T:()=>Z},{no:7,name:"objects",kind:"message",T:()=>Pe}])}};const Ke=new cs;var us=class extends o{constructor(){super("google.protobuf.Any",[{no:1,name:"type_url",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:12}])}pack(e,t){return{typeUrl:this.typeNameToUrl(t.typeName),value:t.toBinary(e)}}unpack(e,t,n){if(!this.contains(e,t))throw new Error("Cannot unpack google.protobuf.Any with typeUrl '"+e.typeUrl+"' as "+t.typeName+".");return t.fromBinary(e.value,n)}contains(e,t){return e.typeUrl.length?(typeof t=="string"?t:t.typeName)===this.typeUrlToName(e.typeUrl):!1}internalJsonWrite(e,t){if(e.typeUrl==="")return{};let n=this.typeUrlToName(e.typeUrl),s=ht(t),r=s.typeRegistry?.find(d=>d.typeName===n);if(!r)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+e.typeUrl+"' to JSON. The specified type "+n+" is not available in the type registry.");let a=r.fromBinary(e.value,{readUnknownField:!1}),i=r.internalJsonWrite(a,s);return(n.startsWith("google.protobuf.")||!Ee(i))&&(i={value:i}),i["@type"]=e.typeUrl,i}internalJsonRead(e,t,n){if(!Ee(e))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+Me(e)+".");if(typeof e["@type"]!="string"||e["@type"]=="")return this.create();let s=this.typeUrlToName(e["@type"]),r=t?.typeRegistry?.find(i=>i.typeName==s);if(!r)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+s+" is not available in the type registry.");let a;if(s.startsWith("google.protobuf.")&&e.hasOwnProperty("value"))a=r.fromJson(e.value,t);else{let i=Object.assign({},e);delete i["@type"],a=r.fromJson(i,t)}return n===void 0&&(n=this.create()),n.typeUrl=e["@type"],n.value=r.toBinary(a),n}typeNameToUrl(e){if(!e.length)throw new Error("invalid type name: "+e);return"type.googleapis.com/"+e}typeUrlToName(e){if(!e.length)throw new Error("invalid type url: "+e);let t=e.lastIndexOf("/"),n=t>0?e.substring(t+1):e;if(!n.length)throw new Error("invalid type url: "+e);return n}};const ps=new us;var ds=class extends o{constructor(){super("google.rpc.Status",[{no:1,name:"code",kind:"scalar",T:5},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"details",kind:"message",repeat:2,T:()=>ps}])}};const We=new ds;var ls=class extends o{constructor(){super("sui.rpc.v2.GetServiceInfoRequest",[])}};const ms=new ls;var gs=class extends o{constructor(){super("sui.rpc.v2.GetServiceInfoResponse",[{no:1,name:"chain_id",kind:"scalar",opt:!0,T:9},{no:2,name:"chain",kind:"scalar",opt:!0,T:9},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"checkpoint_height",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"timestamp",kind:"message",T:()=>W},{no:6,name:"lowest_available_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"lowest_available_checkpoint_objects",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"server",kind:"scalar",opt:!0,T:9}])}};const Ts=new gs;var hs=class extends o{constructor(){super("sui.rpc.v2.GetObjectRequest",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"read_mask",kind:"message",T:()=>R}])}};const Je=new hs;var ks=class extends o{constructor(){super("sui.rpc.v2.GetObjectResponse",[{no:1,name:"object",kind:"message",T:()=>z}])}};const vs=new ks;var ys=class extends o{constructor(){super("sui.rpc.v2.BatchGetObjectsRequest",[{no:1,name:"requests",kind:"message",repeat:2,T:()=>Je},{no:2,name:"read_mask",kind:"message",T:()=>R}])}};const fs=new ys;var _s=class extends o{constructor(){super("sui.rpc.v2.BatchGetObjectsResponse",[{no:1,name:"objects",kind:"message",repeat:2,T:()=>ws}])}};const bs=new _s;var Es=class extends o{constructor(){super("sui.rpc.v2.GetObjectResult",[{no:1,name:"object",kind:"message",oneof:"result",T:()=>z},{no:2,name:"error",kind:"message",oneof:"result",T:()=>We}])}};const ws=new Es;var Ss=class extends o{constructor(){super("sui.rpc.v2.GetTransactionRequest",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"read_mask",kind:"message",T:()=>R}])}};const Ns=new Ss;var Os=class extends o{constructor(){super("sui.rpc.v2.GetTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>Z}])}};const Rs=new Os;var Ls=class extends o{constructor(){super("sui.rpc.v2.BatchGetTransactionsRequest",[{no:1,name:"digests",kind:"scalar",repeat:2,T:9},{no:2,name:"read_mask",kind:"message",T:()=>R}])}};const xs=new Ls;var As=class extends o{constructor(){super("sui.rpc.v2.BatchGetTransactionsResponse",[{no:1,name:"transactions",kind:"message",repeat:2,T:()=>Cs}])}};const Is=new As;var Ds=class extends o{constructor(){super("sui.rpc.v2.GetTransactionResult",[{no:1,name:"transaction",kind:"message",oneof:"result",T:()=>Z},{no:2,name:"error",kind:"message",oneof:"result",T:()=>We}])}};const Cs=new Ds;var js=class extends o{constructor(){super("sui.rpc.v2.GetCheckpointRequest",[{no:1,name:"sequence_number",kind:"scalar",oneof:"checkpointId",T:4,L:0},{no:2,name:"digest",kind:"scalar",oneof:"checkpointId",T:9},{no:3,name:"read_mask",kind:"message",T:()=>R}])}};const Ps=new js;var Us=class extends o{constructor(){super("sui.rpc.v2.GetCheckpointResponse",[{no:1,name:"checkpoint",kind:"message",T:()=>Ke}])}};const Ms=new Us;var Gs=class extends o{constructor(){super("sui.rpc.v2.GetEpochRequest",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"read_mask",kind:"message",T:()=>R}])}};const Bs=new Gs;var $s=class extends o{constructor(){super("sui.rpc.v2.GetEpochResponse",[{no:1,name:"epoch",kind:"message",T:()=>zn}])}};const qs=new $s,oe=new D("sui.rpc.v2.LedgerService",[{name:"GetServiceInfo",options:{},I:ms,O:Ts},{name:"GetObject",options:{},I:Je,O:vs},{name:"BatchGetObjects",options:{},I:fs,O:bs},{name:"GetTransaction",options:{},I:Ns,O:Rs},{name:"BatchGetTransactions",options:{},I:xs,O:Is},{name:"GetCheckpoint",options:{},I:Ps,O:Ms},{name:"GetEpoch",options:{},I:Bs,O:qs}]);var Vs=class{constructor(e){this._transport=e,this.typeName=oe.typeName,this.methods=oe.methods,this.options=oe.options}getServiceInfo(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getObject(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}batchGetObjects(e,t){const n=this.methods[2],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getTransaction(e,t){const n=this.methods[3],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}batchGetTransactions(e,t){const n=this.methods[4],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getCheckpoint(e,t){const n=this.methods[5],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getEpoch(e,t){const n=this.methods[6],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}},Fs=class extends o{constructor(){super("sui.rpc.v2.GetPackageRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9}])}};const Ks=new Fs;var Ws=class extends o{constructor(){super("sui.rpc.v2.GetPackageResponse",[{no:1,name:"package",kind:"message",T:()=>kt}])}};const Js=new Ws;var Hs=class extends o{constructor(){super("sui.rpc.v2.GetDatatypeRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module_name",kind:"scalar",opt:!0,T:9},{no:3,name:"name",kind:"scalar",opt:!0,T:9}])}};const zs=new Hs;var Zs=class extends o{constructor(){super("sui.rpc.v2.GetDatatypeResponse",[{no:1,name:"datatype",kind:"message",T:()=>vt}])}};const Ys=new Zs;var Xs=class extends o{constructor(){super("sui.rpc.v2.GetFunctionRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module_name",kind:"scalar",opt:!0,T:9},{no:3,name:"name",kind:"scalar",opt:!0,T:9}])}};const Qs=new Xs;var er=class extends o{constructor(){super("sui.rpc.v2.GetFunctionResponse",[{no:1,name:"function",kind:"message",T:()=>yt}])}};const tr=new er;var nr=class extends o{constructor(){super("sui.rpc.v2.ListPackageVersionsRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12}])}};const sr=new nr;var rr=class extends o{constructor(){super("sui.rpc.v2.ListPackageVersionsResponse",[{no:1,name:"versions",kind:"message",repeat:2,T:()=>ir},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const ar=new rr;var or=class extends o{constructor(){super("sui.rpc.v2.PackageVersion",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}};const ir=new or,ie=new D("sui.rpc.v2.MovePackageService",[{name:"GetPackage",options:{},I:Ks,O:Js},{name:"GetDatatype",options:{},I:zs,O:Ys},{name:"GetFunction",options:{},I:Qs,O:tr},{name:"ListPackageVersions",options:{},I:sr,O:ar}]);var cr=class{constructor(e){this._transport=e,this.typeName=ie.typeName,this.methods=ie.methods,this.options=ie.options}getPackage(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getDatatype(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getFunction(e,t){const n=this.methods[2],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}listPackageVersions(e,t){const n=this.methods[3],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}},ur=class extends o{constructor(){super("sui.rpc.v2.VerifySignatureRequest",[{no:1,name:"message",kind:"message",T:()=>A},{no:2,name:"signature",kind:"message",T:()=>te},{no:3,name:"address",kind:"scalar",opt:!0,T:9},{no:4,name:"jwks",kind:"message",repeat:2,T:()=>ft}])}};const pr=new ur;var dr=class extends o{constructor(){super("sui.rpc.v2.VerifySignatureResponse",[{no:1,name:"is_valid",kind:"scalar",opt:!0,T:8},{no:2,name:"reason",kind:"scalar",opt:!0,T:9}])}};const lr=new dr,ce=new D("sui.rpc.v2.SignatureVerificationService",[{name:"VerifySignature",options:{},I:pr,O:lr}]);var mr=class{constructor(e){this._transport=e,this.typeName=ce.typeName,this.methods=ce.methods,this.options=ce.options}verifySignature(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}};let gr=(function(e){return e[e.METADATA_CAP_STATE_UNKNOWN=0]="METADATA_CAP_STATE_UNKNOWN",e[e.CLAIMED=1]="CLAIMED",e[e.UNCLAIMED=2]="UNCLAIMED",e[e.DELETED=3]="DELETED",e})({}),Tr=(function(e){return e[e.SUPPLY_STATE_UNKNOWN=0]="SUPPLY_STATE_UNKNOWN",e[e.FIXED=1]="FIXED",e[e.BURN_ONLY=2]="BURN_ONLY",e})({}),hr=(function(e){return e[e.COIN_REGULATED_STATE_UNKNOWN=0]="COIN_REGULATED_STATE_UNKNOWN",e[e.REGULATED=1]="REGULATED",e[e.UNREGULATED=2]="UNREGULATED",e})({}),He=(function(e){return e[e.DYNAMIC_FIELD_KIND_UNKNOWN=0]="DYNAMIC_FIELD_KIND_UNKNOWN",e[e.FIELD=1]="FIELD",e[e.OBJECT=2]="OBJECT",e})({});var kr=class extends o{constructor(){super("sui.rpc.v2.GetCoinInfoRequest",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9}])}};const vr=new kr;var yr=class extends o{constructor(){super("sui.rpc.v2.GetCoinInfoResponse",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:2,name:"metadata",kind:"message",T:()=>br},{no:3,name:"treasury",kind:"message",T:()=>wr},{no:4,name:"regulated_metadata",kind:"message",T:()=>Nr}])}};const fr=new yr;var _r=class extends o{constructor(){super("sui.rpc.v2.CoinMetadata",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"decimals",kind:"scalar",opt:!0,T:13},{no:3,name:"name",kind:"scalar",opt:!0,T:9},{no:4,name:"symbol",kind:"scalar",opt:!0,T:9},{no:5,name:"description",kind:"scalar",opt:!0,T:9},{no:6,name:"icon_url",kind:"scalar",opt:!0,T:9},{no:7,name:"metadata_cap_id",kind:"scalar",opt:!0,T:9},{no:8,name:"metadata_cap_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CoinMetadata.MetadataCapState",gr]}])}};const br=new _r;var Er=class extends o{constructor(){super("sui.rpc.v2.CoinTreasury",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"total_supply",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"supply_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CoinTreasury.SupplyState",Tr]}])}};const wr=new Er;var Sr=class extends o{constructor(){super("sui.rpc.v2.RegulatedCoinMetadata",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_metadata_object",kind:"scalar",opt:!0,T:9},{no:3,name:"deny_cap_object",kind:"scalar",opt:!0,T:9},{no:4,name:"allow_global_pause",kind:"scalar",opt:!0,T:8},{no:5,name:"variant",kind:"scalar",opt:!0,T:13},{no:6,name:"coin_regulated_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.RegulatedCoinMetadata.CoinRegulatedState",hr]}])}};const Nr=new Sr;var Or=class extends o{constructor(){super("sui.rpc.v2.GetBalanceRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9}])}};const Rr=new Or;var Lr=class extends o{constructor(){super("sui.rpc.v2.GetBalanceResponse",[{no:1,name:"balance",kind:"message",T:()=>ze}])}};const xr=new Lr;var Ar=class extends o{constructor(){super("sui.rpc.v2.ListBalancesRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12}])}};const Ir=new Ar;var Dr=class extends o{constructor(){super("sui.rpc.v2.ListBalancesResponse",[{no:1,name:"balances",kind:"message",repeat:2,T:()=>ze},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const Cr=new Dr;var jr=class extends o{constructor(){super("sui.rpc.v2.Balance",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:3,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"address_balance",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"coin_balance",kind:"scalar",opt:!0,T:4,L:0}])}};const ze=new jr;var Pr=class extends o{constructor(){super("sui.rpc.v2.ListDynamicFieldsRequest",[{no:1,name:"parent",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12},{no:4,name:"read_mask",kind:"message",T:()=>R}])}};const Ur=new Pr;var Mr=class extends o{constructor(){super("sui.rpc.v2.ListDynamicFieldsResponse",[{no:1,name:"dynamic_fields",kind:"message",repeat:2,T:()=>$r},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const Gr=new Mr;var Br=class extends o{constructor(){super("sui.rpc.v2.DynamicField",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.DynamicField.DynamicFieldKind",He]},{no:2,name:"parent",kind:"scalar",opt:!0,T:9},{no:3,name:"field_id",kind:"scalar",opt:!0,T:9},{no:4,name:"field_object",kind:"message",T:()=>z},{no:5,name:"name",kind:"message",T:()=>A},{no:6,name:"value",kind:"message",T:()=>A},{no:7,name:"value_type",kind:"scalar",opt:!0,T:9},{no:8,name:"child_id",kind:"scalar",opt:!0,T:9},{no:9,name:"child_object",kind:"message",T:()=>z}])}};const $r=new Br;var qr=class extends o{constructor(){super("sui.rpc.v2.ListOwnedObjectsRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12},{no:4,name:"read_mask",kind:"message",T:()=>R},{no:5,name:"object_type",kind:"scalar",opt:!0,T:9}])}};const Vr=new qr;var Fr=class extends o{constructor(){super("sui.rpc.v2.ListOwnedObjectsResponse",[{no:1,name:"objects",kind:"message",repeat:2,T:()=>z},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const Kr=new Fr,ue=new D("sui.rpc.v2.StateService",[{name:"ListDynamicFields",options:{},I:Ur,O:Gr},{name:"ListOwnedObjects",options:{},I:Vr,O:Kr},{name:"GetCoinInfo",options:{},I:vr,O:fr},{name:"GetBalance",options:{},I:Rr,O:xr},{name:"ListBalances",options:{},I:Ir,O:Cr}]);var Wr=class{constructor(e){this._transport=e,this.typeName=ue.typeName,this.methods=ue.methods,this.options=ue.options}listDynamicFields(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}listOwnedObjects(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getCoinInfo(e,t){const n=this.methods[2],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getBalance(e,t){const n=this.methods[3],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}listBalances(e,t){const n=this.methods[4],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}},Jr=class extends o{constructor(){super("sui.rpc.v2.SubscribeCheckpointsRequest",[{no:1,name:"read_mask",kind:"message",T:()=>R}])}};const Hr=new Jr;var zr=class extends o{constructor(){super("sui.rpc.v2.SubscribeCheckpointsResponse",[{no:1,name:"cursor",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"checkpoint",kind:"message",T:()=>Ke}])}};const Zr=new zr,pe=new D("sui.rpc.v2.SubscriptionService",[{name:"SubscribeCheckpoints",serverStreaming:!0,options:{},I:Hr,O:Zr}]);var Yr=class{constructor(e){this._transport=e,this.typeName=pe.typeName,this.methods=pe.methods,this.options=pe.options}subscribeCheckpoints(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("serverStreaming",this._transport,n,s,e)}},Xr=class extends o{constructor(){super("sui.rpc.v2.LookupNameRequest",[{no:1,name:"name",kind:"scalar",opt:!0,T:9}])}};const Qr=new Xr;var ea=class extends o{constructor(){super("sui.rpc.v2.LookupNameResponse",[{no:1,name:"record",kind:"message",T:()=>Ze}])}};const ta=new ea;var na=class extends o{constructor(){super("sui.rpc.v2.ReverseLookupNameRequest",[{no:1,name:"address",kind:"scalar",opt:!0,T:9}])}};const sa=new na;var ra=class extends o{constructor(){super("sui.rpc.v2.ReverseLookupNameResponse",[{no:1,name:"record",kind:"message",T:()=>Ze}])}};const aa=new ra;var oa=class extends o{constructor(){super("sui.rpc.v2.NameRecord",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"name",kind:"scalar",opt:!0,T:9},{no:3,name:"registration_nft_id",kind:"scalar",opt:!0,T:9},{no:4,name:"expiration_timestamp",kind:"message",T:()=>W},{no:5,name:"target_address",kind:"scalar",opt:!0,T:9},{no:6,name:"data",kind:"map",K:9,V:{kind:"scalar",T:9}}])}};const Ze=new oa,de=new D("sui.rpc.v2.NameService",[{name:"LookupName",options:{},I:Qr,O:ta},{name:"ReverseLookupName",options:{},I:sa,O:aa}]);var ia=class{constructor(e){this._transport=e,this.typeName=de.typeName,this.methods=de.methods,this.options=de.options}lookupName(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}reverseLookupName(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}},ca=class extends o{constructor(){super("sui.forking.v1alpha.AdvanceClockRequest",[{no:1,name:"duration_ms",kind:"scalar",opt:!0,T:4,L:0}])}};const ua=new ca;var pa=class extends o{constructor(){super("sui.forking.v1alpha.AdvanceClockResponse",[{no:1,name:"timestamp_ms",kind:"scalar",T:4,L:0},{no:2,name:"tx_digest",kind:"scalar",T:9}])}};const da=new pa;var la=class extends o{constructor(){super("sui.forking.v1alpha.AdvanceCheckpointRequest",[])}};const ma=new la;var ga=class extends o{constructor(){super("sui.forking.v1alpha.AdvanceCheckpointResponse",[{no:1,name:"checkpoint_sequence_number",kind:"scalar",T:4,L:0},{no:2,name:"timestamp_ms",kind:"scalar",T:4,L:0}])}};const Ta=new ga;var ha=class extends o{constructor(){super("sui.forking.v1alpha.GetStatusRequest",[])}};const ka=new ha;var va=class extends o{constructor(){super("sui.forking.v1alpha.GetStatusResponse",[{no:1,name:"epoch",kind:"scalar",T:4,L:0},{no:2,name:"checkpoint_sequence_number",kind:"scalar",T:4,L:0},{no:3,name:"timestamp_ms",kind:"scalar",T:4,L:0},{no:4,name:"forked_at_checkpoint",kind:"scalar",T:4,L:0}])}};const ya=new va,le=new D("sui.forking.v1alpha.ForkingService",[{name:"AdvanceClock",options:{},I:ua,O:da},{name:"AdvanceCheckpoint",options:{},I:ma,O:Ta},{name:"GetStatus",options:{},I:ka,O:ya}]);var fa=class{constructor(e){this._transport=e,this.typeName=le.typeName,this.methods=le.methods,this.options=le.options}advanceClock(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}advanceCheckpoint(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}getStatus(e,t){const n=this.methods[2],s=this._transport.mergeOptions(t);return k("unary",this._transport,n,s,e)}},c;(function(e){e[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS"})(c||(c={}));var _a=function(e,t,n,s){function r(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function d(l){try{u(s.next(l))}catch(m){i(m)}}function p(l){try{u(s.throw(l))}catch(m){i(m)}}function u(l){l.done?a(l.value):r(l.value).then(d,p)}u((s=s.apply(e,t||[])).next())})};function Ae(e,t,n,s,r){if(s)for(let[a,i]of Object.entries(s))if(typeof i=="string")e.append(a,i);else for(let d of i)e.append(a,d);if(e.set("Content-Type",t==="text"?"application/grpc-web-text":"application/grpc-web+proto"),t=="text"&&e.set("Accept","application/grpc-web-text"),e.set("X-Grpc-Web","1"),typeof n=="number"){if(n<=0)throw new h(`timeout ${n} ms exceeded`,c[c.DEADLINE_EXCEEDED]);e.set("grpc-timeout",`${n}m`)}else if(n){const a=n.getTime(),i=Date.now();if(a<=i)throw new h(`deadline ${n} exceeded`,c[c.DEADLINE_EXCEEDED]);e.set("grpc-timeout",`${a-i}m`)}return e}function Ie(e,t){let n=new Uint8Array(5+e.length);n[0]=O.DATA;for(let s=e.length,r=4;r>0;r--)n[r]=s%256,s>>>=8;return n.set(e,5),t==="binary"?n:_t(n)}function he(e,t,n){if(arguments.length===1){let p=e,u;try{u=p.type}catch{}switch(u){case"error":case"opaque":case"opaqueredirect":throw new h(`fetch response type ${p.type}`,c[c.UNKNOWN])}return he(Sa(p.headers),p.status,p.statusText)}let s=e,r=t>=200&&t<300,a=Xe(s),[i,d]=Ye(s);return(i===void 0||i===c.OK)&&!r&&(i=Na(t),d=n),[i,d,a]}function De(e){let t=wa(e),[n,s]=Ye(t),r=Xe(t);return[n??c.OK,s,r]}var O;(function(e){e[e.DATA=0]="DATA",e[e.TRAILER=128]="TRAILER"})(O||(O={}));function Ce(e,t,n){return _a(this,void 0,void 0,function*(){let s,r="",a=new Uint8Array(0),i=Ea(t);if(ba(e)){let d=e.getReader();s={next:()=>d.read()}}else s=e[Symbol.asyncIterator]();for(;;){let d=yield s.next();if(d.value!==void 0){if(i==="text"){for(let u=0;u<d.value.length;u++)r+=String.fromCharCode(d.value[u]);let p=r.length-r.length%4;if(p===0)continue;a=je(a,bt(r.substring(0,p))),r=r.substring(p)}else a=je(a,d.value);for(;a.length>=5&&a[0]===O.DATA;){let p=0;for(let u=1;u<5;u++)p=(p<<8)+a[u];if(a.length-5>=p)n(O.DATA,a.subarray(5,5+p)),a=a.subarray(5+p);else break}}if(d.done){if(a.length===0)break;if(a[0]!==O.TRAILER||a.length<5)throw new h("premature EOF",c[c.DATA_LOSS]);n(O.TRAILER,a.subarray(5));break}}})}const ba=e=>typeof e.getReader=="function";function je(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Ea(e){switch(e){case"application/grpc-web-text":case"application/grpc-web-text+proto":return"text";case"application/grpc-web":case"application/grpc-web+proto":return"binary";case void 0:case null:throw new h("missing response content type",c[c.INTERNAL]);default:throw new h("unexpected response content type: "+e,c[c.INTERNAL])}}function Ye(e){let t,n,s=e["grpc-message"];if(s!==void 0){if(Array.isArray(s))return[c.INTERNAL,"invalid grpc-web message"];n=s}let r=e["grpc-status"];if(r!==void 0){if(Array.isArray(r))return[c.INTERNAL,"invalid grpc-web status"];if(t=parseInt(r,10),c[t]===void 0)return[c.INTERNAL,"invalid grpc-web status"]}return[t,n]}function Xe(e){let t={};for(let[n,s]of Object.entries(e))switch(n){case"grpc-message":case"grpc-status":case"content-type":break;default:t[n]=s}return t}function wa(e){let t={};for(let n of String.fromCharCode.apply(String,e).trim().split(`\r
|
|
3
|
+
`)){if(n=="")continue;let[s,...r]=n.split(":");const a=r.join(":").trim();s=s.trim();let i=t[s];typeof i=="string"?t[s]=[i,a]:Array.isArray(i)?i.push(a):t[s]=a}return t}function Sa(e){let t={};return e.forEach((n,s)=>{let r=t[s];typeof r=="string"?t[s]=[r,n]:Array.isArray(r)?r.push(n):t[s]=n}),t}function Na(e){switch(e){case 200:return c.OK;case 400:return c.INVALID_ARGUMENT;case 401:return c.UNAUTHENTICATED;case 403:return c.PERMISSION_DENIED;case 404:return c.NOT_FOUND;case 409:return c.ABORTED;case 412:return c.FAILED_PRECONDITION;case 429:return c.RESOURCE_EXHAUSTED;case 499:return c.CANCELLED;case 500:return c.UNKNOWN;case 501:return c.UNIMPLEMENTED;case 503:return c.UNAVAILABLE;case 504:return c.DEADLINE_EXCEEDED;default:return c.UNKNOWN}}class Oa{constructor(t){this.defaultOptions=t}mergeOptions(t){return on(this.defaultOptions,t)}makeUrl(t,n){let s=n.baseUrl;return s.endsWith("/")&&(s=s.substring(0,s.length-1)),`${s}/${t.service.typeName}/${t.name}`}clientStreaming(t){const n=new h("Client streaming is not supported by grpc-web",c[c.UNIMPLEMENTED]);throw n.methodName=t.name,n.serviceName=t.service.typeName,n}duplex(t){const n=new h("Duplex streaming is not supported by grpc-web",c[c.UNIMPLEMENTED]);throw n.methodName=t.name,n.serviceName=t.service.typeName,n}serverStreaming(t,n,s){var r,a,i,d,p;let u=s,l=(r=u.format)!==null&&r!==void 0?r:"text",m=(a=u.fetch)!==null&&a!==void 0?a:globalThis.fetch,f=(i=u.fetchInit)!==null&&i!==void 0?i:{},S=this.makeUrl(t,u),C=t.I.toBinary(n,u.binaryOptions),j=new I,N=new cn,V=!0,y,P=new I,L,U=new I;return m(S,Object.assign(Object.assign({},f),{method:"POST",headers:Ae(new globalThis.Headers,l,u.timeout,u.meta),body:Ie(C,l),signal:(d=s.abort)!==null&&d!==void 0?d:null})).then(T=>{let[g,v,_]=he(T);if(j.resolve(_),g!=null&&g!==c.OK)throw new h(v??c[g],c[g],_);return g!=null&&(y={code:c[g],detail:v??c[g]}),T}).then(T=>{if(!T.body)throw new h("missing response body",c[c.INTERNAL]);return Ce(T.body,T.headers.get("content-type"),(g,v)=>{switch(g){case O.DATA:N.notifyMessage(t.O.fromBinary(v,u.binaryOptions)),V=!1;break;case O.TRAILER:let _,x;[_,x,L]=De(v),y={code:c[_],detail:x??c[_]};break}})}).then(()=>{if(!L&&!V)throw new h("missing trailers",c[c.DATA_LOSS]);if(!y)throw new h("missing status",c[c.INTERNAL]);if(y.code!=="OK")throw new h(y.detail,y.code,L);N.notifyComplete(),P.resolve(y),U.resolve(L||{})}).catch(T=>{let g;T instanceof h?g=T:T instanceof Error&&T.name==="AbortError"?g=new h(T.message,c[c.CANCELLED]):g=new h(T instanceof Error?T.message:""+T,c[c.INTERNAL]),g.methodName=t.name,g.serviceName=t.service.typeName,j.rejectPending(g),N.notifyError(g),P.rejectPending(g),U.rejectPending(g)}),new ln(t,(p=u.meta)!==null&&p!==void 0?p:{},n,j.promise,N,P.promise,U.promise)}unary(t,n,s){var r,a,i,d,p;let u=s,l=(r=u.format)!==null&&r!==void 0?r:"text",m=(a=u.fetch)!==null&&a!==void 0?a:globalThis.fetch,f=(i=u.fetchInit)!==null&&i!==void 0?i:{},S=this.makeUrl(t,u),C=t.I.toBinary(n,u.binaryOptions),j=new I,N,V=new I,y,P=new I,L,U=new I;return m(S,Object.assign(Object.assign({},f),{method:"POST",headers:Ae(new globalThis.Headers,l,u.timeout,u.meta),body:Ie(C,l),signal:(d=s.abort)!==null&&d!==void 0?d:null})).then(T=>{let[g,v,_]=he(T);if(j.resolve(_),g!=null&&g!==c.OK)throw new h(v??c[g],c[g],_);return g!=null&&(y={code:c[g],detail:v??c[g]}),T}).then(T=>{if(!T.body)throw new h("missing response body",c[c.INTERNAL]);return Ce(T.body,T.headers.get("content-type"),(g,v)=>{switch(g){case O.DATA:if(N)throw new h("unary call received 2nd message",c[c.DATA_LOSS]);N=t.O.fromBinary(v,u.binaryOptions);break;case O.TRAILER:let _,x;[_,x,L]=De(v),y={code:c[_],detail:x??c[_]};break}})}).then(()=>{if(!L&&N)throw new h("missing trailers",c[c.DATA_LOSS]);if(!y)throw new h("missing status",c[c.INTERNAL]);if(!N&&y.code==="OK")throw new h("expected error status",c[c.DATA_LOSS]);if(!N)throw new h(y.detail,y.code,L);if(V.resolve(N),y.code!=="OK")throw new h(y.detail,y.code,L);P.resolve(y),U.resolve(L||{})}).catch(T=>{let g;T instanceof h?g=T:T instanceof Error&&T.name==="AbortError"?g=new h(T.message,c[c.CANCELLED]):g=new h(T instanceof Error?T.message:""+T,c[c.INTERNAL]),g.methodName=t.name,g.serviceName=t.service.typeName,j.rejectPending(g),V.rejectPending(g),P.rejectPending(g),U.rejectPending(g)}),new pn(t,(p=u.meta)!==null&&p!==void 0?p:{},n,j.promise,V.promise,P.promise,U.promise)}}const Ra=Symbol.for("@mysten/SuiGrpcClient");var xa=class extends Et{get mvr(){return this.core.mvr}get[Ra](){return!0}constructor(e){super({network:e.network});const t=e.transport??new Oa({baseUrl:e.baseUrl,fetchInit:e.fetchInit});this.transactionExecutionService=new Rn(t),this.ledgerService=new Vs(t),this.stateService=new Wr(t),this.subscriptionService=new Yr(t),this.movePackageService=new cr(t),this.signatureVerificationService=new mr(t),this.nameService=new ia(t),this.forkingService=new fa(t),this.core=new wn({client:this,base:this,network:e.network,mvr:e.mvr})}getObjects(e){return this.core.getObjects(e)}getObject(e){return this.core.getObject(e)}listCoins(e){return this.core.listCoins(e)}listOwnedObjects(e){return this.core.listOwnedObjects(e)}getBalance(e){return this.core.getBalance(e)}listBalances(e){return this.core.listBalances(e)}getCoinMetadata(e){return this.core.getCoinMetadata(e)}getTransaction(e){return this.core.getTransaction(e)}executeTransaction(e){return this.core.executeTransaction(e)}signAndExecuteTransaction(e){return this.core.signAndExecuteTransaction(e)}waitForTransaction(e){return this.core.waitForTransaction(e)}simulateTransaction(e){return this.core.simulateTransaction(e)}getReferenceGasPrice(){return this.core.getReferenceGasPrice()}async listDynamicFields(e){const t=e.include?.value??!1,n=["field_id","name","value_type","kind","child_id"];t&&n.push("value");const s=await this.stateService.listDynamicFields({parent:e.parentId,pageToken:e.cursor?B(e.cursor):void 0,pageSize:e.limit,readMask:{paths:n}});return{dynamicFields:s.response.dynamicFields.map(r=>{const a=r.kind===He.OBJECT,i=a?`0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${r.name?.name}>,0x2::object::ID>`:`0x2::dynamic_field::Field<${r.name?.name},${r.valueType}>`;return{$kind:a?"DynamicObject":"DynamicField",fieldId:r.fieldId,name:{type:r.name?.name,bcs:r.name?.value},valueType:r.valueType,type:Ge(i),childId:r.childId,value:t?{type:r.valueType,bcs:r.value?.value??new Uint8Array}:void 0}}),cursor:s.response.nextPageToken?K(s.response.nextPageToken):null,hasNextPage:s.response.nextPageToken!==void 0}}getDynamicField(e){return this.core.getDynamicField(e)}getMoveFunction(e){return this.core.getMoveFunction(e)}resolveTransactionPlugin(){return this.core.resolveTransactionPlugin()}verifyZkLoginSignature(e){return this.core.verifyZkLoginSignature(e)}defaultNameServiceName(e){return this.core.defaultNameServiceName(e)}};export{wn as GrpcCoreClient,Oa as GrpcWebFetchTransport,xa as SuiGrpcClient};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--font-weight-medium:500;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--bg-base:#07080b;--bg-canvas:#0a0c11;--bg-panel:#0f1219;--bg-elev:#161a24;--bg-elev-2:#1d2230;--bg-hover:#ffffff0a;--bg-active:#ffffff12;--line:#ffffff12;--line-strong:#ffffff21;--line-faint:#ffffff0a;--tx-hi:#e8ebf2;--tx-mid:#9aa4b6;--tx-lo:#616b7d;--tx-dim:#424b5b;--accent:#34d8c4;--accent-ink:#04201c;--accent-soft:color-mix(in oklab, var(--accent) 14%, transparent);--accent-line:color-mix(in oklab, var(--accent) 38%, transparent);--accent-glow:color-mix(in oklab, var(--accent) 30%, transparent);--c-green:#45d483;--c-yellow:#f6c454;--c-red:#fb6f84;--c-cyan:#46baf5;--c-magenta:#df7aef;--c-blue:#8893f6;--c-white:#c6cfde;--viz-1:#34d8c4;--viz-2:#6fa8ff;--viz-3:#c08cff;--viz-4:#f6a94b;--viz-5:#4ade80;--viz-6:#f472b6;--viz-grid:#ffffff0f;--glow-green:color-mix(in oklab, var(--c-green) 55%, transparent);--glow-yellow:color-mix(in oklab, var(--c-yellow) 55%, transparent);--glow-red:color-mix(in oklab, var(--c-red) 55%, transparent);--glow-cyan:color-mix(in oklab, var(--c-cyan) 55%, transparent);--r-xs:4px;--r-sm:6px;--r-md:9px;--r-lg:13px;--r-xl:18px;--sh-1:0 1px 2px #0006;--sh-2:0 6px 22px -8px #000000a6;--sh-3:0 24px 64px -16px #000000bf;--sh-pop:0 18px 50px -12px #000c, 0 0 0 1px var(--line-strong);--d:1;--row-h:calc(34px * var(--d));--pad-cell:calc(9px * var(--d)) calc(13px * var(--d));--gap:calc(14px * var(--d));--pad-panel:calc(18px * var(--d));--font-ui:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--nav-w:232px;--nav-w-collapsed:60px;--header-h:56px;--drawer-h:280px;color-scheme:dark}[data-theme=light]{--bg-base:#eef0f4;--bg-canvas:#f5f6f9;--bg-panel:#fff;--bg-elev:#fff;--bg-elev-2:#f3f5f9;--bg-hover:#0a0e1809;--bg-active:#0a0e180f;--line:#0c12201a;--line-strong:#0c12202b;--line-faint:#0c12200e;--tx-hi:#11151d;--tx-mid:#515b6c;--tx-lo:#7c8595;--tx-dim:#aab2c0;--accent-ink:#fff;--c-green:#18a05a;--c-yellow:#b3791a;--c-red:#d83a52;--c-cyan:#1583cf;--c-magenta:#b13fc9;--c-blue:#4a57d6;--c-white:#4a5466;--viz-1:#11998e;--viz-2:#2f6fe0;--viz-3:#8b46d4;--viz-4:#c77a18;--viz-5:#1f9d57;--viz-6:#d3447f;--viz-grid:#0c122012;--sh-1:0 1px 2px #0f172a14;--sh-2:0 6px 22px -10px #0f172a33;--sh-3:0 24px 64px -18px #0f172a47;--sh-pop:0 18px 50px -14px #0f172a4d, 0 0 0 1px var(--line-strong);color-scheme:light}html,body{height:100%;margin:0}body{background:var(--bg-base);color:var(--tx-hi);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01","cv01";font-size:14px;line-height:1.45;overflow:hidden}#root{height:100%}::selection{background:var(--accent-soft);color:var(--tx-hi)}h1,h2,h3,h4{letter-spacing:-.012em;margin:0;font-weight:560}button{cursor:pointer;font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--tx-dim);background-clip:padding-box}::-webkit-scrollbar-track{background:0 0}}@layer components{.atmos{z-index:0;pointer-events:none;background:radial-gradient(900px 600px at 78% -8%,var(--accent-soft),transparent 60%),linear-gradient(var(--line-faint) 1px,transparent 1px) 0 0 / 100% 34px,linear-gradient(90deg,var(--line-faint) 1px,transparent 1px) 0 0 / 34px 100%;opacity:.6;position:fixed;inset:0;-webkit-mask-image:radial-gradient(120% 100% at 50% 0,#000 38%,#0000 92%);mask-image:radial-gradient(120% 100% at 50% 0,#000 38%,#0000 92%)}.panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.panel-pad{padding:var(--pad-panel)}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--tx-lo);font-size:10.5px;font-weight:600}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot-green{background:var(--c-green);box-shadow:0 0 8px var(--glow-green)}.dot-yellow{background:var(--c-yellow);box-shadow:0 0 8px var(--glow-yellow)}.dot-red{background:var(--c-red);box-shadow:0 0 8px var(--glow-red)}.dot-cyan{background:var(--c-cyan);box-shadow:0 0 8px var(--glow-cyan)}.dot-magenta{background:var(--c-magenta)}.dot-blue{background:var(--c-blue)}.dot-white{background:var(--c-white)}.dot-dim{background:var(--tx-dim)}.dot-pulse{animation:1.4s ease-in-out infinite pulse-dot}.badge{border:1px solid var(--line-strong);height:22px;color:var(--tx-mid);background:var(--bg-elev);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:11.5px;font-weight:540;line-height:1;display:inline-flex}.badge .dot{width:7px;height:7px}.chip{border-radius:var(--r-sm);height:24px;font-family:var(--font-mono);background:var(--bg-elev);border:1px solid var(--line);color:var(--tx-mid);cursor:pointer;align-items:center;gap:7px;max-width:100%;padding:0 8px;font-size:12px;transition:all .12s;display:inline-flex}.chip:hover{border-color:var(--accent-line);color:var(--tx-hi);background:var(--bg-elev-2)}.chip .copy-ic{opacity:0;transition:all .12s}.chip:hover .copy-ic{opacity:.7}.btn{border-radius:var(--r-sm);white-space:nowrap;border:1px solid var(--line-strong);background:var(--bg-elev);height:32px;color:var(--tx-hi);justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:530;transition:all .12s;display:inline-flex}.btn:hover{background:var(--bg-elev-2);border-color:var(--tx-dim)}.btn:active{transform:translateY(.5px)}.btn-sm{height:27px;padding:0 10px;font-size:12px}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}.btn-primary:hover{background:color-mix(in oklab,var(--accent) 88%,white)}.btn-danger{color:var(--c-red);border-color:color-mix(in oklab,var(--c-red) 35%,var(--line-strong))}.btn-danger:hover{background:color-mix(in oklab,var(--c-red) 12%,transparent);border-color:var(--c-red)}.btn-ghost{color:var(--tx-mid);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-hover);color:var(--tx-hi)}.btn[disabled]{opacity:.4;pointer-events:none}.btn .ic{width:15px;height:15px}.iconbtn{border-radius:var(--r-sm);width:30px;height:30px;color:var(--tx-mid);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.iconbtn:hover{background:var(--bg-hover);color:var(--tx-hi)}.iconbtn .ic{width:16px;height:16px}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl thead th{z-index:1;text-align:left;padding:var(--pad-cell);letter-spacing:.08em;text-transform:uppercase;color:var(--tx-lo);background:var(--bg-panel);border-bottom:1px solid var(--line);white-space:nowrap;cursor:default;font-size:10.5px;font-weight:600;position:sticky;top:0}.tbl tbody td{padding:var(--pad-cell);border-bottom:1px solid var(--line-faint);vertical-align:middle}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover{background:var(--bg-hover)}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr:last-child td{border-bottom:none}kbd{font-family:var(--font-mono);background:var(--bg-elev-2);border:1px solid var(--line-strong);color:var(--tx-mid);border-bottom-width:2px;border-radius:5px;padding:2px 6px;font-size:11px;line-height:1}.meter{background:var(--bg-elev-2);border-radius:999px;height:5px;overflow:hidden}.meter>span{background:var(--accent);border-radius:999px;height:100%;display:block}.live-sweep{background-image:linear-gradient(90deg,transparent,var(--accent-soft),transparent);background-repeat:no-repeat;background-size:60% 100%;animation:2.6s linear infinite sweep}.fade-up{opacity:1;animation:.34s cubic-bezier(.2,.7,.3,1) both fadeUp}.overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04060a9e;place-items:center;padding:24px;animation:.16s both fadeIn;display:grid;position:fixed;inset:0}.overlay-right{justify-content:flex-end;place-items:stretch stretch;padding:0}.sheet{background:var(--bg-panel);border-left:1px solid var(--line-strong);width:440px;max-width:92vw;height:100%;box-shadow:var(--sh-3);flex-direction:column;display:flex}.fade-right{animation:.24s cubic-bezier(.2,.7,.3,1) both slideRight}.logbox{background:var(--bg-base);border:1px solid var(--line);border-radius:var(--r-md);max-height:220px;padding:10px 12px;line-height:1.65;overflow-y:auto}.logbox-full{background:var(--bg-base);border-radius:var(--r-lg);padding:8px 14px;line-height:1.7}.logline{align-items:baseline;gap:12px;padding:1.5px 0;display:flex}.logline:hover{background:var(--bg-hover)}.segmented{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-md);gap:2px;padding:3px;display:inline-flex}.seg{border-radius:var(--r-sm);height:26px;color:var(--tx-mid);background:0 0;border:none;padding:0 14px;font-size:12.5px;font-weight:530;transition:all .12s}.seg:hover{color:var(--tx-hi)}.seg-on{background:var(--bg-elev-2);color:var(--tx-hi);box-shadow:var(--sh-1)}.field{border-radius:var(--r-sm);background:var(--bg-base);border:1px solid var(--line-strong);height:36px;color:var(--tx-hi);font-size:13px;font-family:var(--font-ui);outline:none;padding:0 12px;transition:all .12s}.field:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}select.field{cursor:pointer}.activity-row{gap:10px;padding:7px 18px;transition:background .1s}.activity-row:hover{background:var(--bg-hover)}.palette{align-self:flex-start;width:600px;max-width:92vw;margin-top:12vh;animation:.18s both popIn}.palette-input{width:100%;height:52px;color:var(--tx-hi);font-size:16px;font-family:var(--font-ui);background:0 0;border:none;outline:none;padding:0 18px}.palette-item{cursor:pointer;border-radius:var(--r-sm);align-items:center;gap:11px;padding:9px 16px;display:flex}.palette-item.on{background:var(--accent-soft)}.palette-item.on .pi-arrow{opacity:1}.toast-wrap{z-index:200;flex-direction:column;gap:9px;display:flex;position:fixed;top:16px;right:16px}.toast{border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--line-strong);min-width:250px;max-width:360px;box-shadow:var(--sh-2);align-items:center;gap:10px;padding:11px 14px;animation:.24s cubic-bezier(.2,.7,.3,1) both toastIn;display:flex}.nav-item{height:37px;color:var(--tx-mid);cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:11px;width:100%;padding:0 11px;font-size:13.5px;font-weight:500;transition:all .14s;display:flex;position:relative}.nav-item .ic{color:var(--tx-lo);flex:none;transition:all .14s}.nav-item:hover{background:var(--bg-hover);color:var(--tx-hi)}.nav-item:hover .ic{color:var(--tx-mid)}.nav-item.on{background:var(--accent-soft);color:var(--tx-hi);font-weight:560}.nav-item.on .ic{color:var(--accent)}.nav-item.on:before{content:"";background:var(--accent);width:3px;box-shadow:0 0 10px var(--accent-glow);border-radius:0 3px 3px 0;position:absolute;top:9px;bottom:9px;left:-12px}.nav-badge{margin-left:auto}.row{align-items:center;display:flex}.col{flex-direction:column;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.scroll-y{overflow-y:auto}.trunc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tnum{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-feature-settings:"zero" 1}.skel{background:linear-gradient(90deg,var(--bg-elev) 25%,var(--bg-elev-2) 50%,var(--bg-elev) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite skelSweep}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.z-30{z-index:30}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.mt-\[2px\]{margin-top:2px}.mt-\[5px\]{margin-top:5px}.mb-\[18px\]{margin-bottom:18px}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.h-\[30px\]{height:30px}.max-h-\[320px\]{max-height:320px}.w-full{width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[30px\]{min-width:30px}.min-w-\[180px\]{min-width:180px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-\[5px\]{gap:5px}.gap-\[7px\]{gap:7px}.gap-\[8px\]{gap:8px}.gap-\[11px\]{gap:11px}.gap-\[14px\]{gap:14px}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[6px\]{border-radius:6px}.rounded-\[9px\]{border-radius:9px}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.bg-transparent{background-color:#0000}.p-\[6px\]{padding:6px}.px-\[6px\]{padding-inline:6px}.px-\[8px\]{padding-inline:8px}.px-\[14px\]{padding-inline:14px}.py-\[6px\]{padding-block:6px}.py-\[8px\]{padding-block:8px}.py-\[10px\]{padding-block:10px}.py-\[11px\]{padding-block:11px}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.whitespace-pre{white-space:pre}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.select-none{-webkit-user-select:none;user-select:none}.\[\&\>\*\+\*\]\:border-t>*+*{border-top-style:var(--tw-border-style);border-top-width:1px}}@theme{--font-sans: "Geist Variable", ui-sans-serif, system-ui, sans-serif; --font-mono: "Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}@keyframes sweep{0%{background-position:-120% 0}to{background-position:220% 0}}@keyframes fadeUp{0%{transform:translateY(7px)}to{transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideRight{0%{opacity:.4;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}@keyframes skelSweep{0%{background-position:200% 0}to{background-position:-200% 0}}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>devstack dashboard</title>
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-Bmi1UtAg.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Deml9drg.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodegenableDecl } from "../contracts/codegenable.mjs";
|
|
2
|
-
import { ProjectionDecl } from "../contracts/projection.mjs";
|
|
2
|
+
import { ProjectionDecl, ProjectionEvent } from "../contracts/projection.mjs";
|
|
3
3
|
import { RoutableDecl } from "../contracts/routable.mjs";
|
|
4
4
|
import { SnapshotableDecl } from "../contracts/snapshotable.mjs";
|
|
5
5
|
import { StrategyContributorDecl } from "../contracts/strategy-contributor.mjs";
|
|
@@ -12,8 +12,19 @@ declare const capability: <const Kind extends string, const Data extends Capabil
|
|
|
12
12
|
declare const defineCapability: <const Kind extends string>(kind: Kind) => <const Data extends CapabilityPayloadFor<Kind>>(data: Data & ExactCapabilityPayload<Kind, Data>) => CapabilityDecl<Kind> & Readonly<Data>;
|
|
13
13
|
declare const codegenable: <const Emitter extends string>(decl: Omit<CodegenableDecl<Emitter>, "kind">) => CodegenableDecl<Emitter>;
|
|
14
14
|
declare const snapshotable: (decl: Omit<SnapshotableDecl, "kind">) => SnapshotableDecl;
|
|
15
|
-
|
|
16
|
-
declare const
|
|
15
|
+
type RoutableDeclInput = RoutableDecl extends infer T ? T extends RoutableDecl ? Omit<T, 'kind'> : never : never;
|
|
16
|
+
declare const routable: (decl: RoutableDeclInput) => RoutableDecl;
|
|
17
|
+
/** Build a `ProjectionDecl` envelope from a `{kind, key, payload}`
|
|
18
|
+
* shorthand. Stamps `tag: 'projection.updated'` and (when `at` is
|
|
19
|
+
* omitted) the current `Date.now()`. Callers that want the projection
|
|
20
|
+
* payload's `updatedAt` field to match the envelope's `at` should pass
|
|
21
|
+
* `at` explicitly. Plugin authors should prefer this shorthand over
|
|
22
|
+
* building the full envelope by hand — the substrate reserves the
|
|
23
|
+
* right to extend the envelope shape (e.g. add cause metadata)
|
|
24
|
+
* without consumers re-spelling each emission site. */
|
|
25
|
+
declare const projection: (input: (Omit<ProjectionEvent, "tag" | "at"> & {
|
|
26
|
+
readonly at?: number;
|
|
27
|
+
}) | Omit<ProjectionDecl, "kind">) => ProjectionDecl;
|
|
17
28
|
declare const strategyContributor: <const Key extends string, Strategy>(decl: Omit<StrategyContributorDecl<Key, Strategy>, "kind">) => StrategyContributorDecl<Key, Strategy>;
|
|
18
29
|
declare const capabilitySink: <const Kind extends ContributionKind, Decl extends (Kind extends CapabilityKind ? Extract<CapabilityDecl, {
|
|
19
30
|
readonly kind: Kind;
|
|
@@ -7,7 +7,24 @@ const defineCapability = (kind) => (data) => capability(kind, data);
|
|
|
7
7
|
const codegenable = (decl) => capability("codegenable", decl);
|
|
8
8
|
const snapshotable = (decl) => capability("snapshotable", decl);
|
|
9
9
|
const routable = (decl) => capability("routable", decl);
|
|
10
|
-
|
|
10
|
+
/** Build a `ProjectionDecl` envelope from a `{kind, key, payload}`
|
|
11
|
+
* shorthand. Stamps `tag: 'projection.updated'` and (when `at` is
|
|
12
|
+
* omitted) the current `Date.now()`. Callers that want the projection
|
|
13
|
+
* payload's `updatedAt` field to match the envelope's `at` should pass
|
|
14
|
+
* `at` explicitly. Plugin authors should prefer this shorthand over
|
|
15
|
+
* building the full envelope by hand — the substrate reserves the
|
|
16
|
+
* right to extend the envelope shape (e.g. add cause metadata)
|
|
17
|
+
* without consumers re-spelling each emission site. */
|
|
18
|
+
const projection = (input) => {
|
|
19
|
+
if ("event" in input) return capability("projection", input);
|
|
20
|
+
return capability("projection", { event: {
|
|
21
|
+
tag: "projection.updated",
|
|
22
|
+
kind: input.kind,
|
|
23
|
+
key: input.key,
|
|
24
|
+
payload: input.payload,
|
|
25
|
+
at: input.at ?? Date.now()
|
|
26
|
+
} });
|
|
27
|
+
};
|
|
11
28
|
const strategyContributor = (decl) => capability("strategy-contributor", decl);
|
|
12
29
|
const capabilitySink = (kind, accept) => ({
|
|
13
30
|
kind,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-capabilities.mjs","names":[],"sources":["../../src/api/define-capabilities.ts"],"sourcesContent":["// Typed capability helpers. Plugin authors return plain capability\n// arrays from `definePlugin({ capabilities })`; these helpers add the\n// discriminant while preserving narrow payload types.\n\nimport type {\n\tCapabilityDecl,\n\tCapabilityKind,\n\tCapabilityPayloadFor,\n\tExactCapabilityPayload,\n} from '../contracts/capability-decl.ts';\nimport type { CodegenableDecl } from '../contracts/codegenable.ts';\nimport type { ProjectionDecl } from '../contracts/projection.ts';\nimport type { RoutableDecl } from '../contracts/routable.ts';\nimport type { SnapshotableDecl } from '../contracts/snapshotable.ts';\nimport type { StrategyContributorDecl } from '../contracts/strategy-contributor.ts';\nimport type {\n\tCapabilitySink,\n\tContributionKind,\n\tHarvestContext,\n} from '../substrate/runtime/capability-sinks/service.ts';\nimport type { Effect, Scope } from 'effect';\n\nexport const capability = <\n\tconst Kind extends string,\n\tconst Data extends CapabilityPayloadFor<Kind>,\n>(\n\tkind: Kind,\n\tdata: Data & ExactCapabilityPayload<Kind, Data>,\n): CapabilityDecl<Kind> & Readonly<Data> =>\n\t({\n\t\t...data,\n\t\tkind,\n\t}) as CapabilityDecl<Kind> & Readonly<Data>;\n\nexport const defineCapability =\n\t<const Kind extends string>(kind: Kind) =>\n\t<const Data extends CapabilityPayloadFor<Kind>>(\n\t\tdata: Data & ExactCapabilityPayload<Kind, Data>,\n\t) =>\n\t\tcapability<Kind, Data>(kind, data);\n\nexport const codegenable = <const Emitter extends string>(\n\tdecl: Omit<CodegenableDecl<Emitter>, 'kind'>,\n): CodegenableDecl<Emitter> => capability('codegenable', decl);\n\nexport const snapshotable = (decl: Omit<SnapshotableDecl, 'kind'>): SnapshotableDecl =>\n\tcapability('snapshotable', decl);\n\
|
|
1
|
+
{"version":3,"file":"define-capabilities.mjs","names":[],"sources":["../../src/api/define-capabilities.ts"],"sourcesContent":["// Typed capability helpers. Plugin authors return plain capability\n// arrays from `definePlugin({ capabilities })`; these helpers add the\n// discriminant while preserving narrow payload types.\n\nimport type {\n\tCapabilityDecl,\n\tCapabilityKind,\n\tCapabilityPayloadFor,\n\tExactCapabilityPayload,\n} from '../contracts/capability-decl.ts';\nimport type { CodegenableDecl } from '../contracts/codegenable.ts';\nimport type { ProjectionDecl, ProjectionEvent } from '../contracts/projection.ts';\nimport type { RoutableDecl } from '../contracts/routable.ts';\nimport type { SnapshotableDecl } from '../contracts/snapshotable.ts';\nimport type { StrategyContributorDecl } from '../contracts/strategy-contributor.ts';\nimport type {\n\tCapabilitySink,\n\tContributionKind,\n\tHarvestContext,\n} from '../substrate/runtime/capability-sinks/service.ts';\nimport type { Effect, Scope } from 'effect';\n\nexport const capability = <\n\tconst Kind extends string,\n\tconst Data extends CapabilityPayloadFor<Kind>,\n>(\n\tkind: Kind,\n\tdata: Data & ExactCapabilityPayload<Kind, Data>,\n): CapabilityDecl<Kind> & Readonly<Data> =>\n\t({\n\t\t...data,\n\t\tkind,\n\t}) as CapabilityDecl<Kind> & Readonly<Data>;\n\nexport const defineCapability =\n\t<const Kind extends string>(kind: Kind) =>\n\t<const Data extends CapabilityPayloadFor<Kind>>(\n\t\tdata: Data & ExactCapabilityPayload<Kind, Data>,\n\t) =>\n\t\tcapability<Kind, Data>(kind, data);\n\nexport const codegenable = <const Emitter extends string>(\n\tdecl: Omit<CodegenableDecl<Emitter>, 'kind'>,\n): CodegenableDecl<Emitter> => capability('codegenable', decl);\n\nexport const snapshotable = (decl: Omit<SnapshotableDecl, 'kind'>): SnapshotableDecl =>\n\tcapability('snapshotable', decl);\n\n// Distributive `Omit` so the discriminated `RoutableHttpDecl | RoutableTcpDecl`\n// preserves per-variant fields (notably `cors`, which lives on HTTP only).\ntype RoutableDeclInput = RoutableDecl extends infer T\n\t? T extends RoutableDecl\n\t\t? Omit<T, 'kind'>\n\t\t: never\n\t: never;\n\nexport const routable = (decl: RoutableDeclInput): RoutableDecl =>\n\tcapability('routable', decl) as RoutableDecl;\n\n/** Build a `ProjectionDecl` envelope from a `{kind, key, payload}`\n * shorthand. Stamps `tag: 'projection.updated'` and (when `at` is\n * omitted) the current `Date.now()`. Callers that want the projection\n * payload's `updatedAt` field to match the envelope's `at` should pass\n * `at` explicitly. Plugin authors should prefer this shorthand over\n * building the full envelope by hand — the substrate reserves the\n * right to extend the envelope shape (e.g. add cause metadata)\n * without consumers re-spelling each emission site. */\nexport const projection = (\n\tinput:\n\t\t| (Omit<ProjectionEvent, 'tag' | 'at'> & { readonly at?: number })\n\t\t| Omit<ProjectionDecl, 'kind'>,\n): ProjectionDecl => {\n\tif ('event' in input) return capability('projection', input);\n\treturn capability('projection', {\n\t\tevent: {\n\t\t\ttag: 'projection.updated',\n\t\t\tkind: input.kind,\n\t\t\tkey: input.key,\n\t\t\tpayload: input.payload,\n\t\t\tat: input.at ?? Date.now(),\n\t\t},\n\t});\n};\n\nexport const strategyContributor = <const Key extends string, Strategy>(\n\tdecl: Omit<StrategyContributorDecl<Key, Strategy>, 'kind'>,\n): StrategyContributorDecl<Key, Strategy> => capability('strategy-contributor', decl);\n\nexport const capabilitySink = <\n\tconst Kind extends ContributionKind,\n\tDecl extends Kind extends CapabilityKind\n\t\t? Extract<CapabilityDecl, { readonly kind: Kind }>\n\t\t: Readonly<{ readonly kind: Kind } & object>,\n>(\n\tkind: Kind,\n\taccept: (decl: Decl, ctx: HarvestContext) => Effect.Effect<void, never, Scope.Scope>,\n): CapabilitySink<Kind, Decl> => ({ kind, accept });\n"],"mappings":";AAsBA,MAAa,cAIZ,MACA,UAEC;CACA,GAAG;CACH;CACA;AAEF,MAAa,oBACgB,UAE3B,SAEA,WAAuB,MAAM,KAAK;AAEpC,MAAa,eACZ,SAC8B,WAAW,eAAe,KAAK;AAE9D,MAAa,gBAAgB,SAC5B,WAAW,gBAAgB,KAAK;AAUjC,MAAa,YAAY,SACxB,WAAW,YAAY,KAAK;;;;;;;;;AAU7B,MAAa,cACZ,UAGoB;AACpB,KAAI,WAAW,MAAO,QAAO,WAAW,cAAc,MAAM;AAC5D,QAAO,WAAW,cAAc,EAC/B,OAAO;EACN,KAAK;EACL,MAAM,MAAM;EACZ,KAAK,MAAM;EACX,SAAS,MAAM;EACf,IAAI,MAAM,MAAM,KAAK,KAAK;EAC1B,EACD,CAAC;;AAGH,MAAa,uBACZ,SAC4C,WAAW,wBAAwB,KAAK;AAErF,MAAa,kBAMZ,MACA,YACiC;CAAE;CAAM;CAAQ"}
|
|
@@ -34,7 +34,7 @@ interface Stack<Members extends ReadonlyArray<AnyPlugin> = ReadonlyArray<AnyPlug
|
|
|
34
34
|
* otherwise (not assignable, surfacing the field name in the IDE).
|
|
35
35
|
* UNCONSTRAINED Members — every helper sidesteps constraint widening
|
|
36
36
|
* via an internal `Members extends ReadonlyArray<unknown> ? ... : never`
|
|
37
|
-
* shape
|
|
37
|
+
* shape.
|
|
38
38
|
*
|
|
39
39
|
* IMPORTANT: validation runs against the recursively expanded member
|
|
40
40
|
* tuple (`ComposedMembers<Members>`). Bare resource dependencies must
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isPlugin, pluginDependencyRefs } from "../substrate/plugin.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { isPluginExpanderPair, runPluginExpanders } from "../contracts/plugin-expander.mjs";
|
|
3
|
+
import "./define-plugin.mjs";
|
|
3
4
|
//#region src/api/define-devstack.ts
|
|
4
5
|
const STACK_ENGINE = Symbol.for("@mysten-incubation/devstack.stack.engine");
|
|
5
6
|
const ACCOUNT_RESOURCE_PREFIX = "account/";
|
|
@@ -24,7 +25,9 @@ const readStackEngine = (stack) => {
|
|
|
24
25
|
* error field visible in the IDE.
|
|
25
26
|
*/
|
|
26
27
|
function defineDevstack(config) {
|
|
27
|
-
const
|
|
28
|
+
const roots = expandPluginDependencies(config.members);
|
|
29
|
+
const expanded = runPluginExpanders(roots);
|
|
30
|
+
const members = expanded === roots ? roots : expandPluginDependencies(expanded);
|
|
28
31
|
const { members: _members, ...options } = config;
|
|
29
32
|
const engine = {
|
|
30
33
|
_tag: "Stack",
|
|
@@ -53,7 +56,7 @@ const expandPluginDependencies = (members) => {
|
|
|
53
56
|
const previous = seen.get(id);
|
|
54
57
|
if (previous === member) return;
|
|
55
58
|
if (previous !== void 0) {
|
|
56
|
-
if (
|
|
59
|
+
if (isPluginExpanderPair(previous, member)) return;
|
|
57
60
|
throw new Error(`Duplicate devstack provider for ${id}`);
|
|
58
61
|
}
|
|
59
62
|
const accountName = accountNameFromResourceId(id);
|
|
@@ -75,33 +78,10 @@ const expandPluginDependencies = (members) => {
|
|
|
75
78
|
for (const member of members) visit(member);
|
|
76
79
|
return expanded;
|
|
77
80
|
};
|
|
78
|
-
const isExpandedWalletAlias = (a, b) => a.id === b.id && (readExpandHook(a) !== void 0 || readExpandHook(b) !== void 0);
|
|
79
81
|
const accountNameFromResourceId = (id) => {
|
|
80
82
|
if (!id.startsWith(ACCOUNT_RESOURCE_PREFIX)) return null;
|
|
81
83
|
return id.slice(8);
|
|
82
84
|
};
|
|
83
|
-
function readExpandHook(m) {
|
|
84
|
-
const slot = m[WALLET_EXPAND_ACCOUNTS_ALL];
|
|
85
|
-
return typeof slot === "function" ? slot : void 0;
|
|
86
|
-
}
|
|
87
|
-
/** Expand any `wallet({ accounts: 'all' })` placeholder plugin into a
|
|
88
|
-
* real wallet plugin whose dependencies include every account plugin.
|
|
89
|
-
* Returns the input array verbatim when no expansion is
|
|
90
|
-
* needed (zero allocation on the common explicit-tuple path). */
|
|
91
|
-
function expandWalletAccountsAll(members) {
|
|
92
|
-
let needsExpansion = false;
|
|
93
|
-
for (const m of members) if (readExpandHook(m) !== void 0) {
|
|
94
|
-
needsExpansion = true;
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
if (!needsExpansion) return members;
|
|
98
|
-
const accountMembers = [];
|
|
99
|
-
for (const m of members) if (m.id.startsWith(ACCOUNT_RESOURCE_PREFIX)) accountMembers.push(m);
|
|
100
|
-
return members.map((m) => {
|
|
101
|
-
const expand = readExpandHook(m);
|
|
102
|
-
return expand === void 0 ? m : expand(accountMembers);
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
85
|
//#endregion
|
|
106
86
|
export { defineDevstack, readStackEngine };
|
|
107
87
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-devstack.mjs","names":[],"sources":["../../src/api/define-devstack.ts"],"sourcesContent":["// `defineDevstack` — object-form stack composer.\n//\n// Listed members are entrypoints. Plugin-valued dependencies are\n// expanded recursively before the engine sees the plugin list.\n\nimport {\n\ttype __MissingProvidersError,\n\ttype AnyPlugin,\n\ttype MissingProviders,\n\tpluginDependencyRefs,\n} from '../substrate/plugin.ts';\nimport type { DevstackOptions } from '../substrate/options.ts';\nimport {\n\tWALLET_EXPAND_ACCOUNTS_ALL,\n\ttype WalletExpandAccountsAllExpander,\n} from '../plugins/wallet/index.ts';\nimport type { WalletAccountMember } from '../plugins/wallet/index.ts';\nimport { isPlugin, type AnyResourceRef } from './define-plugin.ts';\n\n// --- Type-level helpers -------------------------------------------------\n\nconst STACK_ENGINE = Symbol.for('@mysten-incubation/devstack.stack.engine');\n\ntype PluginDependencyMembers<Member> = Member extends {\n\treadonly dependsOn: ReadonlyArray<infer Dependency>;\n}\n\t? Dependency extends AnyPlugin\n\t\t? Dependency\n\t\t: never\n\t: never;\n\ntype ReachableMember<Member, Seen extends string = never> = Member extends {\n\treadonly id: infer Id extends string;\n}\n\t? Id extends Seen\n\t\t? never\n\t\t: Member | ReachableMember<PluginDependencyMembers<Member>, Seen | Id>\n\t: never;\n\nexport type DependencyClosure<Members extends ReadonlyArray<AnyPlugin>> = ReadonlyArray<\n\tMembers[number] extends infer Member ? ReachableMember<Member> : never\n>;\n\nexport type ComposedMembers<Members extends ReadonlyArray<AnyPlugin>> = DependencyClosure<Members>;\n\nexport interface DevstackConfig<Members extends ReadonlyArray<AnyPlugin>> extends DevstackOptions {\n\treadonly members: Members;\n}\n\nconst ACCOUNT_RESOURCE_PREFIX = 'account/';\n\n// --- Stack handle -------------------------------------------------------\n\n/**\n * The compile-time stack handle. Carries:\n * - the plugin tuple (narrow),\n * - the union of resource ids it provides,\n * - an opaque marker the orchestrator boot path consumes.\n *\n * The runtime value is a struct; orchestrators consume it through\n * the supervisor entry point.\n */\nexport interface Stack<Members extends ReadonlyArray<AnyPlugin> = ReadonlyArray<AnyPlugin>> {\n\treadonly _tag: 'Stack';\n\treadonly options: DevstackOptions;\n\t/** Phantom — preserves the union of provided ids for downstream\n\t * introspection. Covariant per the phantom-variance rule. */\n\treadonly _providedIds?: () => {\n\t\t[K in keyof Members]: Members[K]['id'];\n\t}[number];\n}\n\nexport interface StackEngine<Members extends ReadonlyArray<AnyPlugin> = ReadonlyArray<AnyPlugin>> {\n\treadonly _tag: 'Stack';\n\treadonly members: Members;\n\treadonly options: DevstackOptions;\n}\n\nexport const readStackEngine = <Members extends ReadonlyArray<AnyPlugin>>(\n\tstack: Stack<Members>,\n): StackEngine<Members> => {\n\tconst engine = (stack as unknown as Readonly<Record<symbol, StackEngine<Members> | undefined>>)[\n\t\tSTACK_ENGINE\n\t];\n\tif (engine === undefined) {\n\t\tthrow new Error('Invalid devstack Stack handle: missing internal engine stack');\n\t}\n\treturn engine;\n};\n\n// --- Diagnostic gating --------------------------------------------------\n//\n// If `MissingProviders` is non-empty, the call signature surfaces a\n// branded structured error so the IDE diagnostic names the missing\n// piece.\n\n/** Validation gate. Resolves to `unknown` when every check passes\n * (assignable to any `Args`); to a branded structured error\n * otherwise (not assignable, surfacing the field name in the IDE).\n * UNCONSTRAINED Members — every helper sidesteps constraint widening\n * via an internal `Members extends ReadonlyArray<unknown> ? ... : never`\n * shape (Phase-3 finding).\n *\n * IMPORTANT: validation runs against the recursively expanded member\n * tuple (`ComposedMembers<Members>`). Bare resource dependencies must\n * have an explicit provider in the stack; plugin-valued dependencies\n * are pulled in by the closure first. */\nexport type ValidateArgs<Members> =\n\tMembers extends ReadonlyArray<AnyPlugin>\n\t\t? ComposedMembers<Members> extends infer M\n\t\t\t? M extends ReadonlyArray<unknown>\n\t\t\t\t? [MissingProviders<M>] extends [never]\n\t\t\t\t\t? unknown\n\t\t\t\t\t: __MissingProvidersError<MissingProviders<M>>\n\t\t\t\t: never\n\t\t\t: never\n\t\t: never;\n\n// --- Public surface -----------------------------------------------------\n\n/**\n * Object-form devstack composer.\n *\n * Compile-time checks performed:\n * - missing-provider: every dependency id has a matching plugin id\n * somewhere in the plugin set.\n *\n * Validation surfaces at the PARAMETER (not the return type) — the\n * generic `Args` is constrained against a branded error type whose\n * field name names the missing piece (type-prototype finding #6,\n * architecture open question #11). Failed validation makes the\n * config type un-assignable, surfacing as the standard\n * \"not assignable to parameter of type\" diagnostic with the branded\n * error field visible in the IDE.\n */\nexport function defineDevstack<const Members extends ReadonlyArray<AnyPlugin>>(\n\tconfig: DevstackConfig<Members> & ValidateArgs<Members>,\n): Stack<ComposedMembers<Members>> {\n\tconst roots = expandPluginDependencies(config.members);\n\tconst expandedWallet = expandWalletAccountsAll(roots);\n\tconst members = expandPluginDependencies(expandedWallet);\n\tconst { members: _members, ...options } = config;\n\tvoid _members;\n\n\tconst engine: StackEngine<ReadonlyArray<AnyPlugin>> = {\n\t\t_tag: 'Stack',\n\t\tmembers,\n\t\toptions,\n\t};\n\tconst stack: Stack<ReadonlyArray<AnyPlugin>> = {\n\t\t_tag: 'Stack',\n\t\toptions,\n\t};\n\tObject.defineProperty(stack, STACK_ENGINE, {\n\t\tvalue: engine,\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t});\n\n\treturn stack as unknown as Stack<ComposedMembers<Members>>;\n}\n\nexport const expandPluginDependencies = (\n\tmembers: ReadonlyArray<AnyPlugin>,\n): ReadonlyArray<AnyPlugin> => {\n\tconst expanded: AnyPlugin[] = [];\n\tconst seen = new Map<string, AnyPlugin>();\n\tconst accountNameByCaseFold = new Map<string, string>();\n\tconst visiting = new Set<string>();\n\n\tconst visit = (member: AnyPlugin) => {\n\t\tconst id = member.id;\n\t\tconst previous = seen.get(id);\n\t\tif (previous === member) {\n\t\t\treturn;\n\t\t}\n\t\tif (previous !== undefined) {\n\t\t\tif (isExpandedWalletAlias(previous, member)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthrow new Error(`Duplicate devstack provider for ${id}`);\n\t\t}\n\t\tconst accountName = accountNameFromResourceId(id);\n\t\tif (accountName !== null) {\n\t\t\tconst caseFoldedName = accountName.toLowerCase();\n\t\t\tconst previousAccountName = accountNameByCaseFold.get(caseFoldedName);\n\t\t\tif (previousAccountName !== undefined && previousAccountName !== accountName) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Duplicate devstack account name '${accountName}' differs only by casing from '${previousAccountName}'`,\n\t\t\t\t);\n\t\t\t}\n\t\t\taccountNameByCaseFold.set(caseFoldedName, accountName);\n\t\t}\n\t\tif (visiting.has(id)) {\n\t\t\tthrow new Error(`Circular devstack dependency through ${id}`);\n\t\t}\n\n\t\tvisiting.add(id);\n\t\tif (isPlugin(member)) {\n\t\t\tfor (const dependency of pluginDependencyRefs(member) as readonly AnyResourceRef[]) {\n\t\t\t\tif (isPlugin(dependency)) {\n\t\t\t\t\tvisit(dependency);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvisiting.delete(id);\n\t\tseen.set(id, member);\n\t\texpanded.push(member);\n\t};\n\n\tfor (const member of members) {\n\t\tvisit(member);\n\t}\n\n\treturn expanded;\n};\n\nconst isExpandedWalletAlias = (a: AnyPlugin, b: AnyPlugin): boolean =>\n\ta.id === b.id && (readExpandHook(a) !== undefined || readExpandHook(b) !== undefined);\n\nconst accountNameFromResourceId = (id: string): string | null => {\n\tif (!id.startsWith(ACCOUNT_RESOURCE_PREFIX)) return null;\n\treturn id.slice(ACCOUNT_RESOURCE_PREFIX.length);\n};\n\n// --- wallet `accounts: 'all'` expansion (D6, api-surface-design.md §4) --\n//\n// The wallet factory returns a placeholder member with a symbol-keyed\n// expander hook when the user passes `accounts: 'all'`. The composer\n// is the only place that knows the FULL stack member tuple at compose\n// time, so the expansion runs here before the runtime member array is\n// handed to the supervisor.\n//\n// Without expansion, the wallet's dependencies would stay `[suiResource]` and\n// the supervisor's topological scheduler would race account funding\n// against `signTransaction`.\n\nfunction readExpandHook(m: AnyPlugin): WalletExpandAccountsAllExpander | undefined {\n\tconst slot = (m as unknown as Record<symbol, unknown>)[WALLET_EXPAND_ACCOUNTS_ALL];\n\treturn typeof slot === 'function' ? (slot as WalletExpandAccountsAllExpander) : undefined;\n}\n\n/** Expand any `wallet({ accounts: 'all' })` placeholder plugin into a\n * real wallet plugin whose dependencies include every account plugin.\n * Returns the input array verbatim when no expansion is\n * needed (zero allocation on the common explicit-tuple path). */\nexport function expandWalletAccountsAll(\n\tmembers: ReadonlyArray<AnyPlugin>,\n): ReadonlyArray<AnyPlugin> {\n\tlet needsExpansion = false;\n\tfor (const m of members) {\n\t\tif (readExpandHook(m) !== undefined) {\n\t\t\tneedsExpansion = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!needsExpansion) return members;\n\n\tconst accountMembers: Array<WalletAccountMember> = [];\n\tfor (const m of members) {\n\t\tif (m.id.startsWith(ACCOUNT_RESOURCE_PREFIX)) {\n\t\t\taccountMembers.push(m as unknown as WalletAccountMember);\n\t\t}\n\t}\n\n\treturn members.map((m) => {\n\t\tconst expand = readExpandHook(m);\n\t\treturn expand === undefined ? m : expand(accountMembers);\n\t});\n}\n"],"mappings":";;;AAqBA,MAAM,eAAe,OAAO,IAAI,2CAA2C;AA4B3E,MAAM,0BAA0B;AA6BhC,MAAa,mBACZ,UAC0B;CAC1B,MAAM,SAAU,MACf;AAED,KAAI,WAAW,KAAA,EACd,OAAM,IAAI,MAAM,+DAA+D;AAEhF,QAAO;;;;;;;;;;;;;;;;;AAgDR,SAAgB,eACf,QACkC;CAGlC,MAAM,UAAU,yBADO,wBADT,yBAAyB,OAAO,QACM,CACG,CAAC;CACxD,MAAM,EAAE,SAAS,UAAU,GAAG,YAAY;CAG1C,MAAM,SAAgD;EACrD,MAAM;EACN;EACA;EACA;CACD,MAAM,QAAyC;EAC9C,MAAM;EACN;EACA;AACD,QAAO,eAAe,OAAO,cAAc;EAC1C,OAAO;EACP,YAAY;EACZ,cAAc;EACd,UAAU;EACV,CAAC;AAEF,QAAO;;AAGR,MAAa,4BACZ,YAC8B;CAC9B,MAAM,WAAwB,EAAE;CAChC,MAAM,uBAAO,IAAI,KAAwB;CACzC,MAAM,wCAAwB,IAAI,KAAqB;CACvD,MAAM,2BAAW,IAAI,KAAa;CAElC,MAAM,SAAS,WAAsB;EACpC,MAAM,KAAK,OAAO;EAClB,MAAM,WAAW,KAAK,IAAI,GAAG;AAC7B,MAAI,aAAa,OAChB;AAED,MAAI,aAAa,KAAA,GAAW;AAC3B,OAAI,sBAAsB,UAAU,OAAO,CAC1C;AAED,SAAM,IAAI,MAAM,mCAAmC,KAAK;;EAEzD,MAAM,cAAc,0BAA0B,GAAG;AACjD,MAAI,gBAAgB,MAAM;GACzB,MAAM,iBAAiB,YAAY,aAAa;GAChD,MAAM,sBAAsB,sBAAsB,IAAI,eAAe;AACrE,OAAI,wBAAwB,KAAA,KAAa,wBAAwB,YAChE,OAAM,IAAI,MACT,oCAAoC,YAAY,iCAAiC,oBAAoB,GACrG;AAEF,yBAAsB,IAAI,gBAAgB,YAAY;;AAEvD,MAAI,SAAS,IAAI,GAAG,CACnB,OAAM,IAAI,MAAM,wCAAwC,KAAK;AAG9D,WAAS,IAAI,GAAG;AAChB,MAAI,SAAS,OAAO;QACd,MAAM,cAAc,qBAAqB,OAAO,CACpD,KAAI,SAAS,WAAW,CACvB,OAAM,WAAW;;AAIpB,WAAS,OAAO,GAAG;AACnB,OAAK,IAAI,IAAI,OAAO;AACpB,WAAS,KAAK,OAAO;;AAGtB,MAAK,MAAM,UAAU,QACpB,OAAM,OAAO;AAGd,QAAO;;AAGR,MAAM,yBAAyB,GAAc,MAC5C,EAAE,OAAO,EAAE,OAAO,eAAe,EAAE,KAAK,KAAA,KAAa,eAAe,EAAE,KAAK,KAAA;AAE5E,MAAM,6BAA6B,OAA8B;AAChE,KAAI,CAAC,GAAG,WAAW,wBAAwB,CAAE,QAAO;AACpD,QAAO,GAAG,MAAM,EAA+B;;AAehD,SAAS,eAAe,GAA2D;CAClF,MAAM,OAAQ,EAAyC;AACvD,QAAO,OAAO,SAAS,aAAc,OAA2C,KAAA;;;;;;AAOjF,SAAgB,wBACf,SAC2B;CAC3B,IAAI,iBAAiB;AACrB,MAAK,MAAM,KAAK,QACf,KAAI,eAAe,EAAE,KAAK,KAAA,GAAW;AACpC,mBAAiB;AACjB;;AAGF,KAAI,CAAC,eAAgB,QAAO;CAE5B,MAAM,iBAA6C,EAAE;AACrD,MAAK,MAAM,KAAK,QACf,KAAI,EAAE,GAAG,WAAW,wBAAwB,CAC3C,gBAAe,KAAK,EAAoC;AAI1D,QAAO,QAAQ,KAAK,MAAM;EACzB,MAAM,SAAS,eAAe,EAAE;AAChC,SAAO,WAAW,KAAA,IAAY,IAAI,OAAO,eAAe;GACvD"}
|
|
1
|
+
{"version":3,"file":"define-devstack.mjs","names":[],"sources":["../../src/api/define-devstack.ts"],"sourcesContent":["// `defineDevstack` — object-form stack composer.\n//\n// Listed members are entrypoints. Plugin-valued dependencies are\n// expanded recursively before the engine sees the plugin list.\n\nimport {\n\ttype __MissingProvidersError,\n\ttype AnyPlugin,\n\ttype MissingProviders,\n\tpluginDependencyRefs,\n} from '../substrate/plugin.ts';\nimport type { DevstackOptions } from '../substrate/options.ts';\nimport { isPluginExpanderPair, runPluginExpanders } from '../contracts/plugin-expander.ts';\nimport { isPlugin, type AnyResourceRef } from './define-plugin.ts';\n\n// --- Type-level helpers -------------------------------------------------\n\nconst STACK_ENGINE = Symbol.for('@mysten-incubation/devstack.stack.engine');\n\ntype PluginDependencyMembers<Member> = Member extends {\n\treadonly dependsOn: ReadonlyArray<infer Dependency>;\n}\n\t? Dependency extends AnyPlugin\n\t\t? Dependency\n\t\t: never\n\t: never;\n\ntype ReachableMember<Member, Seen extends string = never> = Member extends {\n\treadonly id: infer Id extends string;\n}\n\t? Id extends Seen\n\t\t? never\n\t\t: Member | ReachableMember<PluginDependencyMembers<Member>, Seen | Id>\n\t: never;\n\nexport type DependencyClosure<Members extends ReadonlyArray<AnyPlugin>> = ReadonlyArray<\n\tMembers[number] extends infer Member ? ReachableMember<Member> : never\n>;\n\nexport type ComposedMembers<Members extends ReadonlyArray<AnyPlugin>> = DependencyClosure<Members>;\n\nexport interface DevstackConfig<Members extends ReadonlyArray<AnyPlugin>> extends DevstackOptions {\n\treadonly members: Members;\n}\n\nconst ACCOUNT_RESOURCE_PREFIX = 'account/';\n\n// --- Stack handle -------------------------------------------------------\n\n/**\n * The compile-time stack handle. Carries:\n * - the plugin tuple (narrow),\n * - the union of resource ids it provides,\n * - an opaque marker the orchestrator boot path consumes.\n *\n * The runtime value is a struct; orchestrators consume it through\n * the supervisor entry point.\n */\nexport interface Stack<Members extends ReadonlyArray<AnyPlugin> = ReadonlyArray<AnyPlugin>> {\n\treadonly _tag: 'Stack';\n\treadonly options: DevstackOptions;\n\t/** Phantom — preserves the union of provided ids for downstream\n\t * introspection. Covariant per the phantom-variance rule. */\n\treadonly _providedIds?: () => {\n\t\t[K in keyof Members]: Members[K]['id'];\n\t}[number];\n}\n\nexport interface StackEngine<Members extends ReadonlyArray<AnyPlugin> = ReadonlyArray<AnyPlugin>> {\n\treadonly _tag: 'Stack';\n\treadonly members: Members;\n\treadonly options: DevstackOptions;\n}\n\nexport const readStackEngine = <Members extends ReadonlyArray<AnyPlugin>>(\n\tstack: Stack<Members>,\n): StackEngine<Members> => {\n\tconst engine = (stack as unknown as Readonly<Record<symbol, StackEngine<Members> | undefined>>)[\n\t\tSTACK_ENGINE\n\t];\n\tif (engine === undefined) {\n\t\tthrow new Error('Invalid devstack Stack handle: missing internal engine stack');\n\t}\n\treturn engine;\n};\n\n// --- Diagnostic gating --------------------------------------------------\n//\n// If `MissingProviders` is non-empty, the call signature surfaces a\n// branded structured error so the IDE diagnostic names the missing\n// piece.\n\n/** Validation gate. Resolves to `unknown` when every check passes\n * (assignable to any `Args`); to a branded structured error\n * otherwise (not assignable, surfacing the field name in the IDE).\n * UNCONSTRAINED Members — every helper sidesteps constraint widening\n * via an internal `Members extends ReadonlyArray<unknown> ? ... : never`\n * shape.\n *\n * IMPORTANT: validation runs against the recursively expanded member\n * tuple (`ComposedMembers<Members>`). Bare resource dependencies must\n * have an explicit provider in the stack; plugin-valued dependencies\n * are pulled in by the closure first. */\nexport type ValidateArgs<Members> =\n\tMembers extends ReadonlyArray<AnyPlugin>\n\t\t? ComposedMembers<Members> extends infer M\n\t\t\t? M extends ReadonlyArray<unknown>\n\t\t\t\t? [MissingProviders<M>] extends [never]\n\t\t\t\t\t? unknown\n\t\t\t\t\t: __MissingProvidersError<MissingProviders<M>>\n\t\t\t\t: never\n\t\t\t: never\n\t\t: never;\n\n// --- Public surface -----------------------------------------------------\n\n/**\n * Object-form devstack composer.\n *\n * Compile-time checks performed:\n * - missing-provider: every dependency id has a matching plugin id\n * somewhere in the plugin set.\n *\n * Validation surfaces at the PARAMETER (not the return type) — the\n * generic `Args` is constrained against a branded error type whose\n * field name names the missing piece (type-prototype finding #6,\n * architecture open question #11). Failed validation makes the\n * config type un-assignable, surfacing as the standard\n * \"not assignable to parameter of type\" diagnostic with the branded\n * error field visible in the IDE.\n */\nexport function defineDevstack<const Members extends ReadonlyArray<AnyPlugin>>(\n\tconfig: DevstackConfig<Members> & ValidateArgs<Members>,\n): Stack<ComposedMembers<Members>> {\n\tconst roots = expandPluginDependencies(config.members);\n\tconst expanded = runPluginExpanders(roots);\n\tconst members = expanded === roots ? roots : expandPluginDependencies(expanded);\n\tconst { members: _members, ...options } = config;\n\tvoid _members;\n\n\tconst engine: StackEngine<ReadonlyArray<AnyPlugin>> = {\n\t\t_tag: 'Stack',\n\t\tmembers,\n\t\toptions,\n\t};\n\tconst stack: Stack<ReadonlyArray<AnyPlugin>> = {\n\t\t_tag: 'Stack',\n\t\toptions,\n\t};\n\tObject.defineProperty(stack, STACK_ENGINE, {\n\t\tvalue: engine,\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t});\n\n\treturn stack as unknown as Stack<ComposedMembers<Members>>;\n}\n\nexport const expandPluginDependencies = (\n\tmembers: ReadonlyArray<AnyPlugin>,\n): ReadonlyArray<AnyPlugin> => {\n\tconst expanded: AnyPlugin[] = [];\n\tconst seen = new Map<string, AnyPlugin>();\n\tconst accountNameByCaseFold = new Map<string, string>();\n\tconst visiting = new Set<string>();\n\n\tconst visit = (member: AnyPlugin) => {\n\t\tconst id = member.id;\n\t\tconst previous = seen.get(id);\n\t\tif (previous === member) {\n\t\t\treturn;\n\t\t}\n\t\tif (previous !== undefined) {\n\t\t\tif (isPluginExpanderPair(previous, member)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthrow new Error(`Duplicate devstack provider for ${id}`);\n\t\t}\n\t\tconst accountName = accountNameFromResourceId(id);\n\t\tif (accountName !== null) {\n\t\t\tconst caseFoldedName = accountName.toLowerCase();\n\t\t\tconst previousAccountName = accountNameByCaseFold.get(caseFoldedName);\n\t\t\tif (previousAccountName !== undefined && previousAccountName !== accountName) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Duplicate devstack account name '${accountName}' differs only by casing from '${previousAccountName}'`,\n\t\t\t\t);\n\t\t\t}\n\t\t\taccountNameByCaseFold.set(caseFoldedName, accountName);\n\t\t}\n\t\tif (visiting.has(id)) {\n\t\t\tthrow new Error(`Circular devstack dependency through ${id}`);\n\t\t}\n\n\t\tvisiting.add(id);\n\t\tif (isPlugin(member)) {\n\t\t\tfor (const dependency of pluginDependencyRefs(member) as readonly AnyResourceRef[]) {\n\t\t\t\tif (isPlugin(dependency)) {\n\t\t\t\t\tvisit(dependency);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvisiting.delete(id);\n\t\tseen.set(id, member);\n\t\texpanded.push(member);\n\t};\n\n\tfor (const member of members) {\n\t\tvisit(member);\n\t}\n\n\treturn expanded;\n};\n\nconst accountNameFromResourceId = (id: string): string | null => {\n\tif (!id.startsWith(ACCOUNT_RESOURCE_PREFIX)) return null;\n\treturn id.slice(ACCOUNT_RESOURCE_PREFIX.length);\n};\n"],"mappings":";;;;AAiBA,MAAM,eAAe,OAAO,IAAI,2CAA2C;AA4B3E,MAAM,0BAA0B;AA6BhC,MAAa,mBACZ,UAC0B;CAC1B,MAAM,SAAU,MACf;AAED,KAAI,WAAW,KAAA,EACd,OAAM,IAAI,MAAM,+DAA+D;AAEhF,QAAO;;;;;;;;;;;;;;;;;AAgDR,SAAgB,eACf,QACkC;CAClC,MAAM,QAAQ,yBAAyB,OAAO,QAAQ;CACtD,MAAM,WAAW,mBAAmB,MAAM;CAC1C,MAAM,UAAU,aAAa,QAAQ,QAAQ,yBAAyB,SAAS;CAC/E,MAAM,EAAE,SAAS,UAAU,GAAG,YAAY;CAG1C,MAAM,SAAgD;EACrD,MAAM;EACN;EACA;EACA;CACD,MAAM,QAAyC;EAC9C,MAAM;EACN;EACA;AACD,QAAO,eAAe,OAAO,cAAc;EAC1C,OAAO;EACP,YAAY;EACZ,cAAc;EACd,UAAU;EACV,CAAC;AAEF,QAAO;;AAGR,MAAa,4BACZ,YAC8B;CAC9B,MAAM,WAAwB,EAAE;CAChC,MAAM,uBAAO,IAAI,KAAwB;CACzC,MAAM,wCAAwB,IAAI,KAAqB;CACvD,MAAM,2BAAW,IAAI,KAAa;CAElC,MAAM,SAAS,WAAsB;EACpC,MAAM,KAAK,OAAO;EAClB,MAAM,WAAW,KAAK,IAAI,GAAG;AAC7B,MAAI,aAAa,OAChB;AAED,MAAI,aAAa,KAAA,GAAW;AAC3B,OAAI,qBAAqB,UAAU,OAAO,CACzC;AAED,SAAM,IAAI,MAAM,mCAAmC,KAAK;;EAEzD,MAAM,cAAc,0BAA0B,GAAG;AACjD,MAAI,gBAAgB,MAAM;GACzB,MAAM,iBAAiB,YAAY,aAAa;GAChD,MAAM,sBAAsB,sBAAsB,IAAI,eAAe;AACrE,OAAI,wBAAwB,KAAA,KAAa,wBAAwB,YAChE,OAAM,IAAI,MACT,oCAAoC,YAAY,iCAAiC,oBAAoB,GACrG;AAEF,yBAAsB,IAAI,gBAAgB,YAAY;;AAEvD,MAAI,SAAS,IAAI,GAAG,CACnB,OAAM,IAAI,MAAM,wCAAwC,KAAK;AAG9D,WAAS,IAAI,GAAG;AAChB,MAAI,SAAS,OAAO;QACd,MAAM,cAAc,qBAAqB,OAAO,CACpD,KAAI,SAAS,WAAW,CACvB,OAAM,WAAW;;AAIpB,WAAS,OAAO,GAAG;AACnB,OAAK,IAAI,IAAI,OAAO;AACpB,WAAS,KAAK,OAAO;;AAGtB,MAAK,MAAM,UAAU,QACpB,OAAM,OAAO;AAGd,QAAO;;AAGR,MAAM,6BAA6B,OAA8B;AAChE,KAAI,CAAC,GAAG,WAAW,wBAAwB,CAAE,QAAO;AACpD,QAAO,GAAG,MAAM,EAA+B"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
import { RowSection } from "../substrate/projection.mjs";
|
|
1
2
|
import { AnyPlugin, AnyResourceRef, CapabilitiesFactory, CapabilitySource, DependencyInput, DependencyList, Plugin, PluginErrorContribution, PluginSpec, ResolvedDependencies, ResolvedDependencyList, ResolvedDependencyObject, ResourceIdOf, ResourceRef, ResourceValueOf, WatchDecl, defineId, definePlugin, resource } from "../substrate/plugin.mjs";
|