movehat 0.2.3 → 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 +15 -2
- package/dist/fork/manager.js +20 -2
- 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 +2 -3
- 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 +1 -2
- package/dist/node/LocalNodeManager.js +6 -4
- 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
package/src/core/deployments.ts
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
|
|
2
|
-
import { join } from "path";
|
|
3
|
-
import { logger } from "../ui/index.js";
|
|
4
|
-
|
|
5
|
-
export interface DeploymentInfo {
|
|
6
|
-
address: string;
|
|
7
|
-
moduleName: string;
|
|
8
|
-
network: string;
|
|
9
|
-
deployer: string;
|
|
10
|
-
timestamp: number;
|
|
11
|
-
txHash?: string | undefined;
|
|
12
|
-
blockNumber?: string | undefined;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Validates that a name is safe for use in file paths
|
|
17
|
-
* Only allows alphanumeric characters, hyphens, and underscores
|
|
18
|
-
* Prevents path traversal attacks
|
|
19
|
-
*/
|
|
20
|
-
export function validateSafeName(name: string, type: "network" | "module"): void {
|
|
21
|
-
if (!name || typeof name !== "string") {
|
|
22
|
-
throw new Error(`Invalid ${type} name: must be a non-empty string`);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Check for path traversal sequences
|
|
26
|
-
if (name.includes("..") || name.includes("/") || name.includes("\\")) {
|
|
27
|
-
throw new Error(
|
|
28
|
-
`Invalid ${type} name: "${name}"\n` +
|
|
29
|
-
`Path traversal sequences are not allowed.\n` +
|
|
30
|
-
`Use only alphanumeric characters, hyphens, and underscores.`
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Reject hidden-file names first so the error message is specific
|
|
35
|
-
// (otherwise the alphanumeric check below would fire generically).
|
|
36
|
-
if (name.startsWith(".")) {
|
|
37
|
-
throw new Error(
|
|
38
|
-
`Invalid ${type} name: "${name}"\n` +
|
|
39
|
-
`Names cannot start with a dot (.) to prevent hidden file creation.`
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Only allow alphanumeric, hyphens, underscores
|
|
44
|
-
const safePattern = /^[a-zA-Z0-9_-]+$/;
|
|
45
|
-
if (!safePattern.test(name)) {
|
|
46
|
-
throw new Error(
|
|
47
|
-
`Invalid ${type} name: "${name}"\n` +
|
|
48
|
-
`Only alphanumeric characters, hyphens (-), and underscores (_) are allowed.`
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function getDeploymentsDir(): string {
|
|
54
|
-
return join(process.cwd(), "deployments");
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function getNetworkDeploymentsDir(network: string): string {
|
|
58
|
-
// Validate network name to prevent path traversal
|
|
59
|
-
validateSafeName(network, "network");
|
|
60
|
-
|
|
61
|
-
const deploymentsDir = getDeploymentsDir();
|
|
62
|
-
const networkDir = join(deploymentsDir, network);
|
|
63
|
-
|
|
64
|
-
// Create directories if they don't exist
|
|
65
|
-
if (!existsSync(deploymentsDir)) {
|
|
66
|
-
mkdirSync(deploymentsDir, { recursive: true });
|
|
67
|
-
}
|
|
68
|
-
if (!existsSync(networkDir)) {
|
|
69
|
-
mkdirSync(networkDir, { recursive: true });
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return networkDir;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export function saveDeployment(deployment: DeploymentInfo): void {
|
|
76
|
-
// Validate both network and module name
|
|
77
|
-
validateSafeName(deployment.network, "network");
|
|
78
|
-
validateSafeName(deployment.moduleName, "module");
|
|
79
|
-
|
|
80
|
-
const networkDir = getNetworkDeploymentsDir(deployment.network);
|
|
81
|
-
const filePath = join(networkDir, `${deployment.moduleName}.json`);
|
|
82
|
-
|
|
83
|
-
try {
|
|
84
|
-
writeFileSync(filePath, JSON.stringify(deployment, null, 2), "utf-8");
|
|
85
|
-
logger.success(
|
|
86
|
-
`Deployment saved: deployments/${deployment.network}/${deployment.moduleName}.json`
|
|
87
|
-
);
|
|
88
|
-
} catch (error) {
|
|
89
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
90
|
-
logger.error(
|
|
91
|
-
`Failed to save deployment for ${deployment.moduleName} on ${deployment.network} at ${filePath}: ${msg}`
|
|
92
|
-
);
|
|
93
|
-
throw error;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export function loadDeployment(network: string, moduleName: string): DeploymentInfo | null {
|
|
98
|
-
// Validate both network and module name
|
|
99
|
-
validateSafeName(network, "network");
|
|
100
|
-
validateSafeName(moduleName, "module");
|
|
101
|
-
|
|
102
|
-
const networkDir = getNetworkDeploymentsDir(network);
|
|
103
|
-
const filePath = join(networkDir, `${moduleName}.json`);
|
|
104
|
-
|
|
105
|
-
if (!existsSync(filePath)) {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
try {
|
|
110
|
-
const content = readFileSync(filePath, "utf-8");
|
|
111
|
-
return JSON.parse(content) as DeploymentInfo;
|
|
112
|
-
} catch (error) {
|
|
113
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
114
|
-
logger.error(`Failed to load deployment for ${moduleName} on ${network}: ${msg}`);
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Get all deployments for a network
|
|
121
|
-
*/
|
|
122
|
-
export function getAllDeployments(network: string): Record<string, DeploymentInfo> {
|
|
123
|
-
// Validate network name
|
|
124
|
-
validateSafeName(network, "network");
|
|
125
|
-
|
|
126
|
-
const networkDir = getNetworkDeploymentsDir(network);
|
|
127
|
-
|
|
128
|
-
if (!existsSync(networkDir)) {
|
|
129
|
-
return {};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const files = readdirSync(networkDir).filter((f: string) => f.endsWith(".json"));
|
|
133
|
-
|
|
134
|
-
const deployments: Record<string, DeploymentInfo> = {};
|
|
135
|
-
|
|
136
|
-
for (const file of files) {
|
|
137
|
-
const moduleName = file.replace(".json", "");
|
|
138
|
-
// loadDeployment will validate moduleName internally
|
|
139
|
-
const deployment = loadDeployment(network, moduleName);
|
|
140
|
-
if (deployment) {
|
|
141
|
-
deployments[moduleName] = deployment;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
return deployments;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Get deployed address for a module
|
|
150
|
-
*/
|
|
151
|
-
export function getDeployedAddress(network: string, moduleName: string): string | null {
|
|
152
|
-
// Validation happens in loadDeployment
|
|
153
|
-
const deployment = loadDeployment(network, moduleName);
|
|
154
|
-
return deployment ? deployment.address : null;
|
|
155
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { chmodSync, existsSync, unlinkSync, writeFileSync } from "fs";
|
|
2
|
-
import { tmpdir } from "os";
|
|
3
|
-
import { join } from "path";
|
|
4
|
-
import { randomUUID } from "crypto";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Per-deploy private-key file management and SIGINT/SIGTERM cleanup
|
|
8
|
-
* infrastructure shared across the Movement CLI invocations (`move
|
|
9
|
-
* publish`, `move deploy-object`, `move upgrade-object`, `move
|
|
10
|
-
* run-script`).
|
|
11
|
-
*
|
|
12
|
-
* **Why a temp key file rather than the CLI's profile yaml?** The
|
|
13
|
-
* Movement CLI's `--profile <name>` flag requires a config.yaml to
|
|
14
|
-
* exist in the working directory (older Movement CLI variants look
|
|
15
|
-
* for `<cwd>/.aptos/config.yaml`; newer variants look for
|
|
16
|
-
* `<cwd>/.movement/config.yaml`). On fresh user installs neither
|
|
17
|
-
* directory exists, and the CLI errors out before it would otherwise
|
|
18
|
-
* fall back to `~/.aptos/config.yaml`. Writing to a temp file and
|
|
19
|
-
* passing `--private-key-file <path> --sender-account <addr>`
|
|
20
|
-
* directly avoids the entire profile-yaml lookup chain — no CWD
|
|
21
|
-
* dependency, no CLI-variant dependency.
|
|
22
|
-
*
|
|
23
|
-
* The same SIGINT-safe cleanup pattern applies as the old profile
|
|
24
|
-
* flow: the temp key file persists private key material on disk and
|
|
25
|
-
* MUST be removed before process exit even on abnormal termination.
|
|
26
|
-
*
|
|
27
|
-
* @internal — not exported from `src/index.ts`.
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Write the private key to a `mode 0o600` file in the system temp
|
|
32
|
-
* directory and return the path. The filename is UUID-suffixed so
|
|
33
|
-
* concurrent deploys don't collide.
|
|
34
|
-
*
|
|
35
|
-
* The key string is written verbatim — callers should format to
|
|
36
|
-
* AIP-80 before calling (see `PrivateKey.formatPrivateKey` from
|
|
37
|
-
* `@aptos-labs/ts-sdk`).
|
|
38
|
-
*/
|
|
39
|
-
export function writeTempKeyFile(privateKey: string): string {
|
|
40
|
-
const path = join(tmpdir(), `movehat-key-${randomUUID()}`);
|
|
41
|
-
// mode in the open() call may be filtered by the process umask
|
|
42
|
-
// (typically 0o022 → resulting perms 0o644). chmod after write
|
|
43
|
-
// is defense in depth so the file can never be observable as
|
|
44
|
-
// group-/world-readable while it carries the private key.
|
|
45
|
-
writeFileSync(path, privateKey, { mode: 0o600 });
|
|
46
|
-
chmodSync(path, 0o600);
|
|
47
|
-
return path;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Sync unlink for SIGINT/SIGTERM handlers — never throws, never logs.
|
|
52
|
-
* The event loop is dead by the time this runs; observability isn't
|
|
53
|
-
* possible. Worst case: a stale 0o600 temp file in `os.tmpdir()`
|
|
54
|
-
* that the OS reaps eventually.
|
|
55
|
-
*
|
|
56
|
-
* **Do not use this from a normal `finally` cleanup path** — failures
|
|
57
|
-
* become invisible there, hiding the case where a private-key temp
|
|
58
|
-
* file persists on disk after a deploy. Use {@link removeKeyFile}
|
|
59
|
-
* instead for those paths.
|
|
60
|
-
*/
|
|
61
|
-
export function removeKeyFileSyncBestEffort(path: string): void {
|
|
62
|
-
try {
|
|
63
|
-
unlinkSync(path);
|
|
64
|
-
} catch {
|
|
65
|
-
// event loop dead — best-effort
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Sync unlink for the normal cleanup path (a `finally` block after the
|
|
71
|
-
* Movement CLI invocation returns). Returns `null` on success — either
|
|
72
|
-
* the file was removed, or it was already gone (ENOENT is treated as
|
|
73
|
-
* benign success). Returns an `Error` only when the file **still
|
|
74
|
-
* exists on disk** after the unlink attempt failed (EPERM, EACCES,
|
|
75
|
-
* EBUSY, EISDIR if the path collided with a directory, etc.).
|
|
76
|
-
*
|
|
77
|
-
* Callers SHOULD `logger.warning` when a non-null Error is returned —
|
|
78
|
-
* a private-key temp file would otherwise persist silently.
|
|
79
|
-
*/
|
|
80
|
-
export function removeKeyFile(path: string): Error | null {
|
|
81
|
-
try {
|
|
82
|
-
unlinkSync(path);
|
|
83
|
-
return null;
|
|
84
|
-
} catch (err) {
|
|
85
|
-
const code = (err as NodeJS.ErrnoException).code;
|
|
86
|
-
if (code === "ENOENT") return null;
|
|
87
|
-
// The unlink call failed but verify the file actually still exists
|
|
88
|
-
// before declaring this preocupante — some races (parallel cleanup,
|
|
89
|
-
// tmpdir reaper) can race with us and the file may already be gone
|
|
90
|
-
// despite the syscall reporting an unexpected error.
|
|
91
|
-
if (!existsSync(path)) return null;
|
|
92
|
-
return err instanceof Error ? err : new Error(String(err));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Process-level signal handling. A single registered handler iterates
|
|
98
|
-
* the per-deploy cleanup callbacks. Installed once per process because
|
|
99
|
-
* multiple concurrent deploys share the same parent — installing per
|
|
100
|
-
* deploy would re-add the listener and exceed Node's max-listeners
|
|
101
|
-
* warning threshold under heavy parallelism.
|
|
102
|
-
*/
|
|
103
|
-
export const cleanupCallbacks = new Set<() => void>();
|
|
104
|
-
let signalHandlerInstalled = false;
|
|
105
|
-
|
|
106
|
-
export function ensureSignalHandler(): void {
|
|
107
|
-
if (signalHandlerInstalled) return;
|
|
108
|
-
signalHandlerInstalled = true;
|
|
109
|
-
const handler = (sig: NodeJS.Signals) => {
|
|
110
|
-
// Synchronous cleanup of every active deploy's resources.
|
|
111
|
-
for (const cb of [...cleanupCallbacks]) {
|
|
112
|
-
try {
|
|
113
|
-
cb();
|
|
114
|
-
} catch {
|
|
115
|
-
/* sync best-effort */
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Defer the actual exit one tick so other listeners (vitest's own
|
|
119
|
-
// SIGINT handler, app-level shutdown hooks) still get to run.
|
|
120
|
-
// Without this we'd stomp on vitest's afterEach if a dev Ctrl+C'd
|
|
121
|
-
// a test run mid-suite.
|
|
122
|
-
const code = sig === "SIGTERM" ? 143 : 130;
|
|
123
|
-
setImmediate(() => process.exit(code));
|
|
124
|
-
};
|
|
125
|
-
process.on("SIGINT", handler);
|
|
126
|
-
process.on("SIGTERM", handler);
|
|
127
|
-
}
|
package/src/core/shell.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Escapes a shell argument to prevent command injection
|
|
3
|
-
* Wraps the argument in single quotes and escapes any single quotes within
|
|
4
|
-
*
|
|
5
|
-
* @param arg - The argument to escape
|
|
6
|
-
* @returns The escaped argument safe for shell execution
|
|
7
|
-
*/
|
|
8
|
-
export function escapeShellArg(arg: string): string {
|
|
9
|
-
if (typeof arg !== "string") {
|
|
10
|
-
throw new Error("Shell argument must be a string");
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// Wrap in single quotes and escape any single quotes by replacing them with '\''
|
|
14
|
-
// This technique works on both Unix and Windows (Git Bash, WSL)
|
|
15
|
-
return `'${arg.replace(/'/g, "'\\''")}'`;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Validates that a path is safe (no command injection characters) and
|
|
20
|
-
* returns it unchanged. Use this for callers that pass paths to spawn-with-
|
|
21
|
-
* args (no shell), where shell quoting would be incorrect.
|
|
22
|
-
*
|
|
23
|
-
* @param path - The path to validate
|
|
24
|
-
* @param name - Name for error messages (e.g., "package directory")
|
|
25
|
-
* @returns The original path, after validation
|
|
26
|
-
*/
|
|
27
|
-
export function validatePathSafety(path: string, name: string = "path"): string {
|
|
28
|
-
if (!path || typeof path !== "string") {
|
|
29
|
-
throw new Error(`Invalid ${name}: must be a non-empty string`);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Check for obvious command injection attempts.
|
|
33
|
-
const dangerousChars = /[;&|`$(){}[\]<>]/;
|
|
34
|
-
if (dangerousChars.test(path)) {
|
|
35
|
-
throw new Error(
|
|
36
|
-
`Invalid ${name}: "${path}"\n` +
|
|
37
|
-
`Path contains potentially dangerous characters.\n` +
|
|
38
|
-
`Allowed characters: letters, numbers, ., -, _, /, \\, spaces`
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return path;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Validates a path and returns the shell-escaped form. Wraps
|
|
47
|
-
* `validatePathSafety` for callers that pass paths into shell-style
|
|
48
|
-
* commands (e.g. `exec`).
|
|
49
|
-
*
|
|
50
|
-
* @param path - The path to validate and escape
|
|
51
|
-
* @param name - Name for error messages
|
|
52
|
-
* @returns The escaped path safe for shell execution
|
|
53
|
-
*/
|
|
54
|
-
export function validateAndEscapePath(path: string, name: string = "path"): string {
|
|
55
|
-
return escapeShellArg(validatePathSafety(path, name));
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Validates that a profile name is safe and returns it unchanged. Mirrors
|
|
60
|
-
* `validatePathSafety` — use this for callers that pass the profile to
|
|
61
|
-
* spawn-with-args (no shell), where shell quoting would be incorrect.
|
|
62
|
-
*/
|
|
63
|
-
export function validateProfileSafety(profile: string): string {
|
|
64
|
-
if (!profile || typeof profile !== "string") {
|
|
65
|
-
throw new Error("Invalid profile name: must be a non-empty string");
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
const safePattern = /^[a-zA-Z0-9_-]+$/;
|
|
69
|
-
if (!safePattern.test(profile)) {
|
|
70
|
-
throw new Error(
|
|
71
|
-
`Invalid profile name: "${profile}"\n` +
|
|
72
|
-
`Only alphanumeric characters, hyphens (-), and underscores (_) are allowed.`
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return profile;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Validates a profile and returns the shell-escaped form. Wraps
|
|
81
|
-
* `validateProfileSafety` for callers that pass the profile into shell-style
|
|
82
|
-
* commands (e.g. `exec`).
|
|
83
|
-
*/
|
|
84
|
-
export function validateAndEscapeProfile(profile: string): string {
|
|
85
|
-
return escapeShellArg(validateProfileSafety(profile));
|
|
86
|
-
}
|
package/src/errors.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom error thrown when attempting to deploy a module that is already deployed
|
|
3
|
-
*/
|
|
4
|
-
export class ModuleAlreadyDeployedError extends Error {
|
|
5
|
-
constructor(
|
|
6
|
-
message: string,
|
|
7
|
-
public readonly moduleName: string,
|
|
8
|
-
public readonly network: string,
|
|
9
|
-
public readonly address: string,
|
|
10
|
-
public readonly timestamp: number,
|
|
11
|
-
public readonly txHash?: string
|
|
12
|
-
) {
|
|
13
|
-
super(message);
|
|
14
|
-
this.name = 'ModuleAlreadyDeployedError';
|
|
15
|
-
|
|
16
|
-
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
17
|
-
if (Error.captureStackTrace) {
|
|
18
|
-
Error.captureStackTrace(this, ModuleAlreadyDeployedError);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
import { redactSecrets } from './utils/redact.js';
|
|
24
|
-
import type { DeploymentInfo } from './core/deployments.js';
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Thrown when the on-chain publish succeeded but a subsequent local
|
|
28
|
-
* step (saveDeployment, profile cleanup, etc.) failed.
|
|
29
|
-
*
|
|
30
|
-
* Distinct from `CliExecutionError`: by the time this error fires, the
|
|
31
|
-
* module IS deployed on-chain. Callers that want to recover can read
|
|
32
|
-
* `deployment` and re-attempt the local-side persistence manually
|
|
33
|
-
* (e.g. write the JSON to `deployments/{network}/{moduleName}.json`).
|
|
34
|
-
*
|
|
35
|
-
* Without this distinction, the same outer catch would surface a
|
|
36
|
-
* post-publish filesystem failure as "Failed to publish module",
|
|
37
|
-
* inviting an accidental redeploy that wastes gas.
|
|
38
|
-
*/
|
|
39
|
-
export class PostPublishError extends Error {
|
|
40
|
-
constructor(
|
|
41
|
-
message: string,
|
|
42
|
-
public readonly deployment: DeploymentInfo,
|
|
43
|
-
public readonly cause: Error
|
|
44
|
-
) {
|
|
45
|
-
super(message);
|
|
46
|
-
this.name = 'PostPublishError';
|
|
47
|
-
|
|
48
|
-
if (Error.captureStackTrace) {
|
|
49
|
-
Error.captureStackTrace(this, PostPublishError);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Thrown by runCli when a spawned process exits with a non-zero status.
|
|
56
|
-
*
|
|
57
|
-
* `stderr`, `stdoutPreview`, and each entry in `args` are redacted of
|
|
58
|
-
* well-known secret shapes (private keys, etc.) in the constructor, so the
|
|
59
|
-
* error is safe to log regardless of how it was raised. Redaction is
|
|
60
|
-
* idempotent.
|
|
61
|
-
*/
|
|
62
|
-
export class CliExecutionError extends Error {
|
|
63
|
-
public readonly args: readonly string[];
|
|
64
|
-
|
|
65
|
-
constructor(
|
|
66
|
-
message: string,
|
|
67
|
-
public readonly command: string,
|
|
68
|
-
args: readonly string[],
|
|
69
|
-
public readonly exitCode: number,
|
|
70
|
-
public readonly stderr: string,
|
|
71
|
-
public readonly stdoutPreview: string
|
|
72
|
-
) {
|
|
73
|
-
super(message);
|
|
74
|
-
this.name = 'CliExecutionError';
|
|
75
|
-
this.args = args.map(redactSecrets);
|
|
76
|
-
|
|
77
|
-
if (Error.captureStackTrace) {
|
|
78
|
-
Error.captureStackTrace(this, CliExecutionError);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|