movehat 0.2.4 → 0.2.5
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 +1 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -1
- package/dist/commands/compile.d.ts +0 -1
- package/dist/commands/compile.js +0 -1
- package/dist/commands/fork/create.d.ts +1 -1
- package/dist/commands/fork/create.js +18 -3
- package/dist/commands/fork/fund.d.ts +0 -1
- package/dist/commands/fork/fund.js +0 -1
- package/dist/commands/fork/list.d.ts +0 -1
- package/dist/commands/fork/list.js +0 -1
- package/dist/commands/fork/serve.d.ts +0 -1
- package/dist/commands/fork/serve.js +0 -1
- package/dist/commands/fork/view-resource.d.ts +0 -1
- package/dist/commands/fork/view-resource.js +0 -1
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +0 -1
- package/dist/commands/run.d.ts +0 -1
- package/dist/commands/run.js +0 -1
- package/dist/commands/test-move.d.ts +0 -1
- package/dist/commands/test-move.js +0 -1
- package/dist/commands/test.d.ts +0 -1
- package/dist/commands/test.js +8 -1
- package/dist/commands/update.d.ts +0 -1
- package/dist/commands/update.js +0 -1
- package/dist/core/AccountManager.d.ts +15 -2
- package/dist/core/AccountManager.js +32 -20
- package/dist/core/Publisher.d.ts +0 -1
- package/dist/core/Publisher.js +0 -1
- package/dist/core/config.d.ts +0 -1
- package/dist/core/config.js +0 -1
- package/dist/core/contract.d.ts +0 -1
- package/dist/core/contract.js +0 -1
- package/dist/core/deployments.d.ts +0 -1
- package/dist/core/deployments.js +0 -1
- package/dist/core/movementProfile.d.ts +0 -1
- package/dist/core/movementProfile.js +0 -1
- package/dist/core/shell.d.ts +0 -1
- package/dist/core/shell.js +0 -1
- package/dist/errors.d.ts +0 -1
- package/dist/errors.js +0 -1
- package/dist/fork/api.d.ts +24 -1
- package/dist/fork/api.js +95 -1
- package/dist/fork/manager.d.ts +14 -1
- package/dist/fork/manager.js +19 -1
- package/dist/fork/server.d.ts +19 -1
- package/dist/fork/server.js +188 -8
- package/dist/fork/storage.d.ts +0 -1
- package/dist/fork/storage.js +50 -32
- package/dist/fork/test.d.ts +0 -1
- package/dist/fork/test.js +0 -1
- package/dist/harness/Harness.d.ts +0 -1
- package/dist/harness/Harness.js +6 -2
- package/dist/harness/codeObject.d.ts +0 -1
- package/dist/harness/codeObject.js +0 -1
- package/dist/harness/errors.d.ts +0 -1
- package/dist/harness/errors.js +0 -1
- package/dist/harness/index.d.ts +0 -1
- package/dist/harness/index.js +0 -1
- package/dist/harness/proxy.d.ts +12 -1
- package/dist/harness/proxy.js +23 -1
- package/dist/harness/script.d.ts +0 -1
- package/dist/harness/script.js +0 -1
- package/dist/harness/view.d.ts +0 -1
- package/dist/harness/view.js +0 -1
- package/dist/helpers/assertions.d.ts +0 -1
- package/dist/helpers/assertions.js +0 -1
- package/dist/helpers/banner.d.ts +0 -1
- package/dist/helpers/banner.js +0 -1
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/index.js +0 -1
- package/dist/helpers/move-tests.d.ts +0 -1
- package/dist/helpers/move-tests.js +0 -1
- package/dist/helpers/npm-registry.d.ts +0 -1
- package/dist/helpers/npm-registry.js +0 -1
- package/dist/helpers/semver-utils.d.ts +0 -1
- package/dist/helpers/semver-utils.js +0 -1
- package/dist/helpers/setup.d.ts +0 -1
- package/dist/helpers/setup.js +0 -1
- package/dist/helpers/setupLocalTesting.d.ts +2 -5
- package/dist/helpers/setupLocalTesting.js +0 -1
- package/dist/helpers/testFixtures.d.ts +0 -1
- package/dist/helpers/testFixtures.js +0 -1
- package/dist/helpers/version-check.d.ts +0 -1
- package/dist/helpers/version-check.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/node/LocalNodeManager.d.ts +0 -1
- package/dist/node/LocalNodeManager.js +4 -2
- package/dist/runtime.d.ts +0 -1
- package/dist/runtime.js +0 -1
- package/dist/types/config.d.ts +0 -1
- package/dist/types/config.js +0 -1
- package/dist/types/fork.d.ts +0 -1
- package/dist/types/fork.js +0 -1
- package/dist/types/harness.d.ts +0 -1
- package/dist/types/harness.js +0 -1
- package/dist/types/runtime.d.ts +0 -1
- package/dist/types/runtime.js +0 -1
- package/dist/ui/colors.d.ts +0 -1
- package/dist/ui/colors.js +0 -1
- package/dist/ui/formatters.d.ts +0 -1
- package/dist/ui/formatters.js +0 -1
- package/dist/ui/index.d.ts +0 -1
- package/dist/ui/index.js +0 -1
- package/dist/ui/logger.d.ts +0 -1
- package/dist/ui/logger.js +0 -1
- package/dist/ui/spinner.d.ts +0 -1
- package/dist/ui/spinner.js +0 -1
- package/dist/ui/symbols.d.ts +0 -1
- package/dist/ui/symbols.js +0 -1
- package/dist/ui/table.d.ts +0 -1
- package/dist/ui/table.js +0 -1
- package/dist/utils/address.d.ts +0 -1
- package/dist/utils/address.js +0 -1
- package/dist/utils/childProcessAdapter.d.ts +0 -1
- package/dist/utils/childProcessAdapter.js +46 -20
- package/dist/utils/movementCli.d.ts +5 -0
- package/dist/utils/movementCli.js +91 -0
- package/dist/utils/parseCliOutput.d.ts +0 -1
- package/dist/utils/parseCliOutput.js +0 -1
- package/dist/utils/redact.d.ts +3 -3
- package/dist/utils/redact.js +6 -5
- package/dist/utils/runCli.d.ts +0 -1
- package/dist/utils/runCli.js +10 -2
- package/package.json +4 -4
- package/dist/__tests__/deployContract.test.d.ts +0 -2
- package/dist/__tests__/deployContract.test.d.ts.map +0 -1
- package/dist/__tests__/deployContract.test.js +0 -377
- package/dist/__tests__/deployContract.test.js.map +0 -1
- package/dist/__tests__/errors.test.d.ts +0 -2
- package/dist/__tests__/errors.test.d.ts.map +0 -1
- package/dist/__tests__/errors.test.js +0 -46
- package/dist/__tests__/errors.test.js.map +0 -1
- package/dist/__tests__/exports.test.d.ts +0 -2
- package/dist/__tests__/exports.test.d.ts.map +0 -1
- package/dist/__tests__/exports.test.js +0 -30
- package/dist/__tests__/exports.test.js.map +0 -1
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts +0 -25
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts.map +0 -1
- package/dist/__tests__/fixtures/sigint-deploy-harness.js +0 -83
- package/dist/__tests__/fixtures/sigint-deploy-harness.js.map +0 -1
- package/dist/__tests__/fork/api.test.d.ts +0 -2
- package/dist/__tests__/fork/api.test.d.ts.map +0 -1
- package/dist/__tests__/fork/api.test.js +0 -115
- package/dist/__tests__/fork/api.test.js.map +0 -1
- package/dist/__tests__/fork/api.timeout.test.d.ts +0 -2
- package/dist/__tests__/fork/api.timeout.test.d.ts.map +0 -1
- package/dist/__tests__/fork/api.timeout.test.js +0 -98
- package/dist/__tests__/fork/api.timeout.test.js.map +0 -1
- package/dist/__tests__/harness/Harness.createLive.test.d.ts +0 -2
- package/dist/__tests__/harness/Harness.createLive.test.d.ts.map +0 -1
- package/dist/__tests__/harness/Harness.createLive.test.js +0 -53
- package/dist/__tests__/harness/Harness.createLive.test.js.map +0 -1
- package/dist/__tests__/harness/Harness.proxy.test.d.ts +0 -2
- package/dist/__tests__/harness/Harness.proxy.test.d.ts.map +0 -1
- package/dist/__tests__/harness/Harness.proxy.test.js +0 -89
- package/dist/__tests__/harness/Harness.proxy.test.js.map +0 -1
- package/dist/__tests__/harness/_fixture.d.ts +0 -54
- package/dist/__tests__/harness/_fixture.d.ts.map +0 -1
- package/dist/__tests__/harness/_fixture.js +0 -69
- package/dist/__tests__/harness/_fixture.js.map +0 -1
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts +0 -2
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts.map +0 -1
- package/dist/__tests__/harness/codeObject.deploy.test.js +0 -288
- package/dist/__tests__/harness/codeObject.deploy.test.js.map +0 -1
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts +0 -2
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts.map +0 -1
- package/dist/__tests__/harness/codeObject.upgrade.test.js +0 -138
- package/dist/__tests__/harness/codeObject.upgrade.test.js.map +0 -1
- package/dist/__tests__/harness/script.test.d.ts +0 -2
- package/dist/__tests__/harness/script.test.d.ts.map +0 -1
- package/dist/__tests__/harness/script.test.js +0 -219
- package/dist/__tests__/harness/script.test.js.map +0 -1
- package/dist/__tests__/harness/view.test.d.ts +0 -2
- package/dist/__tests__/harness/view.test.d.ts.map +0 -1
- package/dist/__tests__/harness/view.test.js +0 -92
- package/dist/__tests__/harness/view.test.js.map +0 -1
- package/dist/__tests__/runtime.test.d.ts +0 -2
- package/dist/__tests__/runtime.test.d.ts.map +0 -1
- package/dist/__tests__/runtime.test.js +0 -141
- package/dist/__tests__/runtime.test.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/__tests__/compile.test.d.ts +0 -2
- package/dist/commands/__tests__/compile.test.d.ts.map +0 -1
- package/dist/commands/__tests__/compile.test.js +0 -351
- package/dist/commands/__tests__/compile.test.js.map +0 -1
- package/dist/commands/__tests__/compile.toml-mutation.test.d.ts +0 -2
- package/dist/commands/__tests__/compile.toml-mutation.test.d.ts.map +0 -1
- package/dist/commands/__tests__/compile.toml-mutation.test.js +0 -69
- package/dist/commands/__tests__/compile.toml-mutation.test.js.map +0 -1
- package/dist/commands/__tests__/init.test.d.ts +0 -2
- package/dist/commands/__tests__/init.test.d.ts.map +0 -1
- package/dist/commands/__tests__/init.test.js +0 -163
- package/dist/commands/__tests__/init.test.js.map +0 -1
- package/dist/commands/__tests__/run.test.d.ts +0 -2
- package/dist/commands/__tests__/run.test.d.ts.map +0 -1
- package/dist/commands/__tests__/run.test.js +0 -166
- package/dist/commands/__tests__/run.test.js.map +0 -1
- package/dist/commands/__tests__/test-move.test.d.ts +0 -2
- package/dist/commands/__tests__/test-move.test.d.ts.map +0 -1
- package/dist/commands/__tests__/test-move.test.js +0 -59
- package/dist/commands/__tests__/test-move.test.js.map +0 -1
- package/dist/commands/__tests__/test.test.d.ts +0 -2
- package/dist/commands/__tests__/test.test.d.ts.map +0 -1
- package/dist/commands/__tests__/test.test.js +0 -168
- package/dist/commands/__tests__/test.test.js.map +0 -1
- package/dist/commands/__tests__/update.test.d.ts +0 -2
- package/dist/commands/__tests__/update.test.d.ts.map +0 -1
- package/dist/commands/__tests__/update.test.js +0 -176
- package/dist/commands/__tests__/update.test.js.map +0 -1
- package/dist/commands/compile.d.ts.map +0 -1
- package/dist/commands/compile.js.map +0 -1
- package/dist/commands/fork/__tests__/create.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/create.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/create.test.js +0 -108
- package/dist/commands/fork/__tests__/create.test.js.map +0 -1
- package/dist/commands/fork/__tests__/fund.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/fund.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/fund.test.js +0 -72
- package/dist/commands/fork/__tests__/fund.test.js.map +0 -1
- package/dist/commands/fork/__tests__/list.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/list.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/list.test.js +0 -119
- package/dist/commands/fork/__tests__/list.test.js.map +0 -1
- package/dist/commands/fork/__tests__/serve.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/serve.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/serve.test.js +0 -97
- package/dist/commands/fork/__tests__/serve.test.js.map +0 -1
- package/dist/commands/fork/__tests__/view-resource.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/view-resource.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/view-resource.test.js +0 -77
- package/dist/commands/fork/__tests__/view-resource.test.js.map +0 -1
- package/dist/commands/fork/create.d.ts.map +0 -1
- package/dist/commands/fork/create.js.map +0 -1
- package/dist/commands/fork/fund.d.ts.map +0 -1
- package/dist/commands/fork/fund.js.map +0 -1
- package/dist/commands/fork/list.d.ts.map +0 -1
- package/dist/commands/fork/list.js.map +0 -1
- package/dist/commands/fork/serve.d.ts.map +0 -1
- package/dist/commands/fork/serve.js.map +0 -1
- package/dist/commands/fork/view-resource.d.ts.map +0 -1
- package/dist/commands/fork/view-resource.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/test-move.d.ts.map +0 -1
- package/dist/commands/test-move.js.map +0 -1
- package/dist/commands/test.d.ts.map +0 -1
- package/dist/commands/test.js.map +0 -1
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js.map +0 -1
- package/dist/core/AccountManager.d.ts.map +0 -1
- package/dist/core/AccountManager.js.map +0 -1
- package/dist/core/Publisher.d.ts.map +0 -1
- package/dist/core/Publisher.js.map +0 -1
- package/dist/core/__tests__/AccountManager.global-state.test.d.ts +0 -2
- package/dist/core/__tests__/AccountManager.global-state.test.d.ts.map +0 -1
- package/dist/core/__tests__/AccountManager.global-state.test.js +0 -69
- package/dist/core/__tests__/AccountManager.global-state.test.js.map +0 -1
- package/dist/core/__tests__/AccountManager.test.d.ts +0 -2
- package/dist/core/__tests__/AccountManager.test.d.ts.map +0 -1
- package/dist/core/__tests__/AccountManager.test.js +0 -239
- package/dist/core/__tests__/AccountManager.test.js.map +0 -1
- package/dist/core/__tests__/config.test.d.ts +0 -2
- package/dist/core/__tests__/config.test.d.ts.map +0 -1
- package/dist/core/__tests__/config.test.js +0 -311
- package/dist/core/__tests__/config.test.js.map +0 -1
- package/dist/core/__tests__/deployments.test.d.ts +0 -2
- package/dist/core/__tests__/deployments.test.d.ts.map +0 -1
- package/dist/core/__tests__/deployments.test.js +0 -201
- package/dist/core/__tests__/deployments.test.js.map +0 -1
- package/dist/core/__tests__/movementProfile.test.d.ts +0 -2
- package/dist/core/__tests__/movementProfile.test.d.ts.map +0 -1
- package/dist/core/__tests__/movementProfile.test.js +0 -112
- package/dist/core/__tests__/movementProfile.test.js.map +0 -1
- package/dist/core/__tests__/shell.test.d.ts +0 -2
- package/dist/core/__tests__/shell.test.d.ts.map +0 -1
- package/dist/core/__tests__/shell.test.js +0 -107
- package/dist/core/__tests__/shell.test.js.map +0 -1
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/contract.d.ts.map +0 -1
- package/dist/core/contract.js.map +0 -1
- package/dist/core/deployments.d.ts.map +0 -1
- package/dist/core/deployments.js.map +0 -1
- package/dist/core/movementProfile.d.ts.map +0 -1
- package/dist/core/movementProfile.js.map +0 -1
- package/dist/core/shell.d.ts.map +0 -1
- package/dist/core/shell.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/fork/__tests__/manager.test.d.ts +0 -2
- package/dist/fork/__tests__/manager.test.d.ts.map +0 -1
- package/dist/fork/__tests__/manager.test.js +0 -309
- package/dist/fork/__tests__/manager.test.js.map +0 -1
- package/dist/fork/__tests__/server.cors.test.d.ts +0 -2
- package/dist/fork/__tests__/server.cors.test.d.ts.map +0 -1
- package/dist/fork/__tests__/server.cors.test.js +0 -79
- package/dist/fork/__tests__/server.cors.test.js.map +0 -1
- package/dist/fork/__tests__/server.test.d.ts +0 -2
- package/dist/fork/__tests__/server.test.d.ts.map +0 -1
- package/dist/fork/__tests__/server.test.js +0 -54
- package/dist/fork/__tests__/server.test.js.map +0 -1
- package/dist/fork/__tests__/storage.test.d.ts +0 -2
- package/dist/fork/__tests__/storage.test.d.ts.map +0 -1
- package/dist/fork/__tests__/storage.test.js +0 -222
- package/dist/fork/__tests__/storage.test.js.map +0 -1
- package/dist/fork/__tests__/test.test.d.ts +0 -2
- package/dist/fork/__tests__/test.test.d.ts.map +0 -1
- package/dist/fork/__tests__/test.test.js +0 -81
- package/dist/fork/__tests__/test.test.js.map +0 -1
- package/dist/fork/api.d.ts.map +0 -1
- package/dist/fork/api.js.map +0 -1
- package/dist/fork/manager.d.ts.map +0 -1
- package/dist/fork/manager.js.map +0 -1
- package/dist/fork/server.d.ts.map +0 -1
- package/dist/fork/server.js.map +0 -1
- package/dist/fork/storage.d.ts.map +0 -1
- package/dist/fork/storage.js.map +0 -1
- package/dist/fork/test.d.ts.map +0 -1
- package/dist/fork/test.js.map +0 -1
- package/dist/harness/Harness.d.ts.map +0 -1
- package/dist/harness/Harness.js.map +0 -1
- package/dist/harness/codeObject.d.ts.map +0 -1
- package/dist/harness/codeObject.js.map +0 -1
- package/dist/harness/errors.d.ts.map +0 -1
- package/dist/harness/errors.js.map +0 -1
- package/dist/harness/index.d.ts.map +0 -1
- package/dist/harness/index.js.map +0 -1
- package/dist/harness/proxy.d.ts.map +0 -1
- package/dist/harness/proxy.js.map +0 -1
- package/dist/harness/script.d.ts.map +0 -1
- package/dist/harness/script.js.map +0 -1
- package/dist/harness/view.d.ts.map +0 -1
- package/dist/harness/view.js.map +0 -1
- package/dist/helpers/__tests__/semver-utils.test.d.ts +0 -2
- package/dist/helpers/__tests__/semver-utils.test.d.ts.map +0 -1
- package/dist/helpers/__tests__/semver-utils.test.js +0 -103
- package/dist/helpers/__tests__/semver-utils.test.js.map +0 -1
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts +0 -2
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts.map +0 -1
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js +0 -172
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js.map +0 -1
- package/dist/helpers/assertions.d.ts.map +0 -1
- package/dist/helpers/assertions.js.map +0 -1
- package/dist/helpers/banner.d.ts.map +0 -1
- package/dist/helpers/banner.js.map +0 -1
- package/dist/helpers/index.d.ts.map +0 -1
- package/dist/helpers/index.js.map +0 -1
- package/dist/helpers/move-tests.d.ts.map +0 -1
- package/dist/helpers/move-tests.js.map +0 -1
- package/dist/helpers/npm-registry.d.ts.map +0 -1
- package/dist/helpers/npm-registry.js.map +0 -1
- package/dist/helpers/semver-utils.d.ts.map +0 -1
- package/dist/helpers/semver-utils.js.map +0 -1
- package/dist/helpers/setup.d.ts.map +0 -1
- package/dist/helpers/setup.js.map +0 -1
- package/dist/helpers/setupLocalTesting.d.ts.map +0 -1
- package/dist/helpers/setupLocalTesting.js.map +0 -1
- package/dist/helpers/testFixtures.d.ts.map +0 -1
- package/dist/helpers/testFixtures.js.map +0 -1
- package/dist/helpers/version-check.d.ts.map +0 -1
- package/dist/helpers/version-check.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/node/LocalNodeManager.d.ts.map +0 -1
- package/dist/node/LocalNodeManager.js.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts +0 -2
- package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.api-port.test.js +0 -55
- package/dist/node/__tests__/LocalNodeManager.api-port.test.js.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.test.d.ts +0 -2
- package/dist/node/__tests__/LocalNodeManager.test.d.ts.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.test.js +0 -449
- package/dist/node/__tests__/LocalNodeManager.test.js.map +0 -1
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js.map +0 -1
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js.map +0 -1
- package/dist/types/fork.d.ts.map +0 -1
- package/dist/types/fork.js.map +0 -1
- package/dist/types/harness.d.ts.map +0 -1
- package/dist/types/harness.js.map +0 -1
- package/dist/types/runtime.d.ts.map +0 -1
- package/dist/types/runtime.js.map +0 -1
- package/dist/ui/__tests__/colors.test.d.ts +0 -2
- package/dist/ui/__tests__/colors.test.d.ts.map +0 -1
- package/dist/ui/__tests__/colors.test.js +0 -127
- package/dist/ui/__tests__/colors.test.js.map +0 -1
- package/dist/ui/__tests__/logger.test.d.ts +0 -2
- package/dist/ui/__tests__/logger.test.d.ts.map +0 -1
- package/dist/ui/__tests__/logger.test.js +0 -75
- package/dist/ui/__tests__/logger.test.js.map +0 -1
- package/dist/ui/colors.d.ts.map +0 -1
- package/dist/ui/colors.js.map +0 -1
- package/dist/ui/formatters.d.ts.map +0 -1
- package/dist/ui/formatters.js.map +0 -1
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/logger.d.ts.map +0 -1
- package/dist/ui/logger.js.map +0 -1
- package/dist/ui/spinner.d.ts.map +0 -1
- package/dist/ui/spinner.js.map +0 -1
- package/dist/ui/symbols.d.ts.map +0 -1
- package/dist/ui/symbols.js.map +0 -1
- package/dist/ui/table.d.ts.map +0 -1
- package/dist/ui/table.js.map +0 -1
- package/dist/utils/__tests__/address.test.d.ts +0 -2
- package/dist/utils/__tests__/address.test.d.ts.map +0 -1
- package/dist/utils/__tests__/address.test.js +0 -70
- package/dist/utils/__tests__/address.test.js.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts +0 -2
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js +0 -43
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts +0 -2
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.test.js +0 -217
- package/dist/utils/__tests__/childProcessAdapter.test.js.map +0 -1
- package/dist/utils/__tests__/runCli.test.d.ts +0 -2
- package/dist/utils/__tests__/runCli.test.d.ts.map +0 -1
- package/dist/utils/__tests__/runCli.test.js +0 -187
- package/dist/utils/__tests__/runCli.test.js.map +0 -1
- package/dist/utils/address.d.ts.map +0 -1
- package/dist/utils/address.js.map +0 -1
- package/dist/utils/childProcessAdapter.d.ts.map +0 -1
- package/dist/utils/childProcessAdapter.js.map +0 -1
- package/dist/utils/parseCliOutput.d.ts.map +0 -1
- package/dist/utils/parseCliOutput.js.map +0 -1
- package/dist/utils/redact.d.ts.map +0 -1
- package/dist/utils/redact.js.map +0 -1
- package/dist/utils/runCli.d.ts.map +0 -1
- package/dist/utils/runCli.js.map +0 -1
- package/src/__tests__/deployContract.test.ts +0 -438
- package/src/__tests__/errors.test.ts +0 -84
- package/src/__tests__/exports.test.ts +0 -32
- package/src/__tests__/fixtures/sigint-deploy-harness.ts +0 -96
- package/src/__tests__/fork/api.test.ts +0 -148
- package/src/__tests__/fork/api.timeout.test.ts +0 -150
- package/src/__tests__/harness/Harness.createLive.test.ts +0 -57
- package/src/__tests__/harness/Harness.proxy.test.ts +0 -111
- package/src/__tests__/harness/_fixture.ts +0 -131
- package/src/__tests__/harness/codeObject.deploy.test.ts +0 -319
- package/src/__tests__/harness/codeObject.upgrade.test.ts +0 -156
- package/src/__tests__/harness/script.test.ts +0 -245
- package/src/__tests__/harness/view.test.ts +0 -104
- package/src/__tests__/runtime.test.ts +0 -182
- package/src/cli.ts +0 -164
- package/src/commands/__tests__/compile.test.ts +0 -407
- package/src/commands/__tests__/compile.toml-mutation.test.ts +0 -77
- package/src/commands/__tests__/init.test.ts +0 -210
- package/src/commands/__tests__/run.test.ts +0 -192
- package/src/commands/__tests__/test-move.test.ts +0 -81
- package/src/commands/__tests__/test.test.ts +0 -204
- package/src/commands/__tests__/update.test.ts +0 -223
- package/src/commands/compile.ts +0 -339
- package/src/commands/fork/__tests__/create.test.ts +0 -132
- package/src/commands/fork/__tests__/fund.test.ts +0 -104
- package/src/commands/fork/__tests__/list.test.ts +0 -139
- package/src/commands/fork/__tests__/serve.test.ts +0 -121
- package/src/commands/fork/__tests__/view-resource.test.ts +0 -101
- package/src/commands/fork/create.ts +0 -110
- package/src/commands/fork/fund.ts +0 -64
- package/src/commands/fork/list.ts +0 -98
- package/src/commands/fork/serve.ts +0 -80
- package/src/commands/fork/view-resource.ts +0 -51
- package/src/commands/init.ts +0 -264
- package/src/commands/run.ts +0 -125
- package/src/commands/test-move.ts +0 -27
- package/src/commands/test.ts +0 -255
- package/src/commands/update.ts +0 -201
- package/src/core/AccountManager.ts +0 -457
- package/src/core/Publisher.ts +0 -310
- package/src/core/__tests__/AccountManager.global-state.test.ts +0 -83
- package/src/core/__tests__/AccountManager.test.ts +0 -290
- package/src/core/__tests__/config.test.ts +0 -377
- package/src/core/__tests__/deployments.test.ts +0 -247
- package/src/core/__tests__/movementProfile.test.ts +0 -131
- package/src/core/__tests__/shell.test.ts +0 -138
- package/src/core/config.ts +0 -286
- package/src/core/contract.ts +0 -103
- package/src/core/deployments.ts +0 -155
- package/src/core/movementProfile.ts +0 -127
- package/src/core/shell.ts +0 -86
- package/src/errors.ts +0 -81
- package/src/fork/__tests__/manager.test.ts +0 -385
- package/src/fork/__tests__/server.cors.test.ts +0 -101
- package/src/fork/__tests__/server.test.ts +0 -65
- package/src/fork/__tests__/storage.test.ts +0 -281
- package/src/fork/__tests__/test.test.ts +0 -97
- package/src/fork/api.ts +0 -190
- package/src/fork/manager.ts +0 -343
- package/src/fork/server.ts +0 -380
- package/src/fork/storage.ts +0 -253
- package/src/fork/test.ts +0 -221
- package/src/harness/Harness.ts +0 -231
- package/src/harness/codeObject.ts +0 -381
- package/src/harness/errors.ts +0 -22
- package/src/harness/index.ts +0 -3
- package/src/harness/proxy.ts +0 -40
- package/src/harness/script.ts +0 -200
- package/src/harness/view.ts +0 -34
- package/src/helpers/__tests__/semver-utils.test.ts +0 -121
- package/src/helpers/__tests__/setupLocalTesting.fork-network.test.ts +0 -212
- package/src/helpers/assertions.ts +0 -29
- package/src/helpers/banner.ts +0 -63
- package/src/helpers/index.ts +0 -37
- package/src/helpers/move-tests.ts +0 -72
- package/src/helpers/npm-registry.ts +0 -72
- package/src/helpers/semver-utils.ts +0 -54
- package/src/helpers/setup.ts +0 -54
- package/src/helpers/setupLocalTesting.ts +0 -387
- package/src/helpers/testFixtures.ts +0 -210
- package/src/helpers/version-check.ts +0 -114
- package/src/index.ts +0 -30
- package/src/node/LocalNodeManager.ts +0 -383
- package/src/node/__tests__/LocalNodeManager.api-port.test.ts +0 -62
- package/src/node/__tests__/LocalNodeManager.test.ts +0 -579
- package/src/runtime.ts +0 -157
- package/src/templates/.env.example +0 -9
- package/src/templates/.mocharc.json +0 -8
- package/src/templates/.vscode/settings.json +0 -11
- package/src/templates/README.md +0 -146
- package/src/templates/gitignore +0 -22
- package/src/templates/move/Move.toml +0 -19
- package/src/templates/move/sources/Counter.move +0 -96
- package/src/templates/movehat.config.ts +0 -57
- package/src/templates/package.json +0 -27
- package/src/templates/scripts/deploy-counter.ts +0 -66
- package/src/templates/tests/Counter.test.ts +0 -113
- package/src/templates/tsconfig.json +0 -15
- package/src/templates/types/movehat.d.ts +0 -101
- package/src/types/config.ts +0 -83
- package/src/types/fork.ts +0 -47
- package/src/types/harness.ts +0 -182
- package/src/types/runtime.ts +0 -57
- package/src/ui/__tests__/colors.test.ts +0 -156
- package/src/ui/__tests__/logger.test.ts +0 -89
- package/src/ui/colors.ts +0 -144
- package/src/ui/formatters.ts +0 -246
- package/src/ui/index.ts +0 -62
- package/src/ui/logger.ts +0 -310
- package/src/ui/spinner.ts +0 -218
- package/src/ui/symbols.ts +0 -80
- package/src/ui/table.ts +0 -191
- package/src/utils/__tests__/address.test.ts +0 -93
- package/src/utils/__tests__/childProcessAdapter.maxBuffer.test.ts +0 -51
- package/src/utils/__tests__/childProcessAdapter.test.ts +0 -266
- package/src/utils/__tests__/runCli.test.ts +0 -240
- package/src/utils/address.ts +0 -52
- package/src/utils/childProcessAdapter.ts +0 -244
- package/src/utils/parseCliOutput.ts +0 -27
- package/src/utils/redact.ts +0 -24
- package/src/utils/runCli.ts +0 -64
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import type { ClientRequest, IncomingMessage } from "node:http";
|
|
3
|
-
import { EventEmitter } from "node:events";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Tests for `MovementApiClient` Authorization header injection —
|
|
7
|
-
* verifies the apiKey threading from `Harness.createFork`.
|
|
8
|
-
*
|
|
9
|
-
* Strategy: `vi.mock` `node:https` and `node:http` so the test
|
|
10
|
-
* captures the request options passed to `client.get(url, options, cb)`
|
|
11
|
-
* without making real network requests. Two assertions:
|
|
12
|
-
*
|
|
13
|
-
* 1. When the client is constructed with an apiKey, every `get`
|
|
14
|
-
* call carries `Authorization: Bearer <apiKey>` in
|
|
15
|
-
* `options.headers`.
|
|
16
|
-
* 2. When constructed without an apiKey, no Authorization header
|
|
17
|
-
* is added (back-compat for unauthenticated public endpoints).
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
const httpsGet = vi.fn();
|
|
21
|
-
const httpGet = vi.fn();
|
|
22
|
-
|
|
23
|
-
vi.mock("https", () => ({
|
|
24
|
-
default: { get: httpsGet },
|
|
25
|
-
get: httpsGet,
|
|
26
|
-
}));
|
|
27
|
-
vi.mock("http", () => ({
|
|
28
|
-
default: { get: httpGet },
|
|
29
|
-
get: httpGet,
|
|
30
|
-
}));
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Build a fake `IncomingMessage`-like emitter that immediately emits
|
|
34
|
-
* a valid JSON body and ends. The MovementApiClient.get callback
|
|
35
|
-
* consumes the response via `data` / `end` events.
|
|
36
|
-
*/
|
|
37
|
-
function makeFakeResponse(body: string, statusCode = 200): IncomingMessage {
|
|
38
|
-
const res = new EventEmitter() as unknown as IncomingMessage;
|
|
39
|
-
(res as unknown as { statusCode: number }).statusCode = statusCode;
|
|
40
|
-
// Use setImmediate so the listener attaches before the events fire.
|
|
41
|
-
setImmediate(() => {
|
|
42
|
-
(res as unknown as EventEmitter).emit("data", body);
|
|
43
|
-
(res as unknown as EventEmitter).emit("end");
|
|
44
|
-
});
|
|
45
|
-
return res;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Capture the options arg from `client.get(url, options, callback)`
|
|
50
|
-
* and immediately resolve with a fake successful ledger-info response.
|
|
51
|
-
* Returns the captured options for assertion.
|
|
52
|
-
*/
|
|
53
|
-
function setupGetCapture(): {
|
|
54
|
-
captured: { url?: string; options?: { headers?: Record<string, string> } };
|
|
55
|
-
} {
|
|
56
|
-
const captured: {
|
|
57
|
-
url?: string;
|
|
58
|
-
options?: { headers?: Record<string, string> };
|
|
59
|
-
} = {};
|
|
60
|
-
|
|
61
|
-
const handler = (
|
|
62
|
-
url: string,
|
|
63
|
-
options:
|
|
64
|
-
| { headers?: Record<string, string> }
|
|
65
|
-
| ((res: IncomingMessage) => void),
|
|
66
|
-
cb?: (res: IncomingMessage) => void
|
|
67
|
-
): ClientRequest => {
|
|
68
|
-
captured.url = url;
|
|
69
|
-
// Distinguish (url, callback) vs (url, options, callback) overloads.
|
|
70
|
-
let callback: ((res: IncomingMessage) => void) | undefined;
|
|
71
|
-
if (typeof options === "function") {
|
|
72
|
-
callback = options;
|
|
73
|
-
} else {
|
|
74
|
-
captured.options = options;
|
|
75
|
-
callback = cb;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const fakeReq = new EventEmitter() as unknown as ClientRequest;
|
|
79
|
-
(fakeReq as unknown as { end: () => void }).end = () => {};
|
|
80
|
-
// F3: api.ts now installs a setTimeout on the request and may call
|
|
81
|
-
// destroy() on overflow / timeout. Stub both so this happy-path
|
|
82
|
-
// capture mock still satisfies the new contract.
|
|
83
|
-
(fakeReq as unknown as { setTimeout: (ms: number, cb?: () => void) => void }).setTimeout = () => {};
|
|
84
|
-
(fakeReq as unknown as { destroy: () => void }).destroy = () => {};
|
|
85
|
-
|
|
86
|
-
if (callback) {
|
|
87
|
-
const body = JSON.stringify({
|
|
88
|
-
chain_id: 250,
|
|
89
|
-
ledger_version: "1",
|
|
90
|
-
ledger_timestamp: "0",
|
|
91
|
-
epoch: "0",
|
|
92
|
-
block_height: "0",
|
|
93
|
-
});
|
|
94
|
-
callback(makeFakeResponse(body));
|
|
95
|
-
}
|
|
96
|
-
return fakeReq;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
httpsGet.mockImplementation(handler);
|
|
100
|
-
httpGet.mockImplementation(handler);
|
|
101
|
-
|
|
102
|
-
return { captured };
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
describe("MovementApiClient — Authorization header (apiKey wiring)", () => {
|
|
106
|
-
beforeEach(() => {
|
|
107
|
-
httpsGet.mockReset();
|
|
108
|
-
httpGet.mockReset();
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
afterEach(() => {
|
|
112
|
-
vi.restoreAllMocks();
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
it("injects 'Authorization: Bearer <apiKey>' when constructed with an apiKey", async () => {
|
|
116
|
-
const { captured } = setupGetCapture();
|
|
117
|
-
|
|
118
|
-
const { MovementApiClient } = await import("../../fork/api.js");
|
|
119
|
-
const client = new MovementApiClient(
|
|
120
|
-
"https://testnet.example.com/v1",
|
|
121
|
-
"secret-key-123"
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
await client.getLedgerInfo();
|
|
125
|
-
|
|
126
|
-
expect(captured.url).toBe("https://testnet.example.com/v1/");
|
|
127
|
-
expect(captured.options).toBeDefined();
|
|
128
|
-
expect(captured.options?.headers).toEqual({
|
|
129
|
-
Authorization: "Bearer secret-key-123",
|
|
130
|
-
});
|
|
131
|
-
expect(httpsGet).toHaveBeenCalledTimes(1);
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
it("omits the Authorization header when constructed without an apiKey (back-compat)", async () => {
|
|
135
|
-
const { captured } = setupGetCapture();
|
|
136
|
-
|
|
137
|
-
const { MovementApiClient } = await import("../../fork/api.js");
|
|
138
|
-
const client = new MovementApiClient("https://testnet.example.com/v1");
|
|
139
|
-
|
|
140
|
-
await client.getLedgerInfo();
|
|
141
|
-
|
|
142
|
-
expect(captured.url).toBe("https://testnet.example.com/v1/");
|
|
143
|
-
if (captured.options !== undefined) {
|
|
144
|
-
expect(captured.options.headers).toBeUndefined();
|
|
145
|
-
}
|
|
146
|
-
expect(httpsGet).toHaveBeenCalledTimes(1);
|
|
147
|
-
});
|
|
148
|
-
});
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import type { ClientRequest, IncomingMessage } from "node:http";
|
|
3
|
-
import { EventEmitter } from "node:events";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* F3 — MovementApiClient must bound responses by time AND bytes.
|
|
7
|
-
*
|
|
8
|
-
* Without these guards a malicious / hung upstream can:
|
|
9
|
-
* - leak the request promise forever (never emits 'end'), or
|
|
10
|
-
* - exhaust heap by pushing unbounded `data` chunks.
|
|
11
|
-
*
|
|
12
|
-
* Strategy mirrors src/__tests__/fork/api.test.ts: vi.mock node:http
|
|
13
|
-
* and node:https, intercept `client.get(url, options, cb)`, and feed
|
|
14
|
-
* a controllable `IncomingMessage` to the callback. The fake
|
|
15
|
-
* `ClientRequest` exposes `setTimeout`, `destroy`, and emits 'error' /
|
|
16
|
-
* 'timeout' so we can drive the failure modes from the test.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
interface FakeReq extends EventEmitter {
|
|
20
|
-
end(): void;
|
|
21
|
-
destroy(err?: Error): void;
|
|
22
|
-
setTimeout(ms: number, cb?: () => void): void;
|
|
23
|
-
destroyed: boolean;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const httpsGet = vi.fn();
|
|
27
|
-
const httpGet = vi.fn();
|
|
28
|
-
|
|
29
|
-
vi.mock("https", () => ({ default: { get: httpsGet }, get: httpsGet }));
|
|
30
|
-
vi.mock("http", () => ({ default: { get: httpGet }, get: httpGet }));
|
|
31
|
-
|
|
32
|
-
function makeFakeReq(): FakeReq {
|
|
33
|
-
const req = new EventEmitter() as FakeReq;
|
|
34
|
-
req.destroyed = false;
|
|
35
|
-
let timeoutHandle: NodeJS.Timeout | undefined;
|
|
36
|
-
req.end = () => {};
|
|
37
|
-
req.destroy = (err?: Error) => {
|
|
38
|
-
req.destroyed = true;
|
|
39
|
-
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
40
|
-
setImmediate(() => req.emit("error", err ?? new Error("destroyed")));
|
|
41
|
-
};
|
|
42
|
-
req.setTimeout = (ms: number, cb?: () => void) => {
|
|
43
|
-
timeoutHandle = setTimeout(() => {
|
|
44
|
-
req.emit("timeout");
|
|
45
|
-
if (cb) cb();
|
|
46
|
-
}, ms);
|
|
47
|
-
// Don't keep the event loop alive — Node sets this itself but the
|
|
48
|
-
// mock has no native socket to inherit from.
|
|
49
|
-
timeoutHandle.unref?.();
|
|
50
|
-
};
|
|
51
|
-
return req;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function makeUnresolvableResponse(): IncomingMessage {
|
|
55
|
-
const res = new EventEmitter() as unknown as IncomingMessage;
|
|
56
|
-
(res as unknown as { statusCode: number }).statusCode = 200;
|
|
57
|
-
return res;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function makeStreamingResponse(
|
|
61
|
-
bytesPerChunk: number,
|
|
62
|
-
chunks: number
|
|
63
|
-
): IncomingMessage {
|
|
64
|
-
const res = new EventEmitter() as unknown as IncomingMessage;
|
|
65
|
-
(res as unknown as { statusCode: number }).statusCode = 200;
|
|
66
|
-
setImmediate(() => {
|
|
67
|
-
let i = 0;
|
|
68
|
-
const pump = () => {
|
|
69
|
-
if (i >= chunks) {
|
|
70
|
-
(res as unknown as EventEmitter).emit("end");
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
(res as unknown as EventEmitter).emit(
|
|
74
|
-
"data",
|
|
75
|
-
Buffer.alloc(bytesPerChunk, 0x61)
|
|
76
|
-
);
|
|
77
|
-
i++;
|
|
78
|
-
setImmediate(pump);
|
|
79
|
-
};
|
|
80
|
-
pump();
|
|
81
|
-
});
|
|
82
|
-
return res;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
describe("F3 — MovementApiClient timeouts and byte cap", () => {
|
|
86
|
-
beforeEach(() => {
|
|
87
|
-
httpsGet.mockReset();
|
|
88
|
-
httpGet.mockReset();
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
afterEach(() => {
|
|
92
|
-
vi.restoreAllMocks();
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
it("rejects with a timeout error when the upstream never responds", async () => {
|
|
96
|
-
const fakeReq = makeFakeReq();
|
|
97
|
-
httpGet.mockImplementation(
|
|
98
|
-
(
|
|
99
|
-
_url: string,
|
|
100
|
-
options: unknown,
|
|
101
|
-
cb?: (res: IncomingMessage) => void
|
|
102
|
-
) => {
|
|
103
|
-
const callback =
|
|
104
|
-
typeof options === "function"
|
|
105
|
-
? (options as (r: IncomingMessage) => void)
|
|
106
|
-
: cb;
|
|
107
|
-
if (callback) callback(makeUnresolvableResponse());
|
|
108
|
-
return fakeReq as unknown as ClientRequest;
|
|
109
|
-
}
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
const { MovementApiClient } = await import("../../fork/api.js");
|
|
113
|
-
const client = new MovementApiClient("http://hung.example/v1", undefined, {
|
|
114
|
-
timeoutMs: 25,
|
|
115
|
-
maxBytes: 1024 * 1024,
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
await expect(client.getLedgerInfo()).rejects.toThrow(/timed out|timeout/i);
|
|
119
|
-
expect(fakeReq.destroyed).toBe(true);
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
it("rejects and destroys the request when the response exceeds maxBytes", async () => {
|
|
123
|
-
const fakeReq = makeFakeReq();
|
|
124
|
-
httpGet.mockImplementation(
|
|
125
|
-
(
|
|
126
|
-
_url: string,
|
|
127
|
-
options: unknown,
|
|
128
|
-
cb?: (res: IncomingMessage) => void
|
|
129
|
-
) => {
|
|
130
|
-
const callback =
|
|
131
|
-
typeof options === "function"
|
|
132
|
-
? (options as (r: IncomingMessage) => void)
|
|
133
|
-
: cb;
|
|
134
|
-
if (callback) callback(makeStreamingResponse(2048, 100));
|
|
135
|
-
return fakeReq as unknown as ClientRequest;
|
|
136
|
-
}
|
|
137
|
-
);
|
|
138
|
-
|
|
139
|
-
const { MovementApiClient } = await import("../../fork/api.js");
|
|
140
|
-
const client = new MovementApiClient("http://big.example/v1", undefined, {
|
|
141
|
-
timeoutMs: 5000,
|
|
142
|
-
maxBytes: 4096,
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
await expect(client.getLedgerInfo()).rejects.toThrow(
|
|
146
|
-
/maxBytes|too large|exceeded/i
|
|
147
|
-
);
|
|
148
|
-
expect(fakeReq.destroyed).toBe(true);
|
|
149
|
-
});
|
|
150
|
-
});
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
2
|
-
|
|
3
|
-
import { Harness } from "../../harness/index.js";
|
|
4
|
-
import { setupHarnessTestFixture, type HarnessTestFixture } from "./_fixture.js";
|
|
5
|
-
|
|
6
|
-
describe("Harness.createLive", () => {
|
|
7
|
-
let fixture: HarnessTestFixture;
|
|
8
|
-
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
fixture = setupHarnessTestFixture({
|
|
11
|
-
extraNetworks: {
|
|
12
|
-
custom: {
|
|
13
|
-
url: "https://custom.example.com/v1",
|
|
14
|
-
chainId: "custom",
|
|
15
|
-
accounts: ["0x" + "a".repeat(64)],
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
afterEach(() => {
|
|
22
|
-
fixture.teardown();
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it("returns a Harness bound to the requested network with mode='live'", async () => {
|
|
26
|
-
const harness = await Harness.createLive("testnet");
|
|
27
|
-
try {
|
|
28
|
-
expect(harness.mode).toBe("live");
|
|
29
|
-
expect(harness.runtime).toBeDefined();
|
|
30
|
-
expect(harness.runtime.network.name).toBe("testnet");
|
|
31
|
-
expect(harness.runtime.network.rpc).toContain("testnet.movementnetwork.xyz");
|
|
32
|
-
// createLive does not own a local node or fork server.
|
|
33
|
-
expect(harness.localNode).toBeUndefined();
|
|
34
|
-
expect(harness.forkServer).toBeUndefined();
|
|
35
|
-
expect(harness.forkManager).toBeUndefined();
|
|
36
|
-
} finally {
|
|
37
|
-
await harness.cleanup();
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it("can switch networks via the first argument", async () => {
|
|
42
|
-
const harness = await Harness.createLive("custom");
|
|
43
|
-
try {
|
|
44
|
-
expect(harness.runtime.network.name).toBe("custom");
|
|
45
|
-
expect(harness.runtime.network.rpc).toContain("custom.example.com");
|
|
46
|
-
} finally {
|
|
47
|
-
await harness.cleanup();
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it("cleanup() is a no-op for createLive (no owned services) but still poisons", async () => {
|
|
52
|
-
const harness = await Harness.createLive("testnet");
|
|
53
|
-
expect(harness.poisoned).toBe(false);
|
|
54
|
-
await harness.cleanup();
|
|
55
|
-
expect(harness.poisoned).toBe(true);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
2
|
-
|
|
3
|
-
import { Harness, HarnessDisposedError } from "../../harness/index.js";
|
|
4
|
-
import { setupHarnessTestFixture, type HarnessTestFixture } from "./_fixture.js";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Proxy poisoning is the load-bearing safety guarantee of the Harness:
|
|
8
|
-
* once cleaned up, any further deploy / view / script / upgrade call
|
|
9
|
-
* must throw `HarnessDisposedError` synchronously on property access —
|
|
10
|
-
* not after the awaited method body. These tests lock that contract.
|
|
11
|
-
*
|
|
12
|
-
* Uses `Harness.createLive(network)` because it does not spawn a real
|
|
13
|
-
* Movement node — `initRuntime` only constructs the SDK client (no RPC
|
|
14
|
-
* round-trip) from the fixture config. `createLocal` / `createFork`
|
|
15
|
-
* runtime tests live in the integration suite.
|
|
16
|
-
*/
|
|
17
|
-
describe("Harness — proxy poisoning", () => {
|
|
18
|
-
let fixture: HarnessTestFixture;
|
|
19
|
-
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
fixture = setupHarnessTestFixture();
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
afterEach(() => {
|
|
25
|
-
fixture.teardown();
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it("cleanup() flips poisoned to true", async () => {
|
|
29
|
-
const harness = await Harness.createLive("testnet");
|
|
30
|
-
expect(harness.poisoned).toBe(false);
|
|
31
|
-
await harness.cleanup();
|
|
32
|
-
expect(harness.poisoned).toBe(true);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it("cleanup() is idempotent", async () => {
|
|
36
|
-
const harness = await Harness.createLive("testnet");
|
|
37
|
-
await harness.cleanup();
|
|
38
|
-
// Second call must not throw and must leave the harness poisoned.
|
|
39
|
-
await expect(harness.cleanup()).resolves.toBeUndefined();
|
|
40
|
-
expect(harness.poisoned).toBe(true);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it("post-cleanup, deployCodeObject throws HarnessDisposedError synchronously on property access", async () => {
|
|
44
|
-
const harness = await Harness.createLive("testnet");
|
|
45
|
-
await harness.cleanup();
|
|
46
|
-
|
|
47
|
-
// Property access itself throws — the call site never gets a Promise back.
|
|
48
|
-
// The args ({moduleName: "x"}) typecheck but never execute (the get trap
|
|
49
|
-
// fires before the method body runs).
|
|
50
|
-
expect(() => harness.deployCodeObject({ moduleName: "x" })).toThrow(
|
|
51
|
-
HarnessDisposedError
|
|
52
|
-
);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it("post-cleanup, upgradeCodeObject / runViewFunction / runMoveScript all throw HarnessDisposedError synchronously", async () => {
|
|
56
|
-
const harness = await Harness.createLive("testnet");
|
|
57
|
-
await harness.cleanup();
|
|
58
|
-
|
|
59
|
-
expect(() =>
|
|
60
|
-
harness.upgradeCodeObject({ moduleName: "x", objectAddress: "0x1" })
|
|
61
|
-
).toThrow(HarnessDisposedError);
|
|
62
|
-
expect(() =>
|
|
63
|
-
harness.runViewFunction({ function: "0x1::m::f" })
|
|
64
|
-
).toThrow(HarnessDisposedError);
|
|
65
|
-
expect(() =>
|
|
66
|
-
harness.runMoveScript({ scriptPath: "irrelevant.move" })
|
|
67
|
-
).toThrow(HarnessDisposedError);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it("HarnessDisposedError carries the offending method name", async () => {
|
|
71
|
-
const harness = await Harness.createLive("testnet");
|
|
72
|
-
await harness.cleanup();
|
|
73
|
-
|
|
74
|
-
let captured: unknown;
|
|
75
|
-
try {
|
|
76
|
-
harness.deployCodeObject({ moduleName: "x" });
|
|
77
|
-
} catch (err) {
|
|
78
|
-
captured = err;
|
|
79
|
-
}
|
|
80
|
-
expect(captured).toBeInstanceOf(HarnessDisposedError);
|
|
81
|
-
expect((captured as HarnessDisposedError).methodName).toBe("deployCodeObject");
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
it("post-cleanup, metadata accessors (mode, poisoned, runtime) still work", async () => {
|
|
85
|
-
const harness = await Harness.createLive("testnet");
|
|
86
|
-
await harness.cleanup();
|
|
87
|
-
|
|
88
|
-
// None of these should throw — only the 4 poisoned methods do.
|
|
89
|
-
expect(harness.mode).toBe("live");
|
|
90
|
-
expect(harness.poisoned).toBe(true);
|
|
91
|
-
expect(harness.runtime).toBeDefined();
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
// Dedicated suites exist for each of the four methods
|
|
95
|
-
// (codeObject.deploy/upgrade.test.ts, view.test.ts, script.test.ts).
|
|
96
|
-
|
|
97
|
-
it("await harness.someAsyncMethod() pattern: post-cleanup throw happens before await", async () => {
|
|
98
|
-
const harness = await Harness.createLive("testnet");
|
|
99
|
-
await harness.cleanup();
|
|
100
|
-
|
|
101
|
-
// The error is synchronous (property access), but the typical caller
|
|
102
|
-
// shape uses await. Confirm that pattern surfaces the error too.
|
|
103
|
-
let captured: unknown;
|
|
104
|
-
try {
|
|
105
|
-
await harness.deployCodeObject({ moduleName: "x" });
|
|
106
|
-
} catch (err) {
|
|
107
|
-
captured = err;
|
|
108
|
-
}
|
|
109
|
-
expect(captured).toBeInstanceOf(HarnessDisposedError);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { tmpdir } from "node:os";
|
|
3
|
-
import { join } from "node:path";
|
|
4
|
-
import { _resetConfigCache } from "../../core/config.js";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Shared test fixture for Harness tests.
|
|
8
|
-
*
|
|
9
|
-
* Six test files in `__tests__/harness/` all needed the same setup
|
|
10
|
-
* boilerplate (~30 LoC each) before this helper landed: tmpdir for
|
|
11
|
-
* cwd, write a `movehat.config.js`, write a minimal Move package
|
|
12
|
-
* (`move/Move.toml` + `move/sources/dummy.move`), chdir, reset the
|
|
13
|
-
* mtime-based config cache, manage HOME for tests that exercise
|
|
14
|
-
* `~/.aptos/config.yaml` profile management. Extracted as a single
|
|
15
|
-
* helper to eliminate the drift surface across siblings.
|
|
16
|
-
*
|
|
17
|
-
* The defaults match the most common test shape: a single `testnet`
|
|
18
|
-
* network and no HOME management. Tests that need more (a `custom`
|
|
19
|
-
* network for switching, an isolated HOME for profile tests) opt in
|
|
20
|
-
* via the options.
|
|
21
|
-
*
|
|
22
|
-
* @internal — not exported from `src/index.ts`. Test-only.
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Additional networks to merge into the fixture's `movehat.config.js`.
|
|
27
|
-
* Keyed by network name. Each network needs `url` + `chainId` at
|
|
28
|
-
* minimum; pass `accounts` when the test exercises a code path that
|
|
29
|
-
* requires explicit account configuration (e.g. mainnet-like security
|
|
30
|
-
* checks in `resolveNetworkConfig`).
|
|
31
|
-
*/
|
|
32
|
-
export interface ExtraNetwork {
|
|
33
|
-
url: string;
|
|
34
|
-
chainId: string;
|
|
35
|
-
accounts?: string[];
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface HarnessTestFixtureOptions {
|
|
39
|
-
/** Additional networks merged on top of the default `testnet` entry. */
|
|
40
|
-
extraNetworks?: Record<string, ExtraNetwork>;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* When `true`, manage a separate `process.env.HOME` directory for
|
|
44
|
-
* the test. Used by tests that exercise `~/.aptos/config.yaml`
|
|
45
|
-
* profile writes (codeObject.* and script.* test suites).
|
|
46
|
-
*/
|
|
47
|
-
withTmpHome?: boolean;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface HarnessTestFixture {
|
|
51
|
-
/** Fresh per-test cwd. The test is chdir'd here. */
|
|
52
|
-
tmpCwd: string;
|
|
53
|
-
/** Fresh per-test HOME, only set when `withTmpHome: true`. */
|
|
54
|
-
tmpHome?: string;
|
|
55
|
-
/** Restore cwd + HOME, remove the tmp dirs, and reset config cache. */
|
|
56
|
-
teardown: () => void;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Build a fresh per-test fixture. Call from `beforeEach`, capture the
|
|
61
|
-
* returned object, and call `fixture.teardown()` in `afterEach`.
|
|
62
|
-
*/
|
|
63
|
-
export function setupHarnessTestFixture(
|
|
64
|
-
options: HarnessTestFixtureOptions = {}
|
|
65
|
-
): HarnessTestFixture {
|
|
66
|
-
const tmpCwd = mkdtempSync(join(tmpdir(), "movehat-harness-test-"));
|
|
67
|
-
const tmpHome = options.withTmpHome
|
|
68
|
-
? mkdtempSync(join(tmpdir(), "movehat-harness-home-"))
|
|
69
|
-
: undefined;
|
|
70
|
-
|
|
71
|
-
// Build the network map. Default `testnet` + caller's extras.
|
|
72
|
-
const networks: Record<string, ExtraNetwork> = {
|
|
73
|
-
testnet: {
|
|
74
|
-
url: "https://testnet.movementnetwork.xyz/v1",
|
|
75
|
-
chainId: "testnet",
|
|
76
|
-
},
|
|
77
|
-
...(options.extraNetworks ?? {}),
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
writeFileSync(
|
|
81
|
-
join(tmpCwd, "movehat.config.js"),
|
|
82
|
-
`export default {
|
|
83
|
-
defaultNetwork: "testnet",
|
|
84
|
-
networks: ${JSON.stringify(networks, null, 2)}
|
|
85
|
-
};
|
|
86
|
-
`
|
|
87
|
-
);
|
|
88
|
-
|
|
89
|
-
// Minimal Move package — `extractNamedAddresses` reads from
|
|
90
|
-
// `<moveDir>/sources/*.move`; an empty file yields an empty Set.
|
|
91
|
-
const moveDir = join(tmpCwd, "move");
|
|
92
|
-
mkdirSync(join(moveDir, "sources"), { recursive: true });
|
|
93
|
-
writeFileSync(
|
|
94
|
-
join(moveDir, "Move.toml"),
|
|
95
|
-
`[package]
|
|
96
|
-
name = "dummy"
|
|
97
|
-
version = "0.0.1"
|
|
98
|
-
|
|
99
|
-
[addresses]
|
|
100
|
-
`
|
|
101
|
-
);
|
|
102
|
-
writeFileSync(join(moveDir, "sources", "dummy.move"), "// intentionally empty\n");
|
|
103
|
-
|
|
104
|
-
const origCwd = process.cwd();
|
|
105
|
-
const origHome = process.env.HOME;
|
|
106
|
-
process.chdir(tmpCwd);
|
|
107
|
-
if (tmpHome !== undefined) process.env.HOME = tmpHome;
|
|
108
|
-
_resetConfigCache();
|
|
109
|
-
|
|
110
|
-
const teardown = () => {
|
|
111
|
-
try {
|
|
112
|
-
process.chdir(origCwd);
|
|
113
|
-
} finally {
|
|
114
|
-
if (options.withTmpHome) {
|
|
115
|
-
if (origHome === undefined) delete process.env.HOME;
|
|
116
|
-
else process.env.HOME = origHome;
|
|
117
|
-
if (tmpHome !== undefined && existsSync(tmpHome)) {
|
|
118
|
-
rmSync(tmpHome, { recursive: true, force: true });
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
if (existsSync(tmpCwd)) {
|
|
122
|
-
rmSync(tmpCwd, { recursive: true, force: true });
|
|
123
|
-
}
|
|
124
|
-
_resetConfigCache();
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const fixture: HarnessTestFixture = { tmpCwd, teardown };
|
|
129
|
-
if (tmpHome !== undefined) fixture.tmpHome = tmpHome;
|
|
130
|
-
return fixture;
|
|
131
|
-
}
|