movehat 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/__tests__/deployContract.test.d.ts +2 -0
- package/dist/__tests__/deployContract.test.d.ts.map +1 -0
- package/dist/__tests__/deployContract.test.js +368 -0
- package/dist/__tests__/deployContract.test.js.map +1 -0
- package/dist/__tests__/errors.test.d.ts +2 -0
- package/dist/__tests__/errors.test.d.ts.map +1 -0
- package/dist/__tests__/errors.test.js +46 -0
- package/dist/__tests__/errors.test.js.map +1 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts +24 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts.map +1 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.js +82 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.js.map +1 -0
- package/dist/__tests__/fork/api.test.d.ts +2 -0
- package/dist/__tests__/fork/api.test.d.ts.map +1 -0
- package/dist/__tests__/fork/api.test.js +110 -0
- package/dist/__tests__/fork/api.test.js.map +1 -0
- package/dist/__tests__/harness/Harness.createLive.test.d.ts +2 -0
- package/dist/__tests__/harness/Harness.createLive.test.d.ts.map +1 -0
- package/dist/__tests__/harness/Harness.createLive.test.js +53 -0
- package/dist/__tests__/harness/Harness.createLive.test.js.map +1 -0
- package/dist/__tests__/harness/Harness.proxy.test.d.ts +2 -0
- package/dist/__tests__/harness/Harness.proxy.test.d.ts.map +1 -0
- package/dist/__tests__/harness/Harness.proxy.test.js +93 -0
- package/dist/__tests__/harness/Harness.proxy.test.js.map +1 -0
- package/dist/__tests__/harness/_fixture.d.ts +54 -0
- package/dist/__tests__/harness/_fixture.d.ts.map +1 -0
- package/dist/__tests__/harness/_fixture.js +69 -0
- package/dist/__tests__/harness/_fixture.js.map +1 -0
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts +2 -0
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts.map +1 -0
- package/dist/__tests__/harness/codeObject.deploy.test.js +288 -0
- package/dist/__tests__/harness/codeObject.deploy.test.js.map +1 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts +2 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.js +138 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.js.map +1 -0
- package/dist/__tests__/harness/script.test.d.ts +2 -0
- package/dist/__tests__/harness/script.test.d.ts.map +1 -0
- package/dist/__tests__/harness/script.test.js +219 -0
- package/dist/__tests__/harness/script.test.js.map +1 -0
- package/dist/__tests__/harness/view.test.d.ts +2 -0
- package/dist/__tests__/harness/view.test.d.ts.map +1 -0
- package/dist/__tests__/harness/view.test.js +92 -0
- package/dist/__tests__/harness/view.test.js.map +1 -0
- package/dist/__tests__/runtime.test.d.ts +2 -0
- package/dist/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/__tests__/runtime.test.js +141 -0
- package/dist/__tests__/runtime.test.js.map +1 -0
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/__tests__/compile.test.d.ts +2 -0
- package/dist/commands/__tests__/compile.test.d.ts.map +1 -0
- package/dist/commands/__tests__/compile.test.js +351 -0
- package/dist/commands/__tests__/compile.test.js.map +1 -0
- package/dist/commands/__tests__/init.test.d.ts +2 -0
- package/dist/commands/__tests__/init.test.d.ts.map +1 -0
- package/dist/commands/__tests__/init.test.js +101 -0
- package/dist/commands/__tests__/init.test.js.map +1 -0
- package/dist/commands/__tests__/run.test.d.ts +2 -0
- package/dist/commands/__tests__/run.test.d.ts.map +1 -0
- package/dist/commands/__tests__/run.test.js +166 -0
- package/dist/commands/__tests__/run.test.js.map +1 -0
- package/dist/commands/__tests__/test-move.test.d.ts +2 -0
- package/dist/commands/__tests__/test-move.test.d.ts.map +1 -0
- package/dist/commands/__tests__/test-move.test.js +59 -0
- package/dist/commands/__tests__/test-move.test.js.map +1 -0
- package/dist/commands/__tests__/test.test.d.ts +2 -0
- package/dist/commands/__tests__/test.test.d.ts.map +1 -0
- package/dist/commands/__tests__/test.test.js +168 -0
- package/dist/commands/__tests__/test.test.js.map +1 -0
- package/dist/commands/__tests__/update.test.d.ts +2 -0
- package/dist/commands/__tests__/update.test.d.ts.map +1 -0
- package/dist/commands/__tests__/update.test.js +176 -0
- package/dist/commands/__tests__/update.test.js.map +1 -0
- package/dist/commands/compile.d.ts +7 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +150 -33
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/fork/__tests__/create.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/create.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/create.test.js +108 -0
- package/dist/commands/fork/__tests__/create.test.js.map +1 -0
- package/dist/commands/fork/__tests__/fund.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/fund.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/fund.test.js +72 -0
- package/dist/commands/fork/__tests__/fund.test.js.map +1 -0
- package/dist/commands/fork/__tests__/list.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/list.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/list.test.js +119 -0
- package/dist/commands/fork/__tests__/list.test.js.map +1 -0
- package/dist/commands/fork/__tests__/serve.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/serve.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/serve.test.js +97 -0
- package/dist/commands/fork/__tests__/serve.test.js.map +1 -0
- package/dist/commands/fork/__tests__/view-resource.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/view-resource.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/view-resource.test.js +77 -0
- package/dist/commands/fork/__tests__/view-resource.test.js.map +1 -0
- package/dist/commands/fork/create.d.ts +1 -1
- package/dist/commands/fork/create.d.ts.map +1 -1
- package/dist/commands/fork/create.js +3 -2
- package/dist/commands/fork/create.js.map +1 -1
- package/dist/commands/fork/fund.d.ts.map +1 -1
- package/dist/commands/fork/fund.js +15 -8
- package/dist/commands/fork/fund.js.map +1 -1
- package/dist/commands/fork/list.d.ts.map +1 -1
- package/dist/commands/fork/list.js +2 -1
- package/dist/commands/fork/list.js.map +1 -1
- package/dist/commands/fork/serve.d.ts +1 -0
- package/dist/commands/fork/serve.d.ts.map +1 -1
- package/dist/commands/fork/serve.js +4 -2
- package/dist/commands/fork/serve.js.map +1 -1
- package/dist/commands/fork/view-resource.d.ts.map +1 -1
- package/dist/commands/fork/view-resource.js +10 -5
- package/dist/commands/fork/view-resource.js.map +1 -1
- package/dist/commands/run.d.ts +15 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +50 -27
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/test-move.d.ts.map +1 -1
- package/dist/commands/test-move.js +3 -2
- package/dist/commands/test-move.js.map +1 -1
- package/dist/commands/test.js +52 -46
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +15 -13
- package/dist/commands/update.js.map +1 -1
- package/dist/core/AccountManager.d.ts +1 -1
- package/dist/core/AccountManager.d.ts.map +1 -1
- package/dist/core/AccountManager.js +20 -7
- package/dist/core/AccountManager.js.map +1 -1
- package/dist/core/Publisher.d.ts +31 -0
- package/dist/core/Publisher.d.ts.map +1 -0
- package/dist/core/Publisher.js +248 -0
- package/dist/core/Publisher.js.map +1 -0
- package/dist/core/__tests__/AccountManager.test.d.ts +2 -0
- package/dist/core/__tests__/AccountManager.test.d.ts.map +1 -0
- package/dist/core/__tests__/AccountManager.test.js +239 -0
- package/dist/core/__tests__/AccountManager.test.js.map +1 -0
- package/dist/core/__tests__/config.test.d.ts +2 -0
- package/dist/core/__tests__/config.test.d.ts.map +1 -0
- package/dist/core/__tests__/config.test.js +311 -0
- package/dist/core/__tests__/config.test.js.map +1 -0
- package/dist/core/__tests__/deployments.test.d.ts +2 -0
- package/dist/core/__tests__/deployments.test.d.ts.map +1 -0
- package/dist/core/__tests__/deployments.test.js +201 -0
- package/dist/core/__tests__/deployments.test.js.map +1 -0
- package/dist/core/__tests__/shell.test.d.ts +2 -0
- package/dist/core/__tests__/shell.test.d.ts.map +1 -0
- package/dist/core/__tests__/shell.test.js +107 -0
- package/dist/core/__tests__/shell.test.js.map +1 -0
- package/dist/core/config.d.ts +13 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +80 -11
- package/dist/core/config.js.map +1 -1
- package/dist/core/contract.d.ts +1 -1
- package/dist/core/contract.d.ts.map +1 -1
- package/dist/core/contract.js +15 -4
- package/dist/core/contract.js.map +1 -1
- package/dist/core/deployments.d.ts +2 -2
- package/dist/core/deployments.d.ts.map +1 -1
- package/dist/core/deployments.js +8 -6
- package/dist/core/deployments.js.map +1 -1
- package/dist/core/movementProfile.d.ts +34 -0
- package/dist/core/movementProfile.d.ts.map +1 -0
- package/dist/core/movementProfile.js +150 -0
- package/dist/core/movementProfile.js.map +1 -0
- package/dist/core/shell.d.ts +23 -7
- package/dist/core/shell.d.ts.map +1 -1
- package/dist/core/shell.js +32 -14
- package/dist/core/shell.js.map +1 -1
- package/dist/errors.d.ts +35 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +54 -0
- package/dist/errors.js.map +1 -1
- package/dist/fork/__tests__/manager.test.d.ts +2 -0
- package/dist/fork/__tests__/manager.test.d.ts.map +1 -0
- package/dist/fork/__tests__/manager.test.js +309 -0
- package/dist/fork/__tests__/manager.test.js.map +1 -0
- package/dist/fork/__tests__/server.test.d.ts +2 -0
- package/dist/fork/__tests__/server.test.d.ts.map +1 -0
- package/dist/fork/__tests__/server.test.js +54 -0
- package/dist/fork/__tests__/server.test.js.map +1 -0
- package/dist/fork/__tests__/storage.test.d.ts +2 -0
- package/dist/fork/__tests__/storage.test.d.ts.map +1 -0
- package/dist/fork/__tests__/storage.test.js +222 -0
- package/dist/fork/__tests__/storage.test.js.map +1 -0
- package/dist/fork/__tests__/test.test.d.ts +2 -0
- package/dist/fork/__tests__/test.test.d.ts.map +1 -0
- package/dist/fork/__tests__/test.test.js +81 -0
- package/dist/fork/__tests__/test.test.js.map +1 -0
- package/dist/fork/api.d.ts +14 -3
- package/dist/fork/api.d.ts.map +1 -1
- package/dist/fork/api.js +25 -14
- package/dist/fork/api.js.map +1 -1
- package/dist/fork/manager.d.ts +23 -9
- package/dist/fork/manager.d.ts.map +1 -1
- package/dist/fork/manager.js +79 -36
- package/dist/fork/manager.js.map +1 -1
- package/dist/fork/server.d.ts +11 -3
- package/dist/fork/server.d.ts.map +1 -1
- package/dist/fork/server.js +45 -13
- package/dist/fork/server.js.map +1 -1
- package/dist/fork/storage.d.ts +4 -4
- package/dist/fork/storage.d.ts.map +1 -1
- package/dist/fork/storage.js +7 -9
- package/dist/fork/storage.js.map +1 -1
- package/dist/fork/test.d.ts +13 -4
- package/dist/fork/test.d.ts.map +1 -1
- package/dist/fork/test.js +36 -27
- package/dist/fork/test.js.map +1 -1
- package/dist/harness/Harness.d.ts +124 -0
- package/dist/harness/Harness.d.ts.map +1 -0
- package/dist/harness/Harness.js +193 -0
- package/dist/harness/Harness.js.map +1 -0
- package/dist/harness/codeObject.d.ts +31 -0
- package/dist/harness/codeObject.d.ts.map +1 -0
- package/dist/harness/codeObject.js +271 -0
- package/dist/harness/codeObject.js.map +1 -0
- package/dist/harness/errors.d.ts +14 -0
- package/dist/harness/errors.d.ts.map +1 -0
- package/dist/harness/errors.js +22 -0
- package/dist/harness/errors.js.map +1 -0
- package/dist/harness/index.d.ts +4 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +3 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/proxy.d.ts +7 -0
- package/dist/harness/proxy.d.ts.map +1 -0
- package/dist/harness/proxy.js +36 -0
- package/dist/harness/proxy.js.map +1 -0
- package/dist/harness/script.d.ts +21 -0
- package/dist/harness/script.d.ts.map +1 -0
- package/dist/harness/script.js +155 -0
- package/dist/harness/script.js.map +1 -0
- package/dist/harness/view.d.ts +22 -0
- package/dist/harness/view.d.ts.map +1 -0
- package/dist/harness/view.js +28 -0
- package/dist/harness/view.js.map +1 -0
- package/dist/helpers/__tests__/semver-utils.test.d.ts +2 -0
- package/dist/helpers/__tests__/semver-utils.test.d.ts.map +1 -0
- package/dist/helpers/__tests__/semver-utils.test.js +103 -0
- package/dist/helpers/__tests__/semver-utils.test.js.map +1 -0
- package/dist/helpers/index.d.ts +3 -2
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +2 -2
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/move-tests.d.ts +3 -3
- package/dist/helpers/move-tests.d.ts.map +1 -1
- package/dist/helpers/move-tests.js +21 -20
- package/dist/helpers/move-tests.js.map +1 -1
- package/dist/helpers/npm-registry.d.ts.map +1 -1
- package/dist/helpers/npm-registry.js +1 -3
- package/dist/helpers/npm-registry.js.map +1 -1
- package/dist/helpers/semver-utils.d.ts.map +1 -1
- package/dist/helpers/semver-utils.js +4 -3
- package/dist/helpers/semver-utils.js.map +1 -1
- package/dist/helpers/setup.d.ts.map +1 -1
- package/dist/helpers/setup.js +10 -6
- package/dist/helpers/setup.js.map +1 -1
- package/dist/helpers/setupLocalTesting.d.ts +32 -27
- package/dist/helpers/setupLocalTesting.d.ts.map +1 -1
- package/dist/helpers/setupLocalTesting.js +179 -180
- package/dist/helpers/setupLocalTesting.js.map +1 -1
- package/dist/helpers/testFixtures.d.ts +19 -53
- package/dist/helpers/testFixtures.d.ts.map +1 -1
- package/dist/helpers/testFixtures.js +89 -107
- package/dist/helpers/testFixtures.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/node/LocalNodeManager.d.ts +9 -1
- package/dist/node/LocalNodeManager.d.ts.map +1 -1
- package/dist/node/LocalNodeManager.js +75 -58
- package/dist/node/LocalNodeManager.js.map +1 -1
- package/dist/node/__tests__/LocalNodeManager.test.d.ts +2 -0
- package/dist/node/__tests__/LocalNodeManager.test.d.ts.map +1 -0
- package/dist/node/__tests__/LocalNodeManager.test.js +349 -0
- package/dist/node/__tests__/LocalNodeManager.test.js.map +1 -0
- package/dist/runtime.d.ts +12 -15
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +32 -241
- package/dist/runtime.js.map +1 -1
- package/dist/templates/README.md +1 -1
- package/dist/templates/movehat.config.ts +10 -0
- package/dist/templates/package.json +2 -1
- package/dist/templates/scripts/deploy-counter.ts +46 -38
- package/dist/templates/tests/Counter.test.ts +51 -51
- package/dist/templates/types/movehat.d.ts +6 -9
- package/dist/types/config.d.ts +8 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/fork.d.ts +7 -1
- package/dist/types/fork.d.ts.map +1 -1
- package/dist/types/harness.d.ts +166 -0
- package/dist/types/harness.d.ts.map +1 -0
- package/dist/types/harness.js +2 -0
- package/dist/types/harness.js.map +1 -0
- package/dist/types/runtime.d.ts +7 -1
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/ui/__tests__/colors.test.d.ts +2 -0
- package/dist/ui/__tests__/colors.test.d.ts.map +1 -0
- package/dist/ui/__tests__/colors.test.js +127 -0
- package/dist/ui/__tests__/colors.test.js.map +1 -0
- package/dist/ui/colors.d.ts.map +1 -1
- package/dist/ui/colors.js +6 -2
- package/dist/ui/colors.js.map +1 -1
- package/dist/ui/logger.d.ts +17 -0
- package/dist/ui/logger.d.ts.map +1 -1
- package/dist/ui/logger.js +22 -0
- package/dist/ui/logger.js.map +1 -1
- package/dist/ui/symbols.d.ts +1 -0
- package/dist/ui/symbols.d.ts.map +1 -1
- package/dist/ui/symbols.js +7 -1
- package/dist/ui/symbols.js.map +1 -1
- package/dist/utils/__tests__/address.test.d.ts +2 -0
- package/dist/utils/__tests__/address.test.d.ts.map +1 -0
- package/dist/utils/__tests__/address.test.js +70 -0
- package/dist/utils/__tests__/address.test.js.map +1 -0
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts +2 -0
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts.map +1 -0
- package/dist/utils/__tests__/childProcessAdapter.test.js +217 -0
- package/dist/utils/__tests__/childProcessAdapter.test.js.map +1 -0
- package/dist/utils/__tests__/runCli.test.d.ts +2 -0
- package/dist/utils/__tests__/runCli.test.d.ts.map +1 -0
- package/dist/utils/__tests__/runCli.test.js +187 -0
- package/dist/utils/__tests__/runCli.test.js.map +1 -0
- package/dist/utils/address.d.ts +33 -0
- package/dist/utils/address.d.ts.map +1 -0
- package/dist/utils/address.js +52 -0
- package/dist/utils/address.js.map +1 -0
- package/dist/utils/childProcessAdapter.d.ts +93 -0
- package/dist/utils/childProcessAdapter.d.ts.map +1 -0
- package/dist/utils/childProcessAdapter.js +109 -0
- package/dist/utils/childProcessAdapter.js.map +1 -0
- package/dist/utils/parseCliOutput.d.ts +20 -0
- package/dist/utils/parseCliOutput.d.ts.map +1 -0
- package/dist/utils/parseCliOutput.js +26 -0
- package/dist/utils/parseCliOutput.js.map +1 -0
- package/dist/utils/redact.d.ts +15 -0
- package/dist/utils/redact.d.ts.map +1 -0
- package/dist/utils/redact.js +24 -0
- package/dist/utils/redact.js.map +1 -0
- package/dist/utils/runCli.d.ts +24 -0
- package/dist/utils/runCli.d.ts.map +1 -0
- package/dist/utils/runCli.js +37 -0
- package/dist/utils/runCli.js.map +1 -0
- package/package.json +14 -4
- package/src/__tests__/deployContract.test.ts +429 -0
- package/src/__tests__/errors.test.ts +84 -0
- package/src/__tests__/fixtures/sigint-deploy-harness.ts +95 -0
- package/src/__tests__/fork/api.test.ts +143 -0
- package/src/__tests__/harness/Harness.createLive.test.ts +57 -0
- package/src/__tests__/harness/Harness.proxy.test.ts +115 -0
- package/src/__tests__/harness/_fixture.ts +131 -0
- package/src/__tests__/harness/codeObject.deploy.test.ts +319 -0
- package/src/__tests__/harness/codeObject.upgrade.test.ts +156 -0
- package/src/__tests__/harness/script.test.ts +245 -0
- package/src/__tests__/harness/view.test.ts +104 -0
- package/src/__tests__/runtime.test.ts +182 -0
- package/src/cli.ts +2 -1
- package/src/commands/__tests__/compile.test.ts +407 -0
- package/src/commands/__tests__/init.test.ts +125 -0
- package/src/commands/__tests__/run.test.ts +192 -0
- package/src/commands/__tests__/test-move.test.ts +81 -0
- package/src/commands/__tests__/test.test.ts +204 -0
- package/src/commands/__tests__/update.test.ts +223 -0
- package/src/commands/compile.ts +168 -32
- package/src/commands/fork/__tests__/create.test.ts +132 -0
- package/src/commands/fork/__tests__/fund.test.ts +104 -0
- package/src/commands/fork/__tests__/list.test.ts +139 -0
- package/src/commands/fork/__tests__/serve.test.ts +121 -0
- package/src/commands/fork/__tests__/view-resource.test.ts +101 -0
- package/src/commands/fork/create.ts +4 -3
- package/src/commands/fork/fund.ts +16 -9
- package/src/commands/fork/list.ts +3 -2
- package/src/commands/fork/serve.ts +6 -3
- package/src/commands/fork/view-resource.ts +11 -6
- package/src/commands/run.ts +54 -28
- package/src/commands/test-move.ts +4 -3
- package/src/commands/test.ts +56 -44
- package/src/commands/update.ts +19 -16
- package/src/core/AccountManager.ts +23 -10
- package/src/core/Publisher.ts +322 -0
- package/src/core/__tests__/AccountManager.test.ts +290 -0
- package/src/core/__tests__/config.test.ts +377 -0
- package/src/core/__tests__/deployments.test.ts +247 -0
- package/src/core/__tests__/shell.test.ts +138 -0
- package/src/core/config.ts +96 -12
- package/src/core/contract.ts +13 -4
- package/src/core/deployments.ts +13 -11
- package/src/core/movementProfile.ts +179 -0
- package/src/core/shell.ts +34 -14
- package/src/errors.ts +60 -0
- package/src/fork/__tests__/manager.test.ts +385 -0
- package/src/fork/__tests__/server.test.ts +65 -0
- package/src/fork/__tests__/storage.test.ts +281 -0
- package/src/fork/__tests__/test.test.ts +97 -0
- package/src/fork/api.ts +28 -14
- package/src/fork/manager.ts +88 -43
- package/src/fork/server.ts +53 -19
- package/src/fork/storage.ts +12 -15
- package/src/fork/test.ts +58 -32
- package/src/harness/Harness.ts +228 -0
- package/src/harness/codeObject.ts +388 -0
- package/src/harness/errors.ts +22 -0
- package/src/harness/index.ts +3 -0
- package/src/harness/proxy.ts +40 -0
- package/src/harness/script.ts +196 -0
- package/src/harness/view.ts +34 -0
- package/src/helpers/__tests__/semver-utils.test.ts +121 -0
- package/src/helpers/index.ts +2 -8
- package/src/helpers/move-tests.ts +27 -23
- package/src/helpers/npm-registry.ts +4 -3
- package/src/helpers/semver-utils.ts +4 -3
- package/src/helpers/setup.ts +9 -5
- package/src/helpers/setupLocalTesting.ts +219 -200
- package/src/helpers/testFixtures.ts +106 -118
- package/src/index.ts +9 -3
- package/src/node/LocalNodeManager.ts +87 -62
- package/src/node/__tests__/LocalNodeManager.test.ts +452 -0
- package/src/runtime.ts +33 -289
- package/src/templates/README.md +1 -1
- package/src/templates/movehat.config.ts +10 -0
- package/src/templates/package.json +2 -1
- package/src/templates/scripts/deploy-counter.ts +46 -38
- package/src/templates/tests/Counter.test.ts +51 -51
- package/src/templates/types/movehat.d.ts +6 -9
- package/src/types/config.ts +8 -0
- package/src/types/fork.ts +7 -1
- package/src/types/harness.ts +182 -0
- package/src/types/runtime.ts +11 -3
- package/src/ui/__tests__/colors.test.ts +156 -0
- package/src/ui/colors.ts +5 -2
- package/src/ui/logger.ts +22 -0
- package/src/ui/symbols.ts +7 -1
- package/src/utils/__tests__/address.test.ts +93 -0
- package/src/utils/__tests__/childProcessAdapter.test.ts +266 -0
- package/src/utils/__tests__/runCli.test.ts +240 -0
- package/src/utils/address.ts +56 -0
- package/src/utils/childProcessAdapter.ts +215 -0
- package/src/utils/parseCliOutput.ts +27 -0
- package/src/utils/redact.ts +24 -0
- package/src/utils/runCli.ts +64 -0
|
@@ -1,104 +1,102 @@
|
|
|
1
1
|
// @ts-nocheck - This is a template file, dependencies are installed in user projects
|
|
2
2
|
import { describe, it, before, after } from "mocha";
|
|
3
3
|
import { expect } from "chai";
|
|
4
|
-
import {
|
|
4
|
+
import { Harness, AccountManager } from "movehat";
|
|
5
5
|
|
|
6
6
|
describe("Counter Contract", () => {
|
|
7
|
-
let
|
|
7
|
+
let harness;
|
|
8
|
+
let counter;
|
|
9
|
+
let deployer, alice, bob;
|
|
8
10
|
|
|
9
11
|
before(async function () {
|
|
10
12
|
this.timeout(60000); // Allow time for local node startup + deployment
|
|
11
13
|
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
// 3. Auto-deploy the counter module
|
|
17
|
-
// 4. Return everything ready to use
|
|
14
|
+
// Hardhat-style Harness — primary public API since M2.
|
|
15
|
+
// createLocal spins up a Movement local node, funds the labeled
|
|
16
|
+
// accounts from the local faucet, and (via autoDeploy) builds +
|
|
17
|
+
// publishes the named modules so they're ready to use.
|
|
18
18
|
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
// The setupTestFixture helper still works if you prefer the older
|
|
20
|
+
// pattern; see `import { setupTestFixture } from "movehat/helpers"`.
|
|
21
|
+
harness = await Harness.createLocal({
|
|
22
|
+
accountLabels: ["deployer", "alice", "bob"],
|
|
23
|
+
autoDeploy: ["counter"],
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const labeled = AccountManager.getLabeledAccounts();
|
|
27
|
+
deployer = labeled.deployer;
|
|
28
|
+
alice = labeled.alice;
|
|
29
|
+
bob = labeled.bob;
|
|
30
|
+
|
|
31
|
+
const counterAddr = harness.runtime.getDeploymentAddress("counter");
|
|
32
|
+
counter = harness.runtime.getContract(counterAddr, "counter");
|
|
24
33
|
|
|
25
34
|
console.log(`\n✅ Testing on local blockchain`);
|
|
26
|
-
console.log(` Deployer: ${
|
|
27
|
-
console.log(` Alice: ${
|
|
28
|
-
console.log(` Bob: ${
|
|
35
|
+
console.log(` Deployer: ${deployer.accountAddress.toString()}`);
|
|
36
|
+
console.log(` Alice: ${alice.accountAddress.toString()}`);
|
|
37
|
+
console.log(` Bob: ${bob.accountAddress.toString()}\n`);
|
|
29
38
|
});
|
|
30
39
|
|
|
31
40
|
describe("Counter functionality", () => {
|
|
32
|
-
it("should initialize
|
|
33
|
-
|
|
34
|
-
const
|
|
41
|
+
it("should initialize counter for deployer", async () => {
|
|
42
|
+
// Initialize counter for deployer (required before get/increment)
|
|
43
|
+
const tx = await counter.call(deployer, "init", []);
|
|
44
|
+
console.log(` Init transaction: ${tx.hash}`);
|
|
35
45
|
|
|
36
|
-
// Read counter value
|
|
37
|
-
const value = await
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
// Read counter value via harness.runViewFunction (new in M2)
|
|
47
|
+
const [value] = await harness.runViewFunction({
|
|
48
|
+
function: `${counter.moduleAddress}::counter::get`,
|
|
49
|
+
functionArguments: [deployer.accountAddress.toString()],
|
|
50
|
+
});
|
|
40
51
|
|
|
41
52
|
console.log(` Counter value: ${value}`);
|
|
42
|
-
|
|
43
|
-
// Assert the counter is 0 (note: values from view are strings)
|
|
44
53
|
expect(parseInt(value)).to.equal(0);
|
|
45
54
|
});
|
|
46
55
|
|
|
47
56
|
it("should increment counter", async () => {
|
|
48
|
-
const counter = fixture.contracts.counter;
|
|
49
|
-
const deployer = fixture.accounts.deployer;
|
|
50
|
-
|
|
51
|
-
// Increment the counter
|
|
52
57
|
const tx = await counter.call(deployer, "increment", []);
|
|
53
58
|
console.log(` Transaction: ${tx.hash}`);
|
|
54
59
|
|
|
55
|
-
//
|
|
60
|
+
// counter.view is the shorter form when you already have the contract.
|
|
56
61
|
const value = await counter.view<string>("get", [
|
|
57
|
-
deployer.accountAddress.toString()
|
|
62
|
+
deployer.accountAddress.toString(),
|
|
58
63
|
]);
|
|
59
64
|
|
|
60
65
|
console.log(` New counter value: ${value}`);
|
|
61
|
-
|
|
62
|
-
// Should be 1 now
|
|
63
66
|
expect(parseInt(value)).to.equal(1);
|
|
64
67
|
});
|
|
65
68
|
|
|
66
|
-
it("alice can
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
+
it("alice can initialize and increment her counter", async () => {
|
|
70
|
+
const initTx = await counter.call(alice, "init", []);
|
|
71
|
+
console.log(` Alice init transaction: ${initTx.hash}`);
|
|
69
72
|
|
|
70
|
-
// Alice increments her own counter
|
|
71
73
|
const tx = await counter.call(alice, "increment", []);
|
|
72
|
-
console.log(` Alice's transaction: ${tx.hash}`);
|
|
74
|
+
console.log(` Alice's increment transaction: ${tx.hash}`);
|
|
73
75
|
|
|
74
|
-
// Read counter value for Alice (each user has their own counter)
|
|
75
76
|
const aliceValue = await counter.view<string>("get", [
|
|
76
|
-
alice.accountAddress.toString()
|
|
77
|
+
alice.accountAddress.toString(),
|
|
77
78
|
]);
|
|
78
79
|
|
|
79
80
|
console.log(` Alice's counter value: ${aliceValue}`);
|
|
80
81
|
expect(parseInt(aliceValue)).to.equal(1);
|
|
81
82
|
|
|
82
|
-
// Deployer's counter should still be 1 (unchanged)
|
|
83
83
|
const deployerValue = await counter.view<string>("get", [
|
|
84
|
-
|
|
84
|
+
deployer.accountAddress.toString(),
|
|
85
85
|
]);
|
|
86
86
|
|
|
87
87
|
console.log(` Deployer's counter value: ${deployerValue}`);
|
|
88
88
|
expect(parseInt(deployerValue)).to.equal(1);
|
|
89
89
|
});
|
|
90
90
|
|
|
91
|
-
it("bob can
|
|
92
|
-
const
|
|
93
|
-
|
|
91
|
+
it("bob can initialize and increment his counter", async () => {
|
|
92
|
+
const initTx = await counter.call(bob, "init", []);
|
|
93
|
+
console.log(` Bob init transaction: ${initTx.hash}`);
|
|
94
94
|
|
|
95
|
-
// Bob increments his own counter
|
|
96
95
|
const tx = await counter.call(bob, "increment", []);
|
|
97
|
-
console.log(` Bob's transaction: ${tx.hash}`);
|
|
96
|
+
console.log(` Bob's increment transaction: ${tx.hash}`);
|
|
98
97
|
|
|
99
|
-
// Read counter value for Bob (each user has their own counter)
|
|
100
98
|
const bobValue = await counter.view<string>("get", [
|
|
101
|
-
bob.accountAddress.toString()
|
|
99
|
+
bob.accountAddress.toString(),
|
|
102
100
|
]);
|
|
103
101
|
|
|
104
102
|
console.log(` Bob's counter value: ${bobValue}`);
|
|
@@ -107,7 +105,9 @@ describe("Counter Contract", () => {
|
|
|
107
105
|
});
|
|
108
106
|
|
|
109
107
|
after(async () => {
|
|
110
|
-
//
|
|
111
|
-
|
|
108
|
+
// harness.cleanup() stops the local node and poisons the harness —
|
|
109
|
+
// any further method call (other than cleanup itself) throws
|
|
110
|
+
// HarnessDisposedError synchronously.
|
|
111
|
+
await harness.cleanup();
|
|
112
112
|
});
|
|
113
113
|
});
|
|
@@ -50,16 +50,10 @@ declare module 'movehat' {
|
|
|
50
50
|
createAccount: () => Account;
|
|
51
51
|
getAccount: (privateKey: string) => Account;
|
|
52
52
|
getAccountByIndex: (index: number) => Account;
|
|
53
|
-
switchNetwork: (networkName: string) => Promise<
|
|
53
|
+
switchNetwork: (networkName: string) => Promise<MovehatRuntime>;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
export function getMovehat(): Promise<MovehatRuntime>;
|
|
57
56
|
export function initRuntime(configOverride?: Partial<MovehatConfig>): Promise<MovehatRuntime>;
|
|
58
|
-
export function getRuntime(): MovehatRuntime;
|
|
59
|
-
|
|
60
|
-
export const mh: {
|
|
61
|
-
readonly runtime: MovehatRuntime;
|
|
62
|
-
};
|
|
63
57
|
}
|
|
64
58
|
|
|
65
59
|
declare module 'movehat/helpers' {
|
|
@@ -68,12 +62,15 @@ declare module 'movehat/helpers' {
|
|
|
68
62
|
export interface TestEnvironment {
|
|
69
63
|
aptos: Aptos;
|
|
70
64
|
account: Account;
|
|
71
|
-
config:
|
|
65
|
+
config: import('movehat').MovehatConfig;
|
|
72
66
|
}
|
|
73
67
|
|
|
74
68
|
export class MoveContract {
|
|
75
69
|
constructor(aptos: Aptos, address: string, moduleName: string);
|
|
76
|
-
|
|
70
|
+
// args: any[] mirrors the runtime declaration — Move entry-function
|
|
71
|
+
// arguments are heterogeneous primitives validated by the Aptos SDK
|
|
72
|
+
// at submit time.
|
|
73
|
+
call(sender: Account, functionName: string, args: any[]): Promise<TransactionResult>;
|
|
77
74
|
view<T>(functionName: string, args: any[]): Promise<T>;
|
|
78
75
|
}
|
|
79
76
|
|
package/dist/types/config.d.ts
CHANGED
|
@@ -51,6 +51,14 @@ export interface LocalTestOptions {
|
|
|
51
51
|
forkName?: string;
|
|
52
52
|
forkPort?: number;
|
|
53
53
|
forkResetState?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Optional API key sent as `Authorization: Bearer <key>` on every
|
|
56
|
+
* outgoing Movement API request made by the fork's
|
|
57
|
+
* `MovementApiClient`. Use for rate-limited public endpoints or
|
|
58
|
+
* auth-gated nodes. The key stays in process memory only — not
|
|
59
|
+
* persisted to the fork's on-disk metadata.
|
|
60
|
+
*/
|
|
61
|
+
forkApiKey?: string;
|
|
54
62
|
autoFund?: boolean;
|
|
55
63
|
defaultBalance?: number;
|
|
56
64
|
autoDeploy?: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC"}
|
package/dist/types/fork.d.ts
CHANGED
|
@@ -32,6 +32,12 @@ export interface AccountData {
|
|
|
32
32
|
}
|
|
33
33
|
export interface AccountResource {
|
|
34
34
|
type: string;
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Move resource payload — structurally a JSON-shaped object whose
|
|
37
|
+
* schema depends on the resource type (CoinStore, AggregatorSnapshot, etc).
|
|
38
|
+
* unknown forces callers to narrow before access; the boundary-validation
|
|
39
|
+
* follow-up of #57 will add per-resource type guards.
|
|
40
|
+
*/
|
|
41
|
+
data: unknown;
|
|
36
42
|
}
|
|
37
43
|
//# sourceMappingURL=fork.d.ts.map
|
package/dist/types/fork.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../src/types/fork.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../src/types/fork.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,IAAI,EAAE,OAAO,CAAC;CACf"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import type { DeploymentInfo } from "../core/deployments.js";
|
|
2
|
+
import type { ChildProcessAdapter } from "../utils/childProcessAdapter.js";
|
|
3
|
+
/**
|
|
4
|
+
* Options for `harness.deployCodeObject(options)`.
|
|
5
|
+
*
|
|
6
|
+
* Wraps `movement move deploy-object`. The Movement CLI derives the
|
|
7
|
+
* destination object address from the signing account; that address is
|
|
8
|
+
* bound to `moduleName` (passed as `--address-name`) at compile time.
|
|
9
|
+
* Callers retrieve the resulting object address via the returned
|
|
10
|
+
* `CodeObjectInfo.address`.
|
|
11
|
+
*/
|
|
12
|
+
export interface DeployCodeObjectOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Logical module identifier (the `name` part of `module addr::name`).
|
|
15
|
+
* Used as the persistence key (`deployments/{network}/{moduleName}.json`)
|
|
16
|
+
* and as the `name` arg you'd pass to `runtime.getContract(addr, name)`
|
|
17
|
+
* after deployment.
|
|
18
|
+
*
|
|
19
|
+
* If `addressName` is omitted, `moduleName` is also used as the CLI's
|
|
20
|
+
* `--address-name` flag (correct when the Move.toml's named address
|
|
21
|
+
* matches the module identifier). For packages where they differ —
|
|
22
|
+
* e.g. `module hello_blockchain::counter` (named address
|
|
23
|
+
* `hello_blockchain`, module `counter`) — set `addressName` explicitly.
|
|
24
|
+
*/
|
|
25
|
+
moduleName: string;
|
|
26
|
+
/**
|
|
27
|
+
* Move.toml named address that the derived object address binds to
|
|
28
|
+
* at compile time (the `--address-name` flag of `move deploy-object`).
|
|
29
|
+
*
|
|
30
|
+
* Defaults to `moduleName`. Set this when the Move.toml's named
|
|
31
|
+
* address differs from the on-chain module identifier:
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* // Move source: `module hello_blockchain::counter`
|
|
35
|
+
* // Move.toml: `[addresses] hello_blockchain = "_"`
|
|
36
|
+
* await harness.deployCodeObject({
|
|
37
|
+
* moduleName: "counter", // for getContract + save key
|
|
38
|
+
* addressName: "hello_blockchain", // for --address-name
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
addressName?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Extra named-address overrides merged on top of the addresses
|
|
45
|
+
* auto-detected from `<packageDir>/sources/**.move`. Values here win
|
|
46
|
+
* for the matching keys; auto-detected names not present here are
|
|
47
|
+
* still pinned to the deployer address (Publisher convention).
|
|
48
|
+
*/
|
|
49
|
+
namedAddresses?: Record<string, string>;
|
|
50
|
+
/**
|
|
51
|
+
* Path to the Move package. Defaults to `config.moveDir` from the
|
|
52
|
+
* harness's runtime config (usually `./move`).
|
|
53
|
+
*/
|
|
54
|
+
packageDir?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Artifact set written into the on-chain package. Mirrors the CLI
|
|
57
|
+
* flag. Defaults to `'sparse'` (the Movement CLI default).
|
|
58
|
+
*/
|
|
59
|
+
includedArtifacts?: "none" | "sparse" | "all";
|
|
60
|
+
/**
|
|
61
|
+
* Test-only override for the child-process adapter. Production callers
|
|
62
|
+
* leave this undefined so the default spawn-based adapter is used.
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
adapter?: ChildProcessAdapter;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Options for `harness.upgradeCodeObject(options)`.
|
|
69
|
+
*
|
|
70
|
+
* Wraps `movement move upgrade-object`. The object must already exist
|
|
71
|
+
* on-chain at `objectAddress` and have been deployed previously (typically
|
|
72
|
+
* via `deployCodeObject`).
|
|
73
|
+
*/
|
|
74
|
+
export interface UpgradeCodeObjectOptions extends DeployCodeObjectOptions {
|
|
75
|
+
/** Address of the existing code object to upgrade. Required. */
|
|
76
|
+
objectAddress: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Result of `deployCodeObject` / `upgradeCodeObject`.
|
|
80
|
+
*
|
|
81
|
+
* Today this is structurally identical to {@link DeploymentInfo} — the
|
|
82
|
+
* `address` field holds the derived **object address** (the value
|
|
83
|
+
* callers pass to `runtime.getContract(...)` to interact with the
|
|
84
|
+
* modules), and `deployer` is the signing account.
|
|
85
|
+
*
|
|
86
|
+
* The alias exists so future iterations can layer additional fields
|
|
87
|
+
* (e.g. an explicit `kind: 'code-object' | 'publish'` discriminator)
|
|
88
|
+
* without churning every callsite.
|
|
89
|
+
*/
|
|
90
|
+
export type CodeObjectInfo = DeploymentInfo;
|
|
91
|
+
/**
|
|
92
|
+
* Options for `harness.runViewFunction(options)`.
|
|
93
|
+
*
|
|
94
|
+
* Delegates to the Aptos SDK's `aptos.view(...)` — no CLI invocation,
|
|
95
|
+
* no profile management. Works on `createLocal`, `createFork`, and
|
|
96
|
+
* `createLive` harnesses (view functions are read-only).
|
|
97
|
+
*/
|
|
98
|
+
export interface RunViewFunctionOptions {
|
|
99
|
+
/**
|
|
100
|
+
* Fully qualified Move function id, e.g. `0xCAFE::counter::get`.
|
|
101
|
+
*/
|
|
102
|
+
function: string;
|
|
103
|
+
/**
|
|
104
|
+
* Move type-tag arguments, e.g. `['0x1::aptos_coin::AptosCoin']`.
|
|
105
|
+
*/
|
|
106
|
+
typeArguments?: string[];
|
|
107
|
+
/**
|
|
108
|
+
* Move function arguments. SDK-validated at the boundary; pass values
|
|
109
|
+
* matching the Move function signature (strings for `address`,
|
|
110
|
+
* numbers / bigints for `u8`-`u256`, booleans, etc.).
|
|
111
|
+
*/
|
|
112
|
+
functionArguments?: unknown[];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Options for `harness.runMoveScript(options)`.
|
|
116
|
+
*
|
|
117
|
+
* Wraps `movement move run-script`. The CLI handles compilation
|
|
118
|
+
* inline when given a `.move` source; the user can also pass a
|
|
119
|
+
* pre-compiled `.mv` bytecode file.
|
|
120
|
+
*
|
|
121
|
+
* Not available on fork-mode harnesses (forks are read-only).
|
|
122
|
+
*/
|
|
123
|
+
export interface RunMoveScriptOptions {
|
|
124
|
+
/**
|
|
125
|
+
* Path to the Move script. Extension determines the CLI flag:
|
|
126
|
+
* - `.move` → `--script-path` (CLI auto-compiles)
|
|
127
|
+
* - `.mv` → `--compiled-script-path` (user pre-compiled)
|
|
128
|
+
* Other extensions throw synchronously before any CLI call.
|
|
129
|
+
*/
|
|
130
|
+
scriptPath: string;
|
|
131
|
+
/**
|
|
132
|
+
* CLI-formatted typed arguments. Movement CLI expects each arg
|
|
133
|
+
* prefixed by its Move type, e.g. `'address:0x1'`, `'u8:42'`,
|
|
134
|
+
* `'bool:true'`, `'string:hello'`. See
|
|
135
|
+
* `movement move run-script --help` for the full grammar.
|
|
136
|
+
*/
|
|
137
|
+
args?: string[];
|
|
138
|
+
/**
|
|
139
|
+
* Type-tag arguments for generic scripts, e.g.
|
|
140
|
+
* `['0x1::aptos_coin::AptosCoin']`.
|
|
141
|
+
*/
|
|
142
|
+
typeArgs?: string[];
|
|
143
|
+
/**
|
|
144
|
+
* Optional working directory for compilation. Most callers leave
|
|
145
|
+
* this undefined — the CLI uses the script's parent directory.
|
|
146
|
+
*/
|
|
147
|
+
packageDir?: string;
|
|
148
|
+
/**
|
|
149
|
+
* Test-only override for the child-process adapter.
|
|
150
|
+
* @internal
|
|
151
|
+
*/
|
|
152
|
+
adapter?: ChildProcessAdapter;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Result of `harness.runMoveScript`.
|
|
156
|
+
*
|
|
157
|
+
* Always carries `txHash` (parser throws if it can't extract one).
|
|
158
|
+
* `success` and `vmStatus` are best-effort: parsed from the CLI's
|
|
159
|
+
* JSON `Result` block when present, `undefined` if the parser misses.
|
|
160
|
+
*/
|
|
161
|
+
export interface MoveScriptResult {
|
|
162
|
+
txHash: string;
|
|
163
|
+
success?: boolean;
|
|
164
|
+
vmStatus?: string;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=harness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/types/harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAE9C;;;;OAIG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/types/harness.ts"],"names":[],"mappings":""}
|
package/dist/types/runtime.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Aptos, Account } from "@aptos-labs/ts-sdk";
|
|
|
2
2
|
import { MovehatConfig } from "./config.js";
|
|
3
3
|
import { MoveContract } from "../core/contract.js";
|
|
4
4
|
import { DeploymentInfo } from "../core/deployments.js";
|
|
5
|
+
import type { ChildProcessAdapter } from "../utils/childProcessAdapter.js";
|
|
5
6
|
export interface NetworkInfo {
|
|
6
7
|
name: string;
|
|
7
8
|
rpc: string;
|
|
@@ -16,6 +17,11 @@ export interface MovehatRuntime {
|
|
|
16
17
|
getContract: (address: string, moduleName: string) => MoveContract;
|
|
17
18
|
deployContract: (moduleName: string, options?: {
|
|
18
19
|
packageDir?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Override the child-process adapter. Test-only: production callers
|
|
22
|
+
* leave this undefined so the default spawn-based adapter is used.
|
|
23
|
+
*/
|
|
24
|
+
adapter?: ChildProcessAdapter;
|
|
19
25
|
}) => Promise<DeploymentInfo>;
|
|
20
26
|
getDeployment: (moduleName: string) => DeploymentInfo | null;
|
|
21
27
|
getDeployments: () => Record<string, DeploymentInfo>;
|
|
@@ -23,6 +29,6 @@ export interface MovehatRuntime {
|
|
|
23
29
|
createAccount: () => Account;
|
|
24
30
|
getAccount: (privateKey: string) => Account;
|
|
25
31
|
getAccountByIndex: (index: number) => Account;
|
|
26
|
-
switchNetwork: (networkName: string) => Promise<
|
|
32
|
+
switchNetwork: (networkName: string) => Promise<MovehatRuntime>;
|
|
27
33
|
}
|
|
28
34
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/types/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/types/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAE7B,MAAM,EAAE,aAAa,CAAC;IAGtB,OAAO,EAAE,WAAW,CAAC;IAGrB,KAAK,EAAE,KAAK,CAAC;IAGb,OAAO,EAAE,OAAO,CAAC;IAGjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IAGpB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,YAAY,CAAC;IAGnE,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;WAGG;QACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;KAC/B,KACE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;IAC7D,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAG5D,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAK9C,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.test.d.ts","sourceRoot":"","sources":["../../../src/ui/__tests__/colors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { shouldUseColor, colors, rgbToAnsi, applyGradient, gradients, } from '../colors.js';
|
|
3
|
+
describe('shouldUseColor', () => {
|
|
4
|
+
const originalEnv = process.env;
|
|
5
|
+
const originalIsTTY = process.stdout.isTTY;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
process.env = { ...originalEnv };
|
|
8
|
+
delete process.env.NO_COLOR;
|
|
9
|
+
});
|
|
10
|
+
afterEach(() => {
|
|
11
|
+
process.env = originalEnv;
|
|
12
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: originalIsTTY });
|
|
13
|
+
});
|
|
14
|
+
it('should return true when TTY and NO_COLOR not set', () => {
|
|
15
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: true, configurable: true });
|
|
16
|
+
delete process.env.NO_COLOR;
|
|
17
|
+
expect(shouldUseColor()).toBe(true);
|
|
18
|
+
});
|
|
19
|
+
it('should return false when NO_COLOR is set', () => {
|
|
20
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: true, configurable: true });
|
|
21
|
+
process.env.NO_COLOR = '1';
|
|
22
|
+
expect(shouldUseColor()).toBe(false);
|
|
23
|
+
});
|
|
24
|
+
it('should return false when not TTY', () => {
|
|
25
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: false, configurable: true });
|
|
26
|
+
delete process.env.NO_COLOR;
|
|
27
|
+
expect(shouldUseColor()).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe('rgbToAnsi', () => {
|
|
31
|
+
it('should generate correct ANSI escape code', () => {
|
|
32
|
+
expect(rgbToAnsi(255, 0, 0)).toBe('\x1b[38;2;255;0;0m');
|
|
33
|
+
expect(rgbToAnsi(0, 255, 0)).toBe('\x1b[38;2;0;255;0m');
|
|
34
|
+
expect(rgbToAnsi(0, 0, 255)).toBe('\x1b[38;2;0;0;255m');
|
|
35
|
+
expect(rgbToAnsi(128, 128, 128)).toBe('\x1b[38;2;128;128;128m');
|
|
36
|
+
});
|
|
37
|
+
it('should handle edge values', () => {
|
|
38
|
+
expect(rgbToAnsi(0, 0, 0)).toBe('\x1b[38;2;0;0;0m');
|
|
39
|
+
expect(rgbToAnsi(255, 255, 255)).toBe('\x1b[38;2;255;255;255m');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('applyGradient', () => {
|
|
43
|
+
const originalEnv = process.env;
|
|
44
|
+
const originalIsTTY = process.stdout.isTTY;
|
|
45
|
+
beforeEach(() => {
|
|
46
|
+
process.env = { ...originalEnv };
|
|
47
|
+
delete process.env.NO_COLOR;
|
|
48
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: true, configurable: true });
|
|
49
|
+
});
|
|
50
|
+
afterEach(() => {
|
|
51
|
+
process.env = originalEnv;
|
|
52
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: originalIsTTY });
|
|
53
|
+
});
|
|
54
|
+
it('should apply gradient to text', () => {
|
|
55
|
+
const palette = [[255, 0, 0], [0, 255, 0]];
|
|
56
|
+
const result = applyGradient('AB', palette);
|
|
57
|
+
expect(result).toContain('\x1b[38;2;255;0;0m'); // Red for 'A'
|
|
58
|
+
expect(result).toContain('\x1b[38;2;0;255;0m'); // Green for 'B'
|
|
59
|
+
expect(result).toContain('A');
|
|
60
|
+
expect(result).toContain('B');
|
|
61
|
+
expect(result).toContain('\x1b[0m'); // Reset at end
|
|
62
|
+
});
|
|
63
|
+
it('should return plain text when colors disabled', () => {
|
|
64
|
+
process.env.NO_COLOR = '1';
|
|
65
|
+
const palette = [[255, 0, 0]];
|
|
66
|
+
const result = applyGradient('Hello', palette);
|
|
67
|
+
expect(result).toBe('Hello');
|
|
68
|
+
expect(result).not.toContain('\x1b');
|
|
69
|
+
});
|
|
70
|
+
it('should cycle through palette for long text', () => {
|
|
71
|
+
const palette = [[255, 0, 0], [0, 255, 0]];
|
|
72
|
+
const result = applyGradient('ABCD', palette);
|
|
73
|
+
// Should alternate: A=red, B=green, C=red, D=green
|
|
74
|
+
expect(result).toContain('A');
|
|
75
|
+
expect(result).toContain('B');
|
|
76
|
+
expect(result).toContain('C');
|
|
77
|
+
expect(result).toContain('D');
|
|
78
|
+
});
|
|
79
|
+
it('should handle offset parameter', () => {
|
|
80
|
+
const palette = [[255, 0, 0], [0, 255, 0]];
|
|
81
|
+
const result = applyGradient('AB', palette, 1);
|
|
82
|
+
// With offset 1: A=green, B=red
|
|
83
|
+
expect(result.indexOf('\x1b[38;2;0;255;0m')).toBeLessThan(result.indexOf('\x1b[38;2;255;0;0m'));
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe('gradients', () => {
|
|
87
|
+
it('should have movehat gradient with 5 colors', () => {
|
|
88
|
+
expect(gradients.movehat).toHaveLength(5);
|
|
89
|
+
gradients.movehat.forEach(([r, g, b]) => {
|
|
90
|
+
expect(r).toBeGreaterThanOrEqual(0);
|
|
91
|
+
expect(r).toBeLessThanOrEqual(255);
|
|
92
|
+
expect(g).toBeGreaterThanOrEqual(0);
|
|
93
|
+
expect(g).toBeLessThanOrEqual(255);
|
|
94
|
+
expect(b).toBeGreaterThanOrEqual(0);
|
|
95
|
+
expect(b).toBeLessThanOrEqual(255);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
it('should have success gradient', () => {
|
|
99
|
+
expect(gradients.success).toBeDefined();
|
|
100
|
+
expect(gradients.success.length).toBeGreaterThan(0);
|
|
101
|
+
});
|
|
102
|
+
it('should have error gradient', () => {
|
|
103
|
+
expect(gradients.error).toBeDefined();
|
|
104
|
+
expect(gradients.error.length).toBeGreaterThan(0);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe('colors object', () => {
|
|
108
|
+
it('should have all semantic color functions', () => {
|
|
109
|
+
expect(typeof colors.success).toBe('function');
|
|
110
|
+
expect(typeof colors.error).toBe('function');
|
|
111
|
+
expect(typeof colors.warning).toBe('function');
|
|
112
|
+
expect(typeof colors.info).toBe('function');
|
|
113
|
+
expect(typeof colors.primary).toBe('function');
|
|
114
|
+
expect(typeof colors.secondary).toBe('function');
|
|
115
|
+
expect(typeof colors.muted).toBe('function');
|
|
116
|
+
expect(typeof colors.dim).toBe('function');
|
|
117
|
+
expect(typeof colors.bold).toBe('function');
|
|
118
|
+
expect(typeof colors.brand).toBe('function');
|
|
119
|
+
expect(typeof colors.brandBright).toBe('function');
|
|
120
|
+
});
|
|
121
|
+
it('should return strings when called', () => {
|
|
122
|
+
expect(typeof colors.success('test')).toBe('string');
|
|
123
|
+
expect(typeof colors.error('test')).toBe('string');
|
|
124
|
+
expect(typeof colors.brand('test')).toBe('string');
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=colors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.test.js","sourceRoot":"","sources":["../../../src/ui/__tests__/colors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAM,MAAM,QAAQ,CAAC;AACzE,OAAO,EACL,cAAc,EACd,MAAM,EACN,SAAS,EACT,aAAa,EACb,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAE3C,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;QAC1B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC5B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC3B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC5B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAE3C,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;QAC1B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAA+B,CAAC;QACzE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAA+B,CAAC;QAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAA+B,CAAC;QACzE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9C,mDAAmD;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAA+B,CAAC;QACzE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAE/C,gCAAgC;QAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/ui/colors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/ui/colors.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,OAEjC,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,MAAM;mBARM,MAAM,KAAK,MAAM;iBAAjB,MAAM,KAAK,MAAM;mBAAjB,MAAM,KAAK,MAAM;gBAAjB,MAAM,KAAK,MAAM;mBAAjB,MAAM,KAAK,MAAM;qBAAjB,MAAM,KAAK,MAAM;iBAAjB,MAAM,KAAK,MAAM;eAAjB,MAAM,KAAK,MAAM;gBAAjB,MAAM,KAAK,MAAM;iBAAjB,MAAM,KAAK,MAAM;uBAAjB,MAAM,KAAK,MAAM;;8BAdtB,CAAC;;CA0CpB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAE3D,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,SAAS,GAAG,EAAE,EACd,SAAQ,MAAU,KACjB,
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/ui/colors.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,OAEjC,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,MAAM;mBARM,MAAM,KAAK,MAAM;iBAAjB,MAAM,KAAK,MAAM;mBAAjB,MAAM,KAAK,MAAM;gBAAjB,MAAM,KAAK,MAAM;mBAAjB,MAAM,KAAK,MAAM;qBAAjB,MAAM,KAAK,MAAM;iBAAjB,MAAM,KAAK,MAAM;eAAjB,MAAM,KAAK,MAAM;gBAAjB,MAAM,KAAK,MAAM;iBAAjB,MAAM,KAAK,MAAM;uBAAjB,MAAM,KAAK,MAAM;;8BAdtB,CAAC;;CA0CpB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAE3D,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,SAAS,GAAG,EAAE,EACd,SAAQ,MAAU,KACjB,MAaF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;;OAGG;aAOE,GAAG,EAAE;IAEV;;;OAGG;aAKE,GAAG,EAAE;IAEV;;;OAGG;WAKE,GAAG,EAAE;CACX,CAAC"}
|
package/dist/ui/colors.js
CHANGED
|
@@ -69,8 +69,12 @@ export const applyGradient = (text, palette, offset = 0) => {
|
|
|
69
69
|
let result = '';
|
|
70
70
|
for (let i = 0; i < text.length; i++) {
|
|
71
71
|
const colorIndex = (i + offset) % palette.length;
|
|
72
|
-
const
|
|
73
|
-
|
|
72
|
+
const color = palette[colorIndex];
|
|
73
|
+
const ch = text[i];
|
|
74
|
+
if (!color || ch === undefined)
|
|
75
|
+
continue;
|
|
76
|
+
const [r, g, b] = color;
|
|
77
|
+
result += `${rgbToAnsi(r, g, b)}${ch}`;
|
|
74
78
|
}
|
|
75
79
|
return result + '\x1b[0m';
|
|
76
80
|
};
|