From 0e498db9c6d02cce62a3ba2a6f9d519942722f7d Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Thu, 1 May 2025 15:04:33 -0700 Subject: [PATCH 1/6] refactor: Begin npm publishing preparations Rename and reconfigure: - @ocap/kernel -> @metamask/ocap-kernel - @ocap/store -> @metamask/kernel-store - @ocap/utils -> @metamask/kernel-utils --- .cursorrules | 2 +- LICENSE | 18 ++ eslint.config.mjs | 1 - packages/brow-2-brow/tsconfig.json | 2 +- packages/cli/package.json | 2 +- packages/cli/src/commands/serve.test.ts | 2 +- packages/cli/test/integration/serve.test.ts | 2 +- packages/cli/tsconfig.build.json | 2 +- packages/cli/tsconfig.json | 2 +- packages/create-package/tsconfig.json | 2 +- packages/errors/tsconfig.build.json | 2 +- packages/errors/tsconfig.json | 2 +- packages/extension/package.json | 6 +- packages/extension/src/background.ts | 6 +- packages/extension/src/iframe.ts | 6 +- .../VatWorkerClient.test.ts | 4 +- .../src/kernel-integration/VatWorkerClient.ts | 8 +- .../VatWorkerServer.test.ts | 6 +- .../src/kernel-integration/VatWorkerServer.ts | 6 +- .../handlers/clear-state.test.ts | 2 +- .../handlers/clear-state.ts | 4 +- .../handlers/collect-garbage.test.ts | 2 +- .../handlers/collect-garbage.ts | 4 +- .../handlers/get-status.test.ts | 2 +- .../kernel-integration/handlers/get-status.ts | 10 +- .../handlers/launch-vat.test.ts | 2 +- .../kernel-integration/handlers/launch-vat.ts | 4 +- .../handlers/reload-config.test.ts | 2 +- .../handlers/reload-config.ts | 4 +- .../handlers/restart-vat.test.ts | 2 +- .../handlers/restart-vat.ts | 4 +- .../handlers/send-vat-command.test.ts | 2 +- .../handlers/send-vat-command.ts | 8 +- .../handlers/terminate-all-vats.test.ts | 2 +- .../handlers/terminate-all-vats.ts | 4 +- .../handlers/terminate-vat.test.ts | 2 +- .../handlers/terminate-vat.ts | 4 +- .../handlers/update-cluster-config.test.ts | 2 +- .../handlers/update-cluster-config.ts | 4 +- .../kernel-integration/iframe-vat-worker.ts | 2 +- .../src/kernel-integration/kernel-worker.ts | 10 +- .../middleware/panel-message.test.ts | 4 +- .../middleware/panel-message.ts | 4 +- .../kernel-integration/ui-connections.test.ts | 2 +- .../src/kernel-integration/ui-connections.ts | 4 +- .../kernel-integration/ui-control-command.ts | 2 +- packages/extension/src/offscreen.ts | 4 +- .../src/ui/components/ConfigEditor.tsx | 2 +- .../src/ui/components/MessagePanel.test.tsx | 4 +- .../src/ui/context/PanelContext.test.tsx | 2 +- .../extension/src/ui/context/PanelContext.tsx | 2 +- .../src/ui/hooks/useDatabase.test.ts | 2 +- .../extension/src/ui/hooks/useDatabase.ts | 2 +- .../src/ui/hooks/useKernelActions.test.ts | 2 +- .../src/ui/hooks/useKernelActions.ts | 4 +- .../src/ui/hooks/useStatusPolling.ts | 2 +- .../extension/src/ui/hooks/useVats.test.ts | 4 +- packages/extension/src/ui/hooks/useVats.ts | 4 +- packages/extension/src/ui/types.ts | 2 +- packages/extension/src/ui/utils.ts | 2 +- packages/extension/tsconfig.build.json | 6 +- packages/extension/tsconfig.json | 6 +- .../{kernel => kernel-store}/CHANGELOG.md | 0 packages/kernel-store/LICENSE | 18 ++ packages/{store => kernel-store}/README.md | 6 +- packages/{store => kernel-store}/package.json | 22 +- packages/{store => kernel-store}/src/index.ts | 0 .../src/sqlite/common.test.ts | 0 .../src/sqlite/common.ts | 0 .../src/sqlite/env.test.ts | 0 .../{store => kernel-store}/src/sqlite/env.ts | 0 .../src/sqlite/nodejs.test.ts | 0 .../src/sqlite/nodejs.ts | 0 .../src/sqlite/wasm.test.ts | 0 .../src/sqlite/wasm.ts | 0 packages/{store => kernel-store}/src/types.ts | 0 .../tsconfig.build.json | 0 .../{store => kernel-store}/tsconfig.json | 0 packages/{store => kernel-store}/typedoc.json | 0 .../{store => kernel-store}/vitest.config.ts | 0 packages/kernel-test/package.json | 8 +- packages/kernel-test/src/exo.test.ts | 10 +- .../src/garbage-collection.test.ts | 15 +- packages/kernel-test/src/liveslots.test.ts | 6 +- packages/kernel-test/src/resume.test.ts | 4 +- packages/kernel-test/src/supervisor.test.ts | 8 +- packages/kernel-test/src/utils.ts | 8 +- packages/kernel-test/src/vatstore.test.ts | 6 +- packages/kernel-test/tsconfig.build.json | 4 +- packages/kernel-test/tsconfig.json | 6 +- packages/{store => kernel-utils}/CHANGELOG.md | 0 packages/kernel-utils/LICENSE | 18 ++ packages/{utils => kernel-utils}/README.md | 10 +- packages/{utils => kernel-utils}/package.json | 24 +- .../src/fetchValidatedJson.test.ts | 0 .../src/fetchValidatedJson.ts | 0 .../{utils => kernel-utils}/src/index.test.ts | 0 packages/{utils => kernel-utils}/src/index.ts | 0 .../{utils => kernel-utils}/src/misc.test.ts | 0 packages/{utils => kernel-utils}/src/misc.ts | 0 .../src/stringify.test.ts | 0 .../{utils => kernel-utils}/src/stringify.ts | 0 .../{utils => kernel-utils}/src/types.test.ts | 0 packages/{utils => kernel-utils}/src/types.ts | 0 .../src/wait-quiescent.test.ts | 0 .../src/wait-quiescent.ts | 0 .../tsconfig.build.json | 0 .../{utils => kernel-utils}/tsconfig.json | 0 packages/{utils => kernel-utils}/typedoc.json | 0 .../{utils => kernel-utils}/vitest.config.ts | 0 packages/nodejs/package.json | 6 +- .../src/kernel/VatWorkerManager.test.ts | 4 +- .../nodejs/src/kernel/VatWorkerManager.ts | 6 +- .../nodejs/src/kernel/make-kernel.test.ts | 6 +- packages/nodejs/src/kernel/make-kernel.ts | 4 +- packages/nodejs/src/vat/streams.ts | 4 +- packages/nodejs/src/vat/vat-worker.ts | 4 +- .../nodejs/test/e2e/VatWorkerManager.test.ts | 4 +- .../nodejs/test/e2e/kernel-worker.test.ts | 4 +- packages/nodejs/test/e2e/vat-worker.test.ts | 4 +- packages/nodejs/tsconfig.build.json | 6 +- packages/nodejs/tsconfig.json | 6 +- packages/{utils => ocap-kernel}/CHANGELOG.md | 0 packages/ocap-kernel/LICENSE | 18 ++ packages/{kernel => ocap-kernel}/README.md | 12 +- packages/{kernel => ocap-kernel}/package.json | 28 +- .../src/Kernel.test.ts | 4 +- .../{kernel => ocap-kernel}/src/Kernel.ts | 4 +- .../src/KernelQueue.test.ts | 0 .../src/KernelQueue.ts | 0 .../src/KernelRouter.test.ts | 0 .../src/KernelRouter.ts | 0 .../src/VatHandle.test.ts | 4 +- .../{kernel => ocap-kernel}/src/VatHandle.ts | 4 +- .../src/VatSupervisor.test.ts | 4 +- .../src/VatSupervisor.ts | 6 +- .../src/VatSyscall.test.ts | 0 .../{kernel => ocap-kernel}/src/VatSyscall.ts | 0 .../{kernel => ocap-kernel}/src/index.test.ts | 0 packages/{kernel => ocap-kernel}/src/index.ts | 0 .../src/rpc/index.test.ts | 0 .../{kernel => ocap-kernel}/src/rpc/index.ts | 0 .../src/rpc/kernel/index.ts | 0 .../src/rpc/vat-syscall/index.ts | 0 .../src/rpc/vat-syscall/vat-syscall.test.ts | 0 .../src/rpc/vat-syscall/vat-syscall.ts | 0 .../src/rpc/vat-worker-service/index.ts | 0 .../src/rpc/vat-worker-service/launch.ts | 0 .../src/rpc/vat-worker-service/terminate.ts | 0 .../rpc/vat-worker-service/terminateAll.ts | 2 +- .../src/rpc/vat/deliver.test.ts | 0 .../src/rpc/vat/deliver.ts | 2 +- .../src/rpc/vat/index.ts | 0 .../src/rpc/vat/initVat.test.ts | 0 .../src/rpc/vat/initVat.ts | 2 +- .../src/rpc/vat/ping.test.ts | 0 .../src/rpc/vat/ping.ts | 2 +- .../src/rpc/vat/shared.ts | 2 +- .../src/services/garbage-collection.test.ts | 0 .../src/services/garbage-collection.ts | 0 .../src/services/gc-engine.ts | 0 .../src/services/gc-finalize.test.ts | 2 +- .../src/services/gc-finalize.ts | 2 +- .../src/services/kernel-marshal.test.ts | 0 .../src/services/kernel-marshal.ts | 0 .../src/services/meter-control.test.ts | 0 .../src/services/meter-control.ts | 0 .../src/services/syscall.test.ts | 2 +- .../src/services/syscall.ts | 2 +- .../src/services/types.ts | 0 .../src/store/index.test.ts | 2 +- .../src/store/index.ts | 2 +- .../src/store/methods/base.test.ts | 2 +- .../src/store/methods/base.ts | 2 +- .../src/store/methods/clist.test.ts | 2 +- .../src/store/methods/clist.ts | 0 .../src/store/methods/gc.test.ts | 0 .../src/store/methods/gc.ts | 0 .../src/store/methods/id.test.ts | 2 +- .../src/store/methods/id.ts | 0 .../src/store/methods/object.test.ts | 2 +- .../src/store/methods/object.ts | 0 .../src/store/methods/pinned.test.ts | 0 .../src/store/methods/pinned.ts | 0 .../src/store/methods/promise.test.ts | 0 .../src/store/methods/promise.ts | 0 .../src/store/methods/queue.test.ts | 0 .../src/store/methods/queue.ts | 0 .../src/store/methods/reachable.test.ts | 0 .../src/store/methods/reachable.ts | 0 .../src/store/methods/refcount.test.ts | 2 +- .../src/store/methods/refcount.ts | 0 .../src/store/methods/translators.test.ts | 0 .../src/store/methods/translators.ts | 0 .../src/store/methods/vat.test.ts | 0 .../src/store/methods/vat.ts | 0 .../src/store/types.ts | 2 +- .../src/store/utils/extract-ref.test.ts | 0 .../src/store/utils/extract-ref.ts | 0 .../src/store/utils/kernel-slots.test.ts | 0 .../src/store/utils/kernel-slots.ts | 0 .../src/store/utils/parse-ref.test.ts | 0 .../src/store/utils/parse-ref.ts | 0 .../src/store/utils/promise-ref.test.ts | 0 .../src/store/utils/promise-ref.ts | 0 .../src/store/utils/reachable.test.ts | 0 .../src/store/utils/reachable.ts | 0 .../src/store/vat-kv-store.test.ts | 0 .../src/store/vat-kv-store.ts | 2 +- .../{kernel => ocap-kernel}/src/types.test.ts | 0 packages/{kernel => ocap-kernel}/src/types.ts | 2 +- .../src/utils/assert.ts | 0 .../src/utils/key-search.test.ts | 0 .../src/utils/key-search.ts | 0 .../{kernel => ocap-kernel}/test/storage.ts | 2 +- .../tsconfig.build.json | 4 +- .../{kernel => ocap-kernel}/tsconfig.json | 4 +- packages/{kernel => ocap-kernel}/typedoc.json | 0 .../{kernel => ocap-kernel}/vitest.config.ts | 0 packages/rpc-methods/package.json | 4 +- packages/rpc-methods/src/RpcClient.ts | 4 +- packages/rpc-methods/tsconfig.build.json | 2 +- packages/rpc-methods/tsconfig.json | 2 +- packages/streams/package.json | 4 +- packages/streams/src/BaseDuplexStream.test.ts | 2 +- packages/streams/src/BaseDuplexStream.ts | 2 +- packages/streams/src/BaseStream.ts | 4 +- .../src/browser/ChromeRuntimeStream.test.ts | 2 +- .../src/browser/ChromeRuntimeStream.ts | 2 +- .../src/browser/MessagePortStream.test.ts | 2 +- .../src/browser/PostMessageStream.test.ts | 2 +- .../src/browser/message-channel.test.ts | 2 +- .../streams/src/browser/message-channel.ts | 2 +- .../streams/src/node/NodeWorkerStream.test.ts | 2 +- packages/streams/src/split.ts | 2 +- packages/streams/src/utils.test.ts | 2 +- packages/streams/src/utils.ts | 2 +- packages/streams/tsconfig.build.json | 2 +- packages/streams/tsconfig.json | 2 +- packages/test-utils/src/delay.ts | 2 +- packages/test-utils/src/env/mock-kernel.ts | 2 +- tsconfig.build.json | 6 +- tsconfig.json | 6 +- tsconfig.packages.json | 9 +- vitest.config.ts | 6 +- yarn.config.cjs | 57 +++- yarn.lock | 294 +++++++++--------- 247 files changed, 601 insertions(+), 423 deletions(-) create mode 100644 LICENSE rename packages/{kernel => kernel-store}/CHANGELOG.md (100%) create mode 100644 packages/kernel-store/LICENSE rename packages/{store => kernel-store}/README.md (71%) rename packages/{store => kernel-store}/package.json (87%) rename packages/{store => kernel-store}/src/index.ts (100%) rename packages/{store => kernel-store}/src/sqlite/common.test.ts (100%) rename packages/{store => kernel-store}/src/sqlite/common.ts (100%) rename packages/{store => kernel-store}/src/sqlite/env.test.ts (100%) rename packages/{store => kernel-store}/src/sqlite/env.ts (100%) rename packages/{store => kernel-store}/src/sqlite/nodejs.test.ts (100%) rename packages/{store => kernel-store}/src/sqlite/nodejs.ts (100%) rename packages/{store => kernel-store}/src/sqlite/wasm.test.ts (100%) rename packages/{store => kernel-store}/src/sqlite/wasm.ts (100%) rename packages/{store => kernel-store}/src/types.ts (100%) rename packages/{store => kernel-store}/tsconfig.build.json (100%) rename packages/{store => kernel-store}/tsconfig.json (100%) rename packages/{store => kernel-store}/typedoc.json (100%) rename packages/{store => kernel-store}/vitest.config.ts (100%) rename packages/{store => kernel-utils}/CHANGELOG.md (100%) create mode 100644 packages/kernel-utils/LICENSE rename packages/{utils => kernel-utils}/README.md (60%) rename packages/{utils => kernel-utils}/package.json (82%) rename packages/{utils => kernel-utils}/src/fetchValidatedJson.test.ts (100%) rename packages/{utils => kernel-utils}/src/fetchValidatedJson.ts (100%) rename packages/{utils => kernel-utils}/src/index.test.ts (100%) rename packages/{utils => kernel-utils}/src/index.ts (100%) rename packages/{utils => kernel-utils}/src/misc.test.ts (100%) rename packages/{utils => kernel-utils}/src/misc.ts (100%) rename packages/{utils => kernel-utils}/src/stringify.test.ts (100%) rename packages/{utils => kernel-utils}/src/stringify.ts (100%) rename packages/{utils => kernel-utils}/src/types.test.ts (100%) rename packages/{utils => kernel-utils}/src/types.ts (100%) rename packages/{utils => kernel-utils}/src/wait-quiescent.test.ts (100%) rename packages/{utils => kernel-utils}/src/wait-quiescent.ts (100%) rename packages/{utils => kernel-utils}/tsconfig.build.json (100%) rename packages/{utils => kernel-utils}/tsconfig.json (100%) rename packages/{utils => kernel-utils}/typedoc.json (100%) rename packages/{utils => kernel-utils}/vitest.config.ts (100%) rename packages/{utils => ocap-kernel}/CHANGELOG.md (100%) create mode 100644 packages/ocap-kernel/LICENSE rename packages/{kernel => ocap-kernel}/README.md (53%) rename packages/{kernel => ocap-kernel}/package.json (82%) rename packages/{kernel => ocap-kernel}/src/Kernel.test.ts (99%) rename packages/{kernel => ocap-kernel}/src/Kernel.ts (99%) rename packages/{kernel => ocap-kernel}/src/KernelQueue.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/KernelQueue.ts (100%) rename packages/{kernel => ocap-kernel}/src/KernelRouter.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/KernelRouter.ts (100%) rename packages/{kernel => ocap-kernel}/src/VatHandle.test.ts (96%) rename packages/{kernel => ocap-kernel}/src/VatHandle.ts (98%) rename packages/{kernel => ocap-kernel}/src/VatSupervisor.test.ts (96%) rename packages/{kernel => ocap-kernel}/src/VatSupervisor.ts (97%) rename packages/{kernel => ocap-kernel}/src/VatSyscall.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/VatSyscall.ts (100%) rename packages/{kernel => ocap-kernel}/src/index.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/index.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/index.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/index.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/kernel/index.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat-syscall/index.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat-syscall/vat-syscall.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat-syscall/vat-syscall.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat-worker-service/index.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat-worker-service/launch.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat-worker-service/terminate.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat-worker-service/terminateAll.ts (84%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/deliver.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/deliver.ts (97%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/index.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/initVat.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/initVat.ts (95%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/ping.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/ping.ts (90%) rename packages/{kernel => ocap-kernel}/src/rpc/vat/shared.ts (79%) rename packages/{kernel => ocap-kernel}/src/services/garbage-collection.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/services/garbage-collection.ts (100%) rename packages/{kernel => ocap-kernel}/src/services/gc-engine.ts (100%) rename packages/{kernel => ocap-kernel}/src/services/gc-finalize.test.ts (97%) rename packages/{kernel => ocap-kernel}/src/services/gc-finalize.ts (97%) rename packages/{kernel => ocap-kernel}/src/services/kernel-marshal.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/services/kernel-marshal.ts (100%) rename packages/{kernel => ocap-kernel}/src/services/meter-control.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/services/meter-control.ts (100%) rename packages/{kernel => ocap-kernel}/src/services/syscall.test.ts (99%) rename packages/{kernel => ocap-kernel}/src/services/syscall.ts (98%) rename packages/{kernel => ocap-kernel}/src/services/types.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/index.test.ts (99%) rename packages/{kernel => ocap-kernel}/src/store/index.ts (99%) rename packages/{kernel => ocap-kernel}/src/store/methods/base.test.ts (99%) rename packages/{kernel => ocap-kernel}/src/store/methods/base.ts (99%) rename packages/{kernel => ocap-kernel}/src/store/methods/clist.test.ts (99%) rename packages/{kernel => ocap-kernel}/src/store/methods/clist.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/gc.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/gc.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/id.test.ts (98%) rename packages/{kernel => ocap-kernel}/src/store/methods/id.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/object.test.ts (99%) rename packages/{kernel => ocap-kernel}/src/store/methods/object.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/pinned.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/pinned.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/promise.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/promise.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/queue.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/queue.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/reachable.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/reachable.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/refcount.test.ts (99%) rename packages/{kernel => ocap-kernel}/src/store/methods/refcount.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/translators.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/translators.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/vat.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/methods/vat.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/types.ts (92%) rename packages/{kernel => ocap-kernel}/src/store/utils/extract-ref.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/extract-ref.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/kernel-slots.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/kernel-slots.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/parse-ref.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/parse-ref.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/promise-ref.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/promise-ref.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/reachable.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/utils/reachable.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/vat-kv-store.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/store/vat-kv-store.ts (96%) rename packages/{kernel => ocap-kernel}/src/types.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/types.ts (99%) rename packages/{kernel => ocap-kernel}/src/utils/assert.ts (100%) rename packages/{kernel => ocap-kernel}/src/utils/key-search.test.ts (100%) rename packages/{kernel => ocap-kernel}/src/utils/key-search.ts (100%) rename packages/{kernel => ocap-kernel}/test/storage.ts (97%) rename packages/{kernel => ocap-kernel}/tsconfig.build.json (78%) rename packages/{kernel => ocap-kernel}/tsconfig.json (83%) rename packages/{kernel => ocap-kernel}/typedoc.json (100%) rename packages/{kernel => ocap-kernel}/vitest.config.ts (100%) diff --git a/.cursorrules b/.cursorrules index a94d89984..79f1b6b71 100644 --- a/.cursorrules +++ b/.cursorrules @@ -38,7 +38,7 @@ File and directory structure: - Maintain a monorepo structure using Yarn workspaces. - Place package source files under `/src/`. -- Co-locate a package's unit tests with their covered source files in the `/src/` directory (e.g. `kernel/src/kernel-worker.ts` should be tested in `kernel/src/kernel-worker.test.ts`). +- Co-locate a package's unit tests with their covered source files in the `/src/` directory (e.g. `ocap-kernel/src/kernel-worker.ts` should be tested in `ocap-kernel/src/kernel-worker.test.ts`). - Test utilities used by a single package should be separated into that package's `/test/` directory. - If the utility is small, it can be in-lined in the test file. - Test utilities used by multiple packages should be relocated into the dedicated `test-utils` package. diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/eslint.config.mjs b/eslint.config.mjs index 28f6f2436..3557210a5 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -93,7 +93,6 @@ const config = createConfig([ { files: ['*.tsx', '**/ui/**/*.ts'], - // @ts-expect-error - The createConfig types are wrong plugins: { react, 'react-hooks': reactHooks }, rules: { ...react.configs.flat?.['jsx-runtime']?.rules, diff --git a/packages/brow-2-brow/tsconfig.json b/packages/brow-2-brow/tsconfig.json index 7e2727b62..a11dee336 100644 --- a/packages/brow-2-brow/tsconfig.json +++ b/packages/brow-2-brow/tsconfig.json @@ -6,7 +6,7 @@ "types": ["ses", "vitest", "node"], "noEmit": true }, - "references": [{ "path": "../test-utils" }, { "path": "../utils" }], + "references": [{ "path": "../test-utils" }, { "path": "../kernel-utils" }], "include": [ "../../vitest.config.ts", "./src/**/*.ts", diff --git a/packages/cli/package.json b/packages/cli/package.json index f572b8d7c..449f467a1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -36,11 +36,11 @@ "@endo/bundle-source": "^4.0.0", "@endo/init": "^1.1.6", "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-utils": "workspace:^", "@metamask/snaps-utils": "^9.1.0", "@metamask/utils": "^11.4.0", "@ocap/logger": "workspace:^", "@ocap/shims": "workspace:^", - "@ocap/utils": "workspace:^", "@types/node": "^22.13.1", "chokidar": "^4.0.1", "glob": "^11.0.0", diff --git a/packages/cli/src/commands/serve.test.ts b/packages/cli/src/commands/serve.test.ts index 56ee4c6aa..f2f6fc4ea 100644 --- a/packages/cli/src/commands/serve.test.ts +++ b/packages/cli/src/commands/serve.test.ts @@ -1,6 +1,6 @@ import '@ocap/shims/endoify'; -import { makeCounter } from '@ocap/utils'; +import { makeCounter } from '@metamask/kernel-utils'; import { createServer } from 'http'; import type { IncomingMessage, Server, ServerResponse } from 'http'; import serveMiddleware from 'serve-handler'; diff --git a/packages/cli/test/integration/serve.test.ts b/packages/cli/test/integration/serve.test.ts index 4bf59efa3..696d61d3a 100644 --- a/packages/cli/test/integration/serve.test.ts +++ b/packages/cli/test/integration/serve.test.ts @@ -1,7 +1,7 @@ import '@ocap/shims/endoify'; import type { BundleSourceResult } from '@endo/bundle-source'; +import { makeCounter, stringify } from '@metamask/kernel-utils'; import { isObject, hasProperty } from '@metamask/utils'; -import { makeCounter, stringify } from '@ocap/utils'; import { createHash } from 'crypto'; import { readFile } from 'fs/promises'; import { join, resolve } from 'path'; diff --git a/packages/cli/tsconfig.build.json b/packages/cli/tsconfig.build.json index fe730a506..a0abc72f8 100644 --- a/packages/cli/tsconfig.build.json +++ b/packages/cli/tsconfig.build.json @@ -10,7 +10,7 @@ }, "references": [ { "path": "../logger/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" }, + { "path": "../kernel-utils/tsconfig.build.json" }, { "path": "../shims/tsconfig.build.json" } ], "files": [], diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index de0de18f9..af4ab6ea9 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -9,7 +9,7 @@ "references": [ { "path": "../logger" }, { "path": "../test-utils" }, - { "path": "../utils" } + { "path": "../kernel-utils" } ], "include": [ "../../vitest.config.ts", diff --git a/packages/create-package/tsconfig.json b/packages/create-package/tsconfig.json index 15f94cac5..8823a2397 100644 --- a/packages/create-package/tsconfig.json +++ b/packages/create-package/tsconfig.json @@ -5,7 +5,7 @@ "noEmit": true, "types": ["node", "vitest"] }, - "references": [{ "path": "../test-utils" }, { "path": "../utils" }], + "references": [{ "path": "../test-utils" }, { "path": "../kernel-utils" }], "include": ["../../vitest.config.ts", "./src", "./vitest.config.ts"], "exclude": ["./src/package-template"] } diff --git a/packages/errors/tsconfig.build.json b/packages/errors/tsconfig.build.json index 577295696..85fa65ecb 100644 --- a/packages/errors/tsconfig.build.json +++ b/packages/errors/tsconfig.build.json @@ -7,7 +7,7 @@ "rootDir": "./src", "types": ["ses"] }, - "references": [{ "path": "../utils/tsconfig.build.json" }], + "references": [{ "path": "../kernel-utils/tsconfig.build.json" }], "files": [], "include": ["./src"] } diff --git a/packages/errors/tsconfig.json b/packages/errors/tsconfig.json index a8c318e40..e08723abe 100644 --- a/packages/errors/tsconfig.json +++ b/packages/errors/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["ES2022"], "types": ["ses", "vitest"] }, - "references": [{ "path": "../test-utils" }, { "path": "../utils" }], + "references": [{ "path": "../test-utils" }, { "path": "../kernel-utils" }], "include": [ "../../vitest.config.ts", "./src", diff --git a/packages/extension/package.json b/packages/extension/package.json index a1532f1d7..768339266 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -44,18 +44,18 @@ "@endo/eventual-send": "^1.3.1", "@endo/marshal": "^1.6.4", "@metamask/json-rpc-engine": "^10.0.3", + "@metamask/kernel-store": "workspace:^", + "@metamask/kernel-utils": "workspace:^", + "@metamask/ocap-kernel": "workspace:^", "@metamask/rpc-errors": "^7.0.2", "@metamask/snaps-utils": "^9.1.0", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", "@ocap/errors": "workspace:^", - "@ocap/kernel": "workspace:^", "@ocap/logger": "workspace:^", "@ocap/rpc-methods": "workspace:^", "@ocap/shims": "workspace:^", - "@ocap/store": "workspace:^", "@ocap/streams": "workspace:^", - "@ocap/utils": "workspace:^", "nanoid": "^5.1.5", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/packages/extension/src/background.ts b/packages/extension/src/background.ts index ade819b7b..4786dad23 100644 --- a/packages/extension/src/background.ts +++ b/packages/extension/src/background.ts @@ -1,11 +1,11 @@ +import { delay } from '@metamask/kernel-utils'; +import type { JsonRpcCall } from '@metamask/kernel-utils'; +import { kernelMethodSpecs } from '@metamask/ocap-kernel/rpc'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import { kernelMethodSpecs } from '@ocap/kernel/rpc'; import { Logger } from '@ocap/logger'; import { RpcClient } from '@ocap/rpc-methods'; import { ChromeRuntimeDuplexStream } from '@ocap/streams/browser'; -import { delay } from '@ocap/utils'; -import type { JsonRpcCall } from '@ocap/utils'; const OFFSCREEN_DOCUMENT_PATH = '/offscreen.html'; diff --git a/packages/extension/src/iframe.ts b/packages/extension/src/iframe.ts index 3377bd0bf..e467ea40c 100644 --- a/packages/extension/src/iframe.ts +++ b/packages/extension/src/iframe.ts @@ -1,11 +1,11 @@ -import { VatSupervisor } from '@ocap/kernel'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import { isJsonRpcMessage } from '@metamask/kernel-utils'; +import { VatSupervisor } from '@metamask/ocap-kernel'; import { Logger } from '@ocap/logger'; import { MessagePortDuplexStream, receiveMessagePort, } from '@ocap/streams/browser'; -import type { JsonRpcMessage } from '@ocap/utils'; -import { isJsonRpcMessage } from '@ocap/utils'; const logger = new Logger('iframe'); diff --git a/packages/extension/src/kernel-integration/VatWorkerClient.test.ts b/packages/extension/src/kernel-integration/VatWorkerClient.test.ts index d849685f7..69ed472cc 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.test.ts @@ -1,10 +1,10 @@ +import { delay, stringify } from '@metamask/kernel-utils'; +import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcResponse } from '@metamask/utils'; -import type { VatId, VatConfig } from '@ocap/kernel'; import { Logger } from '@ocap/logger'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { TestDuplexStream } from '@ocap/test-utils/streams'; -import { delay, stringify } from '@ocap/utils'; import { describe, it, expect, beforeEach, vi } from 'vitest'; import type { VatWorkerClientStream } from './VatWorkerClient.ts'; diff --git a/packages/extension/src/kernel-integration/VatWorkerClient.ts b/packages/extension/src/kernel-integration/VatWorkerClient.ts index 5be16c8d4..484bc5a3c 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.ts @@ -1,7 +1,9 @@ +import type { JsonRpcCall, JsonRpcMessage } from '@metamask/kernel-utils'; +import { isJsonRpcMessage, stringify } from '@metamask/kernel-utils'; +import type { VatWorkerManager, VatId, VatConfig } from '@metamask/ocap-kernel'; +import { vatWorkerServiceMethodSpecs } from '@metamask/ocap-kernel/rpc'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcId, JsonRpcResponse } from '@metamask/utils'; -import type { VatWorkerManager, VatId, VatConfig } from '@ocap/kernel'; -import { vatWorkerServiceMethodSpecs } from '@ocap/kernel/rpc'; import { Logger } from '@ocap/logger'; import { RpcClient } from '@ocap/rpc-methods'; import type { DuplexStream } from '@ocap/streams'; @@ -13,8 +15,6 @@ import type { PostMessageEnvelope, PostMessageTarget, } from '@ocap/streams/browser'; -import type { JsonRpcCall, JsonRpcMessage } from '@ocap/utils'; -import { isJsonRpcMessage, stringify } from '@ocap/utils'; // Appears in the docs. // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts index 061dae150..8c3ebd87d 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts @@ -1,18 +1,18 @@ +import { delay } from '@metamask/kernel-utils'; +import type { VatConfig, VatId } from '@metamask/ocap-kernel'; import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest } from '@metamask/utils'; import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; -import type { VatConfig, VatId } from '@ocap/kernel'; import { Logger } from '@ocap/logger'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { TestDuplexStream } from '@ocap/test-utils/streams'; -import { delay } from '@ocap/utils'; import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest'; import type { Mock } from 'vitest'; import { ExtensionVatWorkerService } from './VatWorkerServer.ts'; import type { VatWorker, VatWorkerServiceStream } from './VatWorkerServer.ts'; -vi.mock('@ocap/kernel', () => ({ +vi.mock('@metamask/ocap-kernel', () => ({ VatWorkerServiceCommandMethod: { launch: 'launch', terminate: 'terminate', diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.ts b/packages/extension/src/kernel-integration/VatWorkerServer.ts index 84ecf53a7..781dbba4c 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.ts @@ -1,3 +1,6 @@ +import type { VatId, VatConfig } from '@metamask/ocap-kernel'; +import type { VatWorkerServiceMethod } from '@metamask/ocap-kernel/rpc'; +import { vatWorkerServiceMethodSpecs } from '@metamask/ocap-kernel/rpc'; import { rpcErrors, serializeError } from '@metamask/rpc-errors'; import { hasProperty, isJsonRpcRequest } from '@metamask/utils'; import type { @@ -7,9 +10,6 @@ import type { JsonRpcResponse, } from '@metamask/utils'; import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; -import type { VatId, VatConfig } from '@ocap/kernel'; -import type { VatWorkerServiceMethod } from '@ocap/kernel/rpc'; -import { vatWorkerServiceMethodSpecs } from '@ocap/kernel/rpc'; import { Logger } from '@ocap/logger'; import type { ExtractParams } from '@ocap/rpc-methods'; import { PostMessageDuplexStream } from '@ocap/streams/browser'; diff --git a/packages/extension/src/kernel-integration/handlers/clear-state.test.ts b/packages/extension/src/kernel-integration/handlers/clear-state.test.ts index 81eb39b5d..7a3183e3f 100644 --- a/packages/extension/src/kernel-integration/handlers/clear-state.test.ts +++ b/packages/extension/src/kernel-integration/handlers/clear-state.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { clearStateHandler } from './clear-state.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/clear-state.ts b/packages/extension/src/kernel-integration/handlers/clear-state.ts index 5211eefdd..e942b177b 100644 --- a/packages/extension/src/kernel-integration/handlers/clear-state.ts +++ b/packages/extension/src/kernel-integration/handlers/clear-state.ts @@ -1,8 +1,8 @@ +import { EmptyJsonArray } from '@metamask/kernel-utils'; +import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; -import type { Kernel } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; export const clearStateSpec: MethodSpec<'clearState', Json[], Promise> = { method: 'clearState', diff --git a/packages/extension/src/kernel-integration/handlers/collect-garbage.test.ts b/packages/extension/src/kernel-integration/handlers/collect-garbage.test.ts index 5cc7c0872..99fcccb31 100644 --- a/packages/extension/src/kernel-integration/handlers/collect-garbage.test.ts +++ b/packages/extension/src/kernel-integration/handlers/collect-garbage.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { collectGarbageHandler } from './collect-garbage.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/collect-garbage.ts b/packages/extension/src/kernel-integration/handlers/collect-garbage.ts index 0cca4e443..91efc9cf2 100644 --- a/packages/extension/src/kernel-integration/handlers/collect-garbage.ts +++ b/packages/extension/src/kernel-integration/handlers/collect-garbage.ts @@ -1,7 +1,7 @@ +import { EmptyJsonArray } from '@metamask/kernel-utils'; +import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; -import type { Kernel } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; export const collectGarbageSpec: MethodSpec< 'collectGarbage', diff --git a/packages/extension/src/kernel-integration/handlers/get-status.test.ts b/packages/extension/src/kernel-integration/handlers/get-status.test.ts index 94f0b85a3..075cc2b44 100644 --- a/packages/extension/src/kernel-integration/handlers/get-status.test.ts +++ b/packages/extension/src/kernel-integration/handlers/get-status.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { getStatusHandler } from './get-status.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/get-status.ts b/packages/extension/src/kernel-integration/handlers/get-status.ts index eefeb84ff..e5d958b9b 100644 --- a/packages/extension/src/kernel-integration/handlers/get-status.ts +++ b/packages/extension/src/kernel-integration/handlers/get-status.ts @@ -1,13 +1,13 @@ -import { nullable, type, array, object } from '@metamask/superstruct'; -import type { Infer } from '@metamask/superstruct'; +import { EmptyJsonArray } from '@metamask/kernel-utils'; import { ClusterConfigStruct, VatConfigStruct, VatIdStruct, -} from '@ocap/kernel'; -import type { Kernel } from '@ocap/kernel'; +} from '@metamask/ocap-kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; +import { nullable, type, array, object } from '@metamask/superstruct'; +import type { Infer } from '@metamask/superstruct'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; const KernelStatusStruct = type({ clusterConfig: nullable(ClusterConfigStruct), diff --git a/packages/extension/src/kernel-integration/handlers/launch-vat.test.ts b/packages/extension/src/kernel-integration/handlers/launch-vat.test.ts index 4d9d23ef4..b88da52cd 100644 --- a/packages/extension/src/kernel-integration/handlers/launch-vat.test.ts +++ b/packages/extension/src/kernel-integration/handlers/launch-vat.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { launchVatHandler } from './launch-vat.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/launch-vat.ts b/packages/extension/src/kernel-integration/handlers/launch-vat.ts index f1b67c9c4..17c242f1c 100644 --- a/packages/extension/src/kernel-integration/handlers/launch-vat.ts +++ b/packages/extension/src/kernel-integration/handlers/launch-vat.ts @@ -1,6 +1,6 @@ +import { VatConfigStruct } from '@metamask/ocap-kernel'; +import type { Kernel, VatConfig } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; -import { VatConfigStruct } from '@ocap/kernel'; -import type { Kernel, VatConfig } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const launchVatSpec: MethodSpec< diff --git a/packages/extension/src/kernel-integration/handlers/reload-config.test.ts b/packages/extension/src/kernel-integration/handlers/reload-config.test.ts index 1efa91ed8..fab1e71f6 100644 --- a/packages/extension/src/kernel-integration/handlers/reload-config.test.ts +++ b/packages/extension/src/kernel-integration/handlers/reload-config.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { reloadConfigHandler } from './reload-config.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/reload-config.ts b/packages/extension/src/kernel-integration/handlers/reload-config.ts index 3aeba8d84..2e7e22e2c 100644 --- a/packages/extension/src/kernel-integration/handlers/reload-config.ts +++ b/packages/extension/src/kernel-integration/handlers/reload-config.ts @@ -1,7 +1,7 @@ +import { EmptyJsonArray } from '@metamask/kernel-utils'; +import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; -import type { Kernel } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; export const reloadConfigSpec: MethodSpec< 'reload', diff --git a/packages/extension/src/kernel-integration/handlers/restart-vat.test.ts b/packages/extension/src/kernel-integration/handlers/restart-vat.test.ts index da7a3edac..2a0ec0d10 100644 --- a/packages/extension/src/kernel-integration/handlers/restart-vat.test.ts +++ b/packages/extension/src/kernel-integration/handlers/restart-vat.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { restartVatHandler } from './restart-vat.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/restart-vat.ts b/packages/extension/src/kernel-integration/handlers/restart-vat.ts index b958e6cc6..93d48c188 100644 --- a/packages/extension/src/kernel-integration/handlers/restart-vat.ts +++ b/packages/extension/src/kernel-integration/handlers/restart-vat.ts @@ -1,6 +1,6 @@ +import { VatIdStruct } from '@metamask/ocap-kernel'; +import type { Kernel, VatId } from '@metamask/ocap-kernel'; import { object, literal } from '@metamask/superstruct'; -import { VatIdStruct } from '@ocap/kernel'; -import type { Kernel, VatId } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const restartVatSpec: MethodSpec< diff --git a/packages/extension/src/kernel-integration/handlers/send-vat-command.test.ts b/packages/extension/src/kernel-integration/handlers/send-vat-command.test.ts index 4b91a3412..cacfa8fe4 100644 --- a/packages/extension/src/kernel-integration/handlers/send-vat-command.test.ts +++ b/packages/extension/src/kernel-integration/handlers/send-vat-command.test.ts @@ -1,4 +1,4 @@ -import type { VatId, Kernel } from '@ocap/kernel'; +import type { VatId, Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { sendVatCommandHandler } from './send-vat-command.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/send-vat-command.ts b/packages/extension/src/kernel-integration/handlers/send-vat-command.ts index ebd3ffa3b..0e7285ab3 100644 --- a/packages/extension/src/kernel-integration/handlers/send-vat-command.ts +++ b/packages/extension/src/kernel-integration/handlers/send-vat-command.ts @@ -1,11 +1,11 @@ +import { VatIdStruct } from '@metamask/ocap-kernel'; +import type { Kernel, VatId } from '@metamask/ocap-kernel'; +import { UiMethodRequestStruct } from '@metamask/ocap-kernel/rpc'; +import type { UiMethodRequest } from '@metamask/ocap-kernel/rpc'; import { object } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; import { UnsafeJsonStruct } from '@metamask/utils'; import type { Json } from '@metamask/utils'; -import { VatIdStruct } from '@ocap/kernel'; -import type { Kernel, VatId } from '@ocap/kernel'; -import { UiMethodRequestStruct } from '@ocap/kernel/rpc'; -import type { UiMethodRequest } from '@ocap/kernel/rpc'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const sendVatCommandSpec: MethodSpec< diff --git a/packages/extension/src/kernel-integration/handlers/terminate-all-vats.test.ts b/packages/extension/src/kernel-integration/handlers/terminate-all-vats.test.ts index b2ac29184..0b3045748 100644 --- a/packages/extension/src/kernel-integration/handlers/terminate-all-vats.test.ts +++ b/packages/extension/src/kernel-integration/handlers/terminate-all-vats.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { terminateAllVatsHandler } from './terminate-all-vats.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts b/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts index ba368a53f..3e4f365ea 100644 --- a/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts +++ b/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts @@ -1,8 +1,8 @@ +import { EmptyJsonArray } from '@metamask/kernel-utils'; +import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; -import type { Kernel } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; export const terminateAllVatsSpec: MethodSpec< 'terminateAllVats', diff --git a/packages/extension/src/kernel-integration/handlers/terminate-vat.test.ts b/packages/extension/src/kernel-integration/handlers/terminate-vat.test.ts index 9a67046b8..0c914bd25 100644 --- a/packages/extension/src/kernel-integration/handlers/terminate-vat.test.ts +++ b/packages/extension/src/kernel-integration/handlers/terminate-vat.test.ts @@ -1,4 +1,4 @@ -import type { Kernel } from '@ocap/kernel'; +import type { Kernel } from '@metamask/ocap-kernel'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { terminateVatHandler } from './terminate-vat.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/terminate-vat.ts b/packages/extension/src/kernel-integration/handlers/terminate-vat.ts index c7eef15d9..2c1694cad 100644 --- a/packages/extension/src/kernel-integration/handlers/terminate-vat.ts +++ b/packages/extension/src/kernel-integration/handlers/terminate-vat.ts @@ -1,6 +1,6 @@ +import type { Kernel, VatId } from '@metamask/ocap-kernel'; +import { VatIdStruct } from '@metamask/ocap-kernel'; import { object, literal } from '@metamask/superstruct'; -import type { Kernel, VatId } from '@ocap/kernel'; -import { VatIdStruct } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const terminateVatSpec: MethodSpec< diff --git a/packages/extension/src/kernel-integration/handlers/update-cluster-config.test.ts b/packages/extension/src/kernel-integration/handlers/update-cluster-config.test.ts index 2bc246ea2..0f2464069 100644 --- a/packages/extension/src/kernel-integration/handlers/update-cluster-config.test.ts +++ b/packages/extension/src/kernel-integration/handlers/update-cluster-config.test.ts @@ -1,4 +1,4 @@ -import type { ClusterConfig } from '@ocap/kernel'; +import type { ClusterConfig } from '@metamask/ocap-kernel'; import { describe, it, expect, vi } from 'vitest'; import { updateClusterConfigHandler } from './update-cluster-config.ts'; diff --git a/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts b/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts index 76332825e..383d4aa03 100644 --- a/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts +++ b/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts @@ -1,6 +1,6 @@ +import type { ClusterConfig } from '@metamask/ocap-kernel'; +import { ClusterConfigStruct } from '@metamask/ocap-kernel'; import { object, literal } from '@metamask/superstruct'; -import type { ClusterConfig } from '@ocap/kernel'; -import { ClusterConfigStruct } from '@ocap/kernel'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const updateClusterConfigSpec: MethodSpec< diff --git a/packages/extension/src/kernel-integration/iframe-vat-worker.ts b/packages/extension/src/kernel-integration/iframe-vat-worker.ts index 28b227806..038e8ce8d 100644 --- a/packages/extension/src/kernel-integration/iframe-vat-worker.ts +++ b/packages/extension/src/kernel-integration/iframe-vat-worker.ts @@ -1,5 +1,5 @@ +import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import { createWindow } from '@metamask/snaps-utils'; -import type { VatId, VatConfig } from '@ocap/kernel'; import { Logger } from '@ocap/logger'; import type { initializeMessageChannel } from '@ocap/streams/browser'; diff --git a/packages/extension/src/kernel-integration/kernel-worker.ts b/packages/extension/src/kernel-integration/kernel-worker.ts index 239af0f59..de0afea99 100644 --- a/packages/extension/src/kernel-integration/kernel-worker.ts +++ b/packages/extension/src/kernel-integration/kernel-worker.ts @@ -1,16 +1,16 @@ import { JsonRpcEngine } from '@metamask/json-rpc-engine'; +import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/wasm'; +import { fetchValidatedJson, isJsonRpcCall } from '@metamask/kernel-utils'; +import type { JsonRpcCall } from '@metamask/kernel-utils'; +import type { ClusterConfig } from '@metamask/ocap-kernel'; +import { ClusterConfigStruct, Kernel } from '@metamask/ocap-kernel'; import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; -import type { ClusterConfig } from '@ocap/kernel'; -import { ClusterConfigStruct, Kernel } from '@ocap/kernel'; import { Logger } from '@ocap/logger'; -import { makeSQLKernelDatabase } from '@ocap/store/sqlite/wasm'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { MessagePortDuplexStream, receiveMessagePort, } from '@ocap/streams/browser'; -import { fetchValidatedJson, isJsonRpcCall } from '@ocap/utils'; -import type { JsonRpcCall } from '@ocap/utils'; import { makeLoggingMiddleware } from './middleware/logging.ts'; import { createPanelMessageMiddleware } from './middleware/panel-message.ts'; diff --git a/packages/extension/src/kernel-integration/middleware/panel-message.test.ts b/packages/extension/src/kernel-integration/middleware/panel-message.test.ts index e5fa9716b..a3e3c5edf 100644 --- a/packages/extension/src/kernel-integration/middleware/panel-message.test.ts +++ b/packages/extension/src/kernel-integration/middleware/panel-message.test.ts @@ -1,7 +1,7 @@ import { JsonRpcEngine } from '@metamask/json-rpc-engine'; +import type { KernelDatabase } from '@metamask/kernel-store'; +import type { Kernel } from '@metamask/ocap-kernel'; import type { JsonRpcRequest } from '@metamask/utils'; -import type { Kernel } from '@ocap/kernel'; -import type { KernelDatabase } from '@ocap/store'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { createPanelMessageMiddleware } from './panel-message.ts'; diff --git a/packages/extension/src/kernel-integration/middleware/panel-message.ts b/packages/extension/src/kernel-integration/middleware/panel-message.ts index 9228f9414..decdf34ba 100644 --- a/packages/extension/src/kernel-integration/middleware/panel-message.ts +++ b/packages/extension/src/kernel-integration/middleware/panel-message.ts @@ -1,9 +1,9 @@ import { createAsyncMiddleware } from '@metamask/json-rpc-engine'; import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine'; +import type { KernelDatabase } from '@metamask/kernel-store'; +import type { ClusterConfig, Kernel } from '@metamask/ocap-kernel'; import type { Json, JsonRpcParams } from '@metamask/utils'; -import type { ClusterConfig, Kernel } from '@ocap/kernel'; import { RpcService } from '@ocap/rpc-methods'; -import type { KernelDatabase } from '@ocap/store'; import { handlers } from '../handlers/index.ts'; diff --git a/packages/extension/src/kernel-integration/ui-connections.test.ts b/packages/extension/src/kernel-integration/ui-connections.test.ts index 5c21a4219..b9e92eaa7 100644 --- a/packages/extension/src/kernel-integration/ui-connections.test.ts +++ b/packages/extension/src/kernel-integration/ui-connections.test.ts @@ -1,9 +1,9 @@ +import type { JsonRpcCall } from '@metamask/kernel-utils'; import type { JsonRpcResponse } from '@metamask/utils'; import { Logger } from '@ocap/logger'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { delay } from '@ocap/test-utils'; import { TestDuplexStream } from '@ocap/test-utils/streams'; -import type { JsonRpcCall } from '@ocap/utils'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { diff --git a/packages/extension/src/kernel-integration/ui-connections.ts b/packages/extension/src/kernel-integration/ui-connections.ts index 5b2e7a509..af24a1447 100644 --- a/packages/extension/src/kernel-integration/ui-connections.ts +++ b/packages/extension/src/kernel-integration/ui-connections.ts @@ -1,9 +1,9 @@ +import { stringify } from '@metamask/kernel-utils'; +import type { JsonRpcCall } from '@metamask/kernel-utils'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; import type { Logger } from '@ocap/logger'; import { PostMessageDuplexStream } from '@ocap/streams/browser'; -import { stringify } from '@ocap/utils'; -import type { JsonRpcCall } from '@ocap/utils'; import { nanoid } from 'nanoid'; import { isUiControlCommand } from './ui-control-command.ts'; diff --git a/packages/extension/src/kernel-integration/ui-control-command.ts b/packages/extension/src/kernel-integration/ui-control-command.ts index 2db01380c..37b8c7624 100644 --- a/packages/extension/src/kernel-integration/ui-control-command.ts +++ b/packages/extension/src/kernel-integration/ui-control-command.ts @@ -1,6 +1,6 @@ +import type { TypeGuard } from '@metamask/kernel-utils'; import { object, literal, is, string } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; -import type { TypeGuard } from '@ocap/utils'; export const UiControlMethod = { init: 'init', diff --git a/packages/extension/src/offscreen.ts b/packages/extension/src/offscreen.ts index 8e47b3828..33d9ac3d4 100644 --- a/packages/extension/src/offscreen.ts +++ b/packages/extension/src/offscreen.ts @@ -1,3 +1,5 @@ +import { delay, isJsonRpcCall } from '@metamask/kernel-utils'; +import type { JsonRpcCall } from '@metamask/kernel-utils'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; import { Logger } from '@ocap/logger'; @@ -8,8 +10,6 @@ import { MessagePortDuplexStream, } from '@ocap/streams/browser'; import type { PostMessageTarget } from '@ocap/streams/browser'; -import { delay, isJsonRpcCall } from '@ocap/utils'; -import type { JsonRpcCall } from '@ocap/utils'; import { makeIframeVatWorker } from './kernel-integration/iframe-vat-worker.ts'; import { ExtensionVatWorkerService } from './kernel-integration/VatWorkerServer.ts'; diff --git a/packages/extension/src/ui/components/ConfigEditor.tsx b/packages/extension/src/ui/components/ConfigEditor.tsx index cf4eaf3c2..737e6719b 100644 --- a/packages/extension/src/ui/components/ConfigEditor.tsx +++ b/packages/extension/src/ui/components/ConfigEditor.tsx @@ -1,4 +1,4 @@ -import type { ClusterConfig } from '@ocap/kernel'; +import type { ClusterConfig } from '@metamask/ocap-kernel'; import { useCallback, useEffect, useMemo, useState } from 'react'; import type { KernelStatus } from '../../kernel-integration/handlers/index.ts'; diff --git a/packages/extension/src/ui/components/MessagePanel.test.tsx b/packages/extension/src/ui/components/MessagePanel.test.tsx index b8d197bf8..3b927bf94 100644 --- a/packages/extension/src/ui/components/MessagePanel.test.tsx +++ b/packages/extension/src/ui/components/MessagePanel.test.tsx @@ -1,5 +1,5 @@ +import { stringify } from '@metamask/kernel-utils'; import { setupOcapKernelMock } from '@ocap/test-utils'; -import { stringify } from '@ocap/utils'; import { render, screen, cleanup } from '@testing-library/react'; import { userEvent } from '@testing-library/user-event'; import { describe, it, expect, vi, beforeEach } from 'vitest'; @@ -18,7 +18,7 @@ vi.mock('../context/PanelContext.tsx', () => ({ usePanelContext: vi.fn(), })); -vi.mock('@ocap/utils', () => ({ +vi.mock('@metamask/kernel-utils', () => ({ stringify: vi.fn(), })); diff --git a/packages/extension/src/ui/context/PanelContext.test.tsx b/packages/extension/src/ui/context/PanelContext.test.tsx index 023cca5a9..99ae5f9a9 100644 --- a/packages/extension/src/ui/context/PanelContext.test.tsx +++ b/packages/extension/src/ui/context/PanelContext.test.tsx @@ -1,7 +1,7 @@ import { renderHook, waitFor } from '@testing-library/react'; import { describe, it, expect, vi } from 'vitest'; -vi.mock('@ocap/utils', () => ({ +vi.mock('@metamask/kernel-utils', () => ({ stringify: JSON.stringify, })); diff --git a/packages/extension/src/ui/context/PanelContext.tsx b/packages/extension/src/ui/context/PanelContext.tsx index 78ea3a3f4..c341a99c0 100644 --- a/packages/extension/src/ui/context/PanelContext.tsx +++ b/packages/extension/src/ui/context/PanelContext.tsx @@ -1,5 +1,5 @@ +import { stringify } from '@metamask/kernel-utils'; import { isJsonRpcFailure } from '@metamask/utils'; -import { stringify } from '@ocap/utils'; import { createContext, useCallback, diff --git a/packages/extension/src/ui/hooks/useDatabase.test.ts b/packages/extension/src/ui/hooks/useDatabase.test.ts index 047128977..86f65aa3a 100644 --- a/packages/extension/src/ui/hooks/useDatabase.test.ts +++ b/packages/extension/src/ui/hooks/useDatabase.test.ts @@ -8,7 +8,7 @@ vi.mock('../context/PanelContext.tsx', () => ({ usePanelContext: vi.fn(), })); -vi.mock('@ocap/utils', () => ({ +vi.mock('@metamask/kernel-utils', () => ({ stringify: JSON.stringify, })); diff --git a/packages/extension/src/ui/hooks/useDatabase.ts b/packages/extension/src/ui/hooks/useDatabase.ts index 5e59c9c55..907996b44 100644 --- a/packages/extension/src/ui/hooks/useDatabase.ts +++ b/packages/extension/src/ui/hooks/useDatabase.ts @@ -1,5 +1,5 @@ +import { stringify } from '@metamask/kernel-utils'; import { hasProperty } from '@metamask/utils'; -import { stringify } from '@ocap/utils'; import { useCallback } from 'react'; import { usePanelContext } from '../context/PanelContext.tsx'; diff --git a/packages/extension/src/ui/hooks/useKernelActions.test.ts b/packages/extension/src/ui/hooks/useKernelActions.test.ts index ded8b0fe4..07c4d6f87 100644 --- a/packages/extension/src/ui/hooks/useKernelActions.test.ts +++ b/packages/extension/src/ui/hooks/useKernelActions.test.ts @@ -11,7 +11,7 @@ vi.mock('../context/PanelContext.tsx', () => ({ usePanelContext: vi.fn(), })); -vi.mock('@ocap/utils', async (importOriginal) => ({ +vi.mock('@metamask/kernel-utils', async (importOriginal) => ({ ...(await importOriginal()), stringify: JSON.stringify, })); diff --git a/packages/extension/src/ui/hooks/useKernelActions.ts b/packages/extension/src/ui/hooks/useKernelActions.ts index 57f5ced36..045999555 100644 --- a/packages/extension/src/ui/hooks/useKernelActions.ts +++ b/packages/extension/src/ui/hooks/useKernelActions.ts @@ -1,6 +1,6 @@ +import { stringify } from '@metamask/kernel-utils'; +import type { ClusterConfig } from '@metamask/ocap-kernel'; import { hasProperty, isObject } from '@metamask/utils'; -import type { ClusterConfig } from '@ocap/kernel'; -import { stringify } from '@ocap/utils'; import { useCallback } from 'react'; import { assertVatCommandParams } from '../../kernel-integration/handlers/send-vat-command.ts'; diff --git a/packages/extension/src/ui/hooks/useStatusPolling.ts b/packages/extension/src/ui/hooks/useStatusPolling.ts index d7f862511..f1a8b1548 100644 --- a/packages/extension/src/ui/hooks/useStatusPolling.ts +++ b/packages/extension/src/ui/hooks/useStatusPolling.ts @@ -1,5 +1,5 @@ +import { stringify } from '@metamask/kernel-utils'; import { hasProperty } from '@metamask/utils'; -import { stringify } from '@ocap/utils'; import { useEffect, useRef, useState } from 'react'; import type { StreamState } from './useStream.ts'; diff --git a/packages/extension/src/ui/hooks/useVats.test.ts b/packages/extension/src/ui/hooks/useVats.test.ts index 5921bb318..80cf8a26c 100644 --- a/packages/extension/src/ui/hooks/useVats.test.ts +++ b/packages/extension/src/ui/hooks/useVats.test.ts @@ -1,4 +1,4 @@ -import type { VatConfig } from '@ocap/kernel'; +import type { VatConfig } from '@metamask/ocap-kernel'; import { setupOcapKernelMock } from '@ocap/test-utils'; import { renderHook, waitFor } from '@testing-library/react'; import { describe, it, expect, vi, beforeEach } from 'vitest'; @@ -11,7 +11,7 @@ vi.mock('../context/PanelContext.tsx', () => ({ setupOcapKernelMock(); -vi.mock('@ocap/utils', async (importOriginal) => ({ +vi.mock('@metamask/kernel-utils', async (importOriginal) => ({ ...(await importOriginal()), stringify: JSON.stringify, })); diff --git a/packages/extension/src/ui/hooks/useVats.ts b/packages/extension/src/ui/hooks/useVats.ts index 306400ca8..06a2dd570 100644 --- a/packages/extension/src/ui/hooks/useVats.ts +++ b/packages/extension/src/ui/hooks/useVats.ts @@ -1,5 +1,5 @@ -import type { VatConfig, VatId } from '@ocap/kernel'; -import { stringify } from '@ocap/utils'; +import { stringify } from '@metamask/kernel-utils'; +import type { VatConfig, VatId } from '@metamask/ocap-kernel'; import { useCallback, useMemo } from 'react'; import { usePanelContext } from '../context/PanelContext.tsx'; diff --git a/packages/extension/src/ui/types.ts b/packages/extension/src/ui/types.ts index ff487eaac..e3f4076ac 100644 --- a/packages/extension/src/ui/types.ts +++ b/packages/extension/src/ui/types.ts @@ -1,4 +1,4 @@ -import type { VatId } from '@ocap/kernel'; +import type { VatId } from '@metamask/ocap-kernel'; export type VatRecord = { id: VatId; diff --git a/packages/extension/src/ui/utils.ts b/packages/extension/src/ui/utils.ts index 0b8f239b1..bb7b1ea7c 100644 --- a/packages/extension/src/ui/utils.ts +++ b/packages/extension/src/ui/utils.ts @@ -1,4 +1,4 @@ -import { makeCounter } from '@ocap/utils'; +import { makeCounter } from '@metamask/kernel-utils'; /** * Validates a bundle URL. diff --git a/packages/extension/tsconfig.build.json b/packages/extension/tsconfig.build.json index 322c0c449..01cf0a95d 100644 --- a/packages/extension/tsconfig.build.json +++ b/packages/extension/tsconfig.build.json @@ -13,13 +13,13 @@ "plugins": [{ "name": "typescript-plugin-css-modules" }] }, "references": [ - { "path": "../kernel/tsconfig.build.json" }, + { "path": "../ocap-kernel/tsconfig.build.json" }, { "path": "../logger/tsconfig.build.json" }, { "path": "../rpc-methods/tsconfig.build.json" }, { "path": "../shims/tsconfig.build.json" }, - { "path": "../store/tsconfig.build.json" }, + { "path": "../kernel-store/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + { "path": "../kernel-utils/tsconfig.build.json" } ], "include": [ "./src/**/*.ts", diff --git a/packages/extension/tsconfig.json b/packages/extension/tsconfig.json index 5b3f9752e..95a593024 100644 --- a/packages/extension/tsconfig.json +++ b/packages/extension/tsconfig.json @@ -20,14 +20,14 @@ ] }, "references": [ - { "path": "../kernel" }, + { "path": "../ocap-kernel" }, { "path": "../logger" }, { "path": "../rpc-methods" }, { "path": "../shims" }, - { "path": "../store" }, + { "path": "../kernel-store" }, { "path": "../streams" }, { "path": "../test-utils" }, - { "path": "../utils" } + { "path": "../kernel-utils" } ], "include": [ "../../vitest.config.ts", diff --git a/packages/kernel/CHANGELOG.md b/packages/kernel-store/CHANGELOG.md similarity index 100% rename from packages/kernel/CHANGELOG.md rename to packages/kernel-store/CHANGELOG.md diff --git a/packages/kernel-store/LICENSE b/packages/kernel-store/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/kernel-store/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/store/README.md b/packages/kernel-store/README.md similarity index 71% rename from packages/store/README.md rename to packages/kernel-store/README.md index 9ef74d49f..b3a45e891 100644 --- a/packages/store/README.md +++ b/packages/kernel-store/README.md @@ -1,14 +1,14 @@ -# `@ocap/store` +# `@metamask/kernel-store` Ocap Kernel storage abstractions and implementations. ## Installation -`yarn add @ocap/store` +`yarn add @metamask/kernel-store` or -`npm install @ocap/store` +`npm install @metamask/kernel-store` ## Contributing diff --git a/packages/store/package.json b/packages/kernel-store/package.json similarity index 87% rename from packages/store/package.json rename to packages/kernel-store/package.json index bc3db762b..a27e6656b 100644 --- a/packages/store/package.json +++ b/packages/kernel-store/package.json @@ -1,9 +1,13 @@ { - "name": "@ocap/store", + "name": "@metamask/kernel-store", "version": "0.0.0", - "private": true, "description": "Ocap Kernel storage abstractions and implementations", - "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/store#readme", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/kernel-store#readme", "bugs": { "url": "https://github.com/MetaMask/ocap-kernel/issues" }, @@ -11,6 +15,8 @@ "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", + "sideEffects": false, "type": "module", "exports": { ".": { @@ -45,13 +51,17 @@ }, "./package.json": "./package.json" }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", "files": [ "dist/" ], "scripts": { "build": "ts-bridge --project tsconfig.build.json --clean", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/store", + "changelog:update": "../../scripts/update-changelog.sh @metamask/kernel-store", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/kernel-store", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -104,5 +114,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/packages/store/src/index.ts b/packages/kernel-store/src/index.ts similarity index 100% rename from packages/store/src/index.ts rename to packages/kernel-store/src/index.ts diff --git a/packages/store/src/sqlite/common.test.ts b/packages/kernel-store/src/sqlite/common.test.ts similarity index 100% rename from packages/store/src/sqlite/common.test.ts rename to packages/kernel-store/src/sqlite/common.test.ts diff --git a/packages/store/src/sqlite/common.ts b/packages/kernel-store/src/sqlite/common.ts similarity index 100% rename from packages/store/src/sqlite/common.ts rename to packages/kernel-store/src/sqlite/common.ts diff --git a/packages/store/src/sqlite/env.test.ts b/packages/kernel-store/src/sqlite/env.test.ts similarity index 100% rename from packages/store/src/sqlite/env.test.ts rename to packages/kernel-store/src/sqlite/env.test.ts diff --git a/packages/store/src/sqlite/env.ts b/packages/kernel-store/src/sqlite/env.ts similarity index 100% rename from packages/store/src/sqlite/env.ts rename to packages/kernel-store/src/sqlite/env.ts diff --git a/packages/store/src/sqlite/nodejs.test.ts b/packages/kernel-store/src/sqlite/nodejs.test.ts similarity index 100% rename from packages/store/src/sqlite/nodejs.test.ts rename to packages/kernel-store/src/sqlite/nodejs.test.ts diff --git a/packages/store/src/sqlite/nodejs.ts b/packages/kernel-store/src/sqlite/nodejs.ts similarity index 100% rename from packages/store/src/sqlite/nodejs.ts rename to packages/kernel-store/src/sqlite/nodejs.ts diff --git a/packages/store/src/sqlite/wasm.test.ts b/packages/kernel-store/src/sqlite/wasm.test.ts similarity index 100% rename from packages/store/src/sqlite/wasm.test.ts rename to packages/kernel-store/src/sqlite/wasm.test.ts diff --git a/packages/store/src/sqlite/wasm.ts b/packages/kernel-store/src/sqlite/wasm.ts similarity index 100% rename from packages/store/src/sqlite/wasm.ts rename to packages/kernel-store/src/sqlite/wasm.ts diff --git a/packages/store/src/types.ts b/packages/kernel-store/src/types.ts similarity index 100% rename from packages/store/src/types.ts rename to packages/kernel-store/src/types.ts diff --git a/packages/store/tsconfig.build.json b/packages/kernel-store/tsconfig.build.json similarity index 100% rename from packages/store/tsconfig.build.json rename to packages/kernel-store/tsconfig.build.json diff --git a/packages/store/tsconfig.json b/packages/kernel-store/tsconfig.json similarity index 100% rename from packages/store/tsconfig.json rename to packages/kernel-store/tsconfig.json diff --git a/packages/store/typedoc.json b/packages/kernel-store/typedoc.json similarity index 100% rename from packages/store/typedoc.json rename to packages/kernel-store/typedoc.json diff --git a/packages/store/vitest.config.ts b/packages/kernel-store/vitest.config.ts similarity index 100% rename from packages/store/vitest.config.ts rename to packages/kernel-store/vitest.config.ts diff --git a/packages/kernel-test/package.json b/packages/kernel-test/package.json index 6ca98d1ae..ed610fdd5 100644 --- a/packages/kernel-test/package.json +++ b/packages/kernel-test/package.json @@ -53,13 +53,13 @@ "@endo/marshal": "^1.6.4", "@endo/patterns": "^1.5.0", "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-store": "workspace:^", + "@metamask/kernel-utils": "workspace:^", + "@metamask/ocap-kernel": "workspace:^", "@metamask/utils": "^11.4.0", - "@ocap/kernel": "workspace:^", "@ocap/nodejs": "workspace:^", "@ocap/shims": "workspace:^", - "@ocap/store": "workspace:^", - "@ocap/streams": "workspace:^", - "@ocap/utils": "workspace:^" + "@ocap/streams": "workspace:^" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/kernel-test/src/exo.test.ts b/packages/kernel-test/src/exo.test.ts index 0ac41058a..c7134fdfe 100644 --- a/packages/kernel-test/src/exo.test.ts +++ b/packages/kernel-test/src/exo.test.ts @@ -1,9 +1,9 @@ import '@ocap/shims/endoify'; -import { Kernel, kunser } from '@ocap/kernel'; -import type { KRef } from '@ocap/kernel'; -import type { KernelDatabase } from '@ocap/store'; -import { makeSQLKernelDatabase } from '@ocap/store/sqlite/nodejs'; -import { waitUntilQuiescent } from '@ocap/utils'; +import type { KernelDatabase } from '@metamask/kernel-store'; +import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; +import { waitUntilQuiescent } from '@metamask/kernel-utils'; +import { Kernel, kunser } from '@metamask/ocap-kernel'; +import type { KRef } from '@metamask/ocap-kernel'; import { beforeEach, describe, expect, it } from 'vitest'; import { diff --git a/packages/kernel-test/src/garbage-collection.test.ts b/packages/kernel-test/src/garbage-collection.test.ts index 1c3897c80..341f65774 100644 --- a/packages/kernel-test/src/garbage-collection.test.ts +++ b/packages/kernel-test/src/garbage-collection.test.ts @@ -1,9 +1,14 @@ import '@ocap/shims/endoify'; -import { Kernel, kunser, makeKernelStore } from '@ocap/kernel'; -import type { ClusterConfig, KRef, KernelStore, VatId } from '@ocap/kernel'; -import type { KernelDatabase } from '@ocap/store'; -import { makeSQLKernelDatabase } from '@ocap/store/sqlite/nodejs'; -import { waitUntilQuiescent } from '@ocap/utils'; +import type { KernelDatabase } from '@metamask/kernel-store'; +import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; +import { waitUntilQuiescent } from '@metamask/kernel-utils'; +import { Kernel, kunser, makeKernelStore } from '@metamask/ocap-kernel'; +import type { + ClusterConfig, + KRef, + KernelStore, + VatId, +} from '@metamask/ocap-kernel'; import { expect, beforeEach, describe, it } from 'vitest'; import { diff --git a/packages/kernel-test/src/liveslots.test.ts b/packages/kernel-test/src/liveslots.test.ts index a02ec357f..e1acc3664 100644 --- a/packages/kernel-test/src/liveslots.test.ts +++ b/packages/kernel-test/src/liveslots.test.ts @@ -1,8 +1,8 @@ import '@ocap/shims/endoify'; -import { Kernel, kunser } from '@ocap/kernel'; -import type { ClusterConfig } from '@ocap/kernel'; +import { waitUntilQuiescent } from '@metamask/kernel-utils'; +import { Kernel, kunser } from '@metamask/ocap-kernel'; +import type { ClusterConfig } from '@metamask/ocap-kernel'; import { makeKernel } from '@ocap/nodejs'; -import { waitUntilQuiescent } from '@ocap/utils'; import { MessagePort as NodeMessagePort, MessageChannel as NodeMessageChannel, diff --git a/packages/kernel-test/src/resume.test.ts b/packages/kernel-test/src/resume.test.ts index fb3a672ba..eb2a81e12 100644 --- a/packages/kernel-test/src/resume.test.ts +++ b/packages/kernel-test/src/resume.test.ts @@ -1,6 +1,6 @@ import '@ocap/shims/endoify'; -import { makeSQLKernelDatabase } from '@ocap/store/sqlite/nodejs'; -import { waitUntilQuiescent } from '@ocap/utils'; +import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; +import { waitUntilQuiescent } from '@metamask/kernel-utils'; import { describe, expect, it } from 'vitest'; import { diff --git a/packages/kernel-test/src/supervisor.test.ts b/packages/kernel-test/src/supervisor.test.ts index 664ccc1a4..786c34bca 100644 --- a/packages/kernel-test/src/supervisor.test.ts +++ b/packages/kernel-test/src/supervisor.test.ts @@ -1,8 +1,8 @@ import '@ocap/shims/endoify'; -import type { VatConfig } from '@ocap/kernel'; -import { VatSupervisor, kser } from '@ocap/kernel'; -import { delay } from '@ocap/utils'; -import type { JsonRpcMessage } from '@ocap/utils'; +import { delay } from '@metamask/kernel-utils'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import type { VatConfig } from '@metamask/ocap-kernel'; +import { VatSupervisor, kser } from '@metamask/ocap-kernel'; import { readFile } from 'fs/promises'; import { join } from 'path'; import { describe, it, expect } from 'vitest'; diff --git a/packages/kernel-test/src/utils.ts b/packages/kernel-test/src/utils.ts index c8e0ed6f8..4d4dec884 100644 --- a/packages/kernel-test/src/utils.ts +++ b/packages/kernel-test/src/utils.ts @@ -1,13 +1,13 @@ // eslint-disable-next-line spaced-comment /// +import type { KernelDatabase } from '@metamask/kernel-store'; +import { waitUntilQuiescent } from '@metamask/kernel-utils'; +import { Kernel, kunser } from '@metamask/ocap-kernel'; +import type { ClusterConfig } from '@metamask/ocap-kernel'; import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; -import { Kernel, kunser } from '@ocap/kernel'; -import type { ClusterConfig } from '@ocap/kernel'; import { NodejsVatWorkerManager } from '@ocap/nodejs'; -import type { KernelDatabase } from '@ocap/store'; import { NodeWorkerDuplexStream } from '@ocap/streams'; -import { waitUntilQuiescent } from '@ocap/utils'; import { MessagePort as NodeMessagePort, MessageChannel as NodeMessageChannel, diff --git a/packages/kernel-test/src/vatstore.test.ts b/packages/kernel-test/src/vatstore.test.ts index e6b7dbab7..8d9b3f55a 100644 --- a/packages/kernel-test/src/vatstore.test.ts +++ b/packages/kernel-test/src/vatstore.test.ts @@ -1,7 +1,7 @@ import '@ocap/shims/endoify'; -import type { ClusterConfig } from '@ocap/kernel'; -import type { VatStore, VatCheckpoint } from '@ocap/store'; -import { makeSQLKernelDatabase } from '@ocap/store/sqlite/nodejs'; +import type { VatStore, VatCheckpoint } from '@metamask/kernel-store'; +import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; +import type { ClusterConfig } from '@metamask/ocap-kernel'; import { describe, vi, expect, it } from 'vitest'; import { getBundleSpec, makeKernel, runTestVats } from './utils.ts'; diff --git a/packages/kernel-test/tsconfig.build.json b/packages/kernel-test/tsconfig.build.json index bdc926460..0be18c0a5 100644 --- a/packages/kernel-test/tsconfig.build.json +++ b/packages/kernel-test/tsconfig.build.json @@ -11,9 +11,9 @@ }, "references": [ { "path": "../streams/tsconfig.build.json" }, - { "path": "../kernel/tsconfig.build.json" }, + { "path": "../ocap-kernel/tsconfig.build.json" }, { "path": "../nodejs/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + { "path": "../kernel-utils/tsconfig.build.json" } ], "files": [], "include": ["./src"] diff --git a/packages/kernel-test/tsconfig.json b/packages/kernel-test/tsconfig.json index d0c24bca3..8bc8f0ebe 100644 --- a/packages/kernel-test/tsconfig.json +++ b/packages/kernel-test/tsconfig.json @@ -9,10 +9,10 @@ "references": [ { "path": "../streams" }, { "path": "../test-utils" }, - { "path": "../utils" }, + { "path": "../kernel-utils" }, { "path": "../nodejs" }, - { "path": "../kernel" }, - { "path": "../store" } + { "path": "../ocap-kernel" }, + { "path": "../kernel-store" } ], "include": [ "../../vitest.config.ts", diff --git a/packages/store/CHANGELOG.md b/packages/kernel-utils/CHANGELOG.md similarity index 100% rename from packages/store/CHANGELOG.md rename to packages/kernel-utils/CHANGELOG.md diff --git a/packages/kernel-utils/LICENSE b/packages/kernel-utils/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/kernel-utils/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/utils/README.md b/packages/kernel-utils/README.md similarity index 60% rename from packages/utils/README.md rename to packages/kernel-utils/README.md index 17ed83e69..a7d134efc 100644 --- a/packages/utils/README.md +++ b/packages/kernel-utils/README.md @@ -1,6 +1,14 @@ # `utils` -A kitchen drawer of Ocap Kernel utilities. +Ocap Kernel utilities. + +## Installation + +`yarn add @metamask/kernel-utils` + +or + +`npm install @metamask/kernel-utils` ## Contributing diff --git a/packages/utils/package.json b/packages/kernel-utils/package.json similarity index 82% rename from packages/utils/package.json rename to packages/kernel-utils/package.json index 0cc91d19c..5ef8448b3 100644 --- a/packages/utils/package.json +++ b/packages/kernel-utils/package.json @@ -1,12 +1,22 @@ { - "name": "@ocap/utils", + "name": "@metamask/kernel-utils", "version": "0.0.0", - "private": true, "description": "A kitchen drawer of Ocap Kernel utilities", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/kernel-utils#readme", + "bugs": { + "url": "https://github.com/MetaMask/ocap-kernel/issues" + }, "repository": { "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", + "sideEffects": false, "type": "module", "exports": { ".": { @@ -21,13 +31,17 @@ }, "./package.json": "./package.json" }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", "files": [ "dist/" ], "scripts": { "build": "ts-bridge --project tsconfig.build.json --clean", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/utils", + "changelog:update": "../../scripts/update-changelog.sh @metamask/kernel-utils", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/kernel-utils", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -84,5 +98,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/packages/utils/src/fetchValidatedJson.test.ts b/packages/kernel-utils/src/fetchValidatedJson.test.ts similarity index 100% rename from packages/utils/src/fetchValidatedJson.test.ts rename to packages/kernel-utils/src/fetchValidatedJson.test.ts diff --git a/packages/utils/src/fetchValidatedJson.ts b/packages/kernel-utils/src/fetchValidatedJson.ts similarity index 100% rename from packages/utils/src/fetchValidatedJson.ts rename to packages/kernel-utils/src/fetchValidatedJson.ts diff --git a/packages/utils/src/index.test.ts b/packages/kernel-utils/src/index.test.ts similarity index 100% rename from packages/utils/src/index.test.ts rename to packages/kernel-utils/src/index.test.ts diff --git a/packages/utils/src/index.ts b/packages/kernel-utils/src/index.ts similarity index 100% rename from packages/utils/src/index.ts rename to packages/kernel-utils/src/index.ts diff --git a/packages/utils/src/misc.test.ts b/packages/kernel-utils/src/misc.test.ts similarity index 100% rename from packages/utils/src/misc.test.ts rename to packages/kernel-utils/src/misc.test.ts diff --git a/packages/utils/src/misc.ts b/packages/kernel-utils/src/misc.ts similarity index 100% rename from packages/utils/src/misc.ts rename to packages/kernel-utils/src/misc.ts diff --git a/packages/utils/src/stringify.test.ts b/packages/kernel-utils/src/stringify.test.ts similarity index 100% rename from packages/utils/src/stringify.test.ts rename to packages/kernel-utils/src/stringify.test.ts diff --git a/packages/utils/src/stringify.ts b/packages/kernel-utils/src/stringify.ts similarity index 100% rename from packages/utils/src/stringify.ts rename to packages/kernel-utils/src/stringify.ts diff --git a/packages/utils/src/types.test.ts b/packages/kernel-utils/src/types.test.ts similarity index 100% rename from packages/utils/src/types.test.ts rename to packages/kernel-utils/src/types.test.ts diff --git a/packages/utils/src/types.ts b/packages/kernel-utils/src/types.ts similarity index 100% rename from packages/utils/src/types.ts rename to packages/kernel-utils/src/types.ts diff --git a/packages/utils/src/wait-quiescent.test.ts b/packages/kernel-utils/src/wait-quiescent.test.ts similarity index 100% rename from packages/utils/src/wait-quiescent.test.ts rename to packages/kernel-utils/src/wait-quiescent.test.ts diff --git a/packages/utils/src/wait-quiescent.ts b/packages/kernel-utils/src/wait-quiescent.ts similarity index 100% rename from packages/utils/src/wait-quiescent.ts rename to packages/kernel-utils/src/wait-quiescent.ts diff --git a/packages/utils/tsconfig.build.json b/packages/kernel-utils/tsconfig.build.json similarity index 100% rename from packages/utils/tsconfig.build.json rename to packages/kernel-utils/tsconfig.build.json diff --git a/packages/utils/tsconfig.json b/packages/kernel-utils/tsconfig.json similarity index 100% rename from packages/utils/tsconfig.json rename to packages/kernel-utils/tsconfig.json diff --git a/packages/utils/typedoc.json b/packages/kernel-utils/typedoc.json similarity index 100% rename from packages/utils/typedoc.json rename to packages/kernel-utils/typedoc.json diff --git a/packages/utils/vitest.config.ts b/packages/kernel-utils/vitest.config.ts similarity index 100% rename from packages/utils/vitest.config.ts rename to packages/kernel-utils/vitest.config.ts diff --git a/packages/nodejs/package.json b/packages/nodejs/package.json index 8519468aa..0d2958f2b 100644 --- a/packages/nodejs/package.json +++ b/packages/nodejs/package.json @@ -39,13 +39,13 @@ }, "dependencies": { "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-store": "workspace:^", + "@metamask/kernel-utils": "workspace:^", + "@metamask/ocap-kernel": "workspace:^", "@metamask/utils": "^11.4.0", - "@ocap/kernel": "workspace:^", "@ocap/logger": "workspace:^", "@ocap/shims": "workspace:^", - "@ocap/store": "workspace:^", "@ocap/streams": "workspace:^", - "@ocap/utils": "workspace:^", "ses": "^1.12.0" }, "devDependencies": { diff --git a/packages/nodejs/src/kernel/VatWorkerManager.test.ts b/packages/nodejs/src/kernel/VatWorkerManager.test.ts index 137fdad79..a53ff7ac7 100644 --- a/packages/nodejs/src/kernel/VatWorkerManager.test.ts +++ b/packages/nodejs/src/kernel/VatWorkerManager.test.ts @@ -1,7 +1,7 @@ import '@ocap/shims/endoify'; -import type { VatId } from '@ocap/kernel'; -import { makeCounter } from '@ocap/utils'; +import { makeCounter } from '@metamask/kernel-utils'; +import type { VatId } from '@metamask/ocap-kernel'; import { describe, expect, it, vi } from 'vitest'; import { NodejsVatWorkerManager } from './VatWorkerManager.ts'; diff --git a/packages/nodejs/src/kernel/VatWorkerManager.ts b/packages/nodejs/src/kernel/VatWorkerManager.ts index 6cc36107a..2f0f2a369 100644 --- a/packages/nodejs/src/kernel/VatWorkerManager.ts +++ b/packages/nodejs/src/kernel/VatWorkerManager.ts @@ -1,10 +1,10 @@ import { makePromiseKit } from '@endo/promise-kit'; -import type { VatWorkerManager, VatId } from '@ocap/kernel'; +import { isJsonRpcMessage } from '@metamask/kernel-utils'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import type { VatWorkerManager, VatId } from '@metamask/ocap-kernel'; import { Logger } from '@ocap/logger'; import { NodeWorkerDuplexStream } from '@ocap/streams'; import type { DuplexStream } from '@ocap/streams'; -import { isJsonRpcMessage } from '@ocap/utils'; -import type { JsonRpcMessage } from '@ocap/utils'; import { Worker as NodeWorker } from 'node:worker_threads'; // Worker file loads from the built dist directory, requires rebuild after change diff --git a/packages/nodejs/src/kernel/make-kernel.test.ts b/packages/nodejs/src/kernel/make-kernel.test.ts index 53bce936a..8676e2cad 100644 --- a/packages/nodejs/src/kernel/make-kernel.test.ts +++ b/packages/nodejs/src/kernel/make-kernel.test.ts @@ -1,6 +1,6 @@ import '@ocap/shims/endoify'; -import { Kernel } from '@ocap/kernel'; +import { Kernel } from '@metamask/ocap-kernel'; import { MessagePort as NodeMessagePort, MessageChannel as NodeMessageChannel, @@ -9,9 +9,9 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { makeKernel } from './make-kernel.ts'; -vi.mock('@ocap/store/sqlite/nodejs', async () => { +vi.mock('@metamask/kernel-store/sqlite/nodejs', async () => { const { makeMapKernelDatabase } = await import( - '../../../kernel/test/storage.ts' + '../../../ocap-kernel/test/storage.ts' ); return { makeSQLKernelDatabase: makeMapKernelDatabase, diff --git a/packages/nodejs/src/kernel/make-kernel.ts b/packages/nodejs/src/kernel/make-kernel.ts index 2ec6d59a4..4c3d0e0b1 100644 --- a/packages/nodejs/src/kernel/make-kernel.ts +++ b/packages/nodejs/src/kernel/make-kernel.ts @@ -1,6 +1,6 @@ +import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; +import { Kernel } from '@metamask/ocap-kernel'; import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; -import { Kernel } from '@ocap/kernel'; -import { makeSQLKernelDatabase } from '@ocap/store/sqlite/nodejs'; import { NodeWorkerDuplexStream } from '@ocap/streams'; import { MessagePort as NodeMessagePort } from 'node:worker_threads'; diff --git a/packages/nodejs/src/vat/streams.ts b/packages/nodejs/src/vat/streams.ts index 9d6c77828..9f4390501 100644 --- a/packages/nodejs/src/vat/streams.ts +++ b/packages/nodejs/src/vat/streams.ts @@ -1,6 +1,6 @@ +import { isJsonRpcMessage } from '@metamask/kernel-utils'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { NodeWorkerDuplexStream } from '@ocap/streams'; -import { isJsonRpcMessage } from '@ocap/utils'; -import type { JsonRpcMessage } from '@ocap/utils'; import { parentPort } from 'node:worker_threads'; import type { MessagePort as NodePort } from 'node:worker_threads'; diff --git a/packages/nodejs/src/vat/vat-worker.ts b/packages/nodejs/src/vat/vat-worker.ts index 5a5339c8d..8c2762d75 100644 --- a/packages/nodejs/src/vat/vat-worker.ts +++ b/packages/nodejs/src/vat/vat-worker.ts @@ -1,7 +1,7 @@ import '@ocap/shims/endoify'; -import type { VatId } from '@ocap/kernel'; -import { VatSupervisor } from '@ocap/kernel'; +import type { VatId } from '@metamask/ocap-kernel'; +import { VatSupervisor } from '@metamask/ocap-kernel'; import { Logger } from '@ocap/logger'; import fs from 'node:fs/promises'; import url from 'node:url'; diff --git a/packages/nodejs/test/e2e/VatWorkerManager.test.ts b/packages/nodejs/test/e2e/VatWorkerManager.test.ts index aac1d046d..757e07ce4 100644 --- a/packages/nodejs/test/e2e/VatWorkerManager.test.ts +++ b/packages/nodejs/test/e2e/VatWorkerManager.test.ts @@ -1,8 +1,8 @@ import '@ocap/shims/endoify'; -import type { VatId } from '@ocap/kernel'; +import { makeCounter } from '@metamask/kernel-utils'; +import type { VatId } from '@metamask/ocap-kernel'; import { NodeWorkerDuplexStream } from '@ocap/streams'; -import { makeCounter } from '@ocap/utils'; import { describe, expect, it, vi } from 'vitest'; import { NodejsVatWorkerManager } from '../../src/kernel/VatWorkerManager.ts'; diff --git a/packages/nodejs/test/e2e/kernel-worker.test.ts b/packages/nodejs/test/e2e/kernel-worker.test.ts index 59e09f8e8..8393679a8 100644 --- a/packages/nodejs/test/e2e/kernel-worker.test.ts +++ b/packages/nodejs/test/e2e/kernel-worker.test.ts @@ -1,7 +1,7 @@ import '@ocap/shims/endoify'; -import { Kernel } from '@ocap/kernel'; -import type { VatConfig, VatId } from '@ocap/kernel'; +import { Kernel } from '@metamask/ocap-kernel'; +import type { VatConfig, VatId } from '@metamask/ocap-kernel'; import { MessageChannel as NodeMessageChannel, MessagePort as NodePort, diff --git a/packages/nodejs/test/e2e/vat-worker.test.ts b/packages/nodejs/test/e2e/vat-worker.test.ts index 88ed9ce61..aa9b80176 100644 --- a/packages/nodejs/test/e2e/vat-worker.test.ts +++ b/packages/nodejs/test/e2e/vat-worker.test.ts @@ -1,8 +1,8 @@ import '@ocap/shims/endoify'; -import type { VatId } from '@ocap/kernel'; +import { makeCounter } from '@metamask/kernel-utils'; +import type { VatId } from '@metamask/ocap-kernel'; import { makePromiseKitMock } from '@ocap/test-utils'; -import { makeCounter } from '@ocap/utils'; import { describe, expect, it } from 'vitest'; import { Worker as NodeWorker } from 'worker_threads'; diff --git a/packages/nodejs/tsconfig.build.json b/packages/nodejs/tsconfig.build.json index b1c3f5a63..134fa8b25 100644 --- a/packages/nodejs/tsconfig.build.json +++ b/packages/nodejs/tsconfig.build.json @@ -8,11 +8,11 @@ "types": ["node", "ses"] }, "references": [ - { "path": "../kernel/tsconfig.build.json" }, + { "path": "../ocap-kernel/tsconfig.build.json" }, { "path": "../logger/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" }, + { "path": "../kernel-utils/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, - { "path": "../store/tsconfig.build.json" } + { "path": "../kernel-store/tsconfig.build.json" } ], "include": ["./src"] } diff --git a/packages/nodejs/tsconfig.json b/packages/nodejs/tsconfig.json index c8fc73e18..aa7293439 100644 --- a/packages/nodejs/tsconfig.json +++ b/packages/nodejs/tsconfig.json @@ -8,12 +8,12 @@ "types": ["node", "ses", "vitest"] }, "references": [ - { "path": "../kernel" }, + { "path": "../ocap-kernel" }, { "path": "../logger" }, { "path": "../streams" }, - { "path": "../utils" }, + { "path": "../kernel-utils" }, { "path": "../test-utils" }, - { "path": "../store" } + { "path": "../kernel-store" } ], "include": [ "../../vitest.config.packages.ts", diff --git a/packages/utils/CHANGELOG.md b/packages/ocap-kernel/CHANGELOG.md similarity index 100% rename from packages/utils/CHANGELOG.md rename to packages/ocap-kernel/CHANGELOG.md diff --git a/packages/ocap-kernel/LICENSE b/packages/ocap-kernel/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/ocap-kernel/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/kernel/README.md b/packages/ocap-kernel/README.md similarity index 53% rename from packages/kernel/README.md rename to packages/ocap-kernel/README.md index fd1a5cbfc..473a5e2ea 100644 --- a/packages/kernel/README.md +++ b/packages/ocap-kernel/README.md @@ -1,6 +1,14 @@ -# `@ocap/kernel` +# `@metamask/ocap-kernel` -OCap kernel core components +Ocap Kernel core components. + +## Installation + +`yarn add @metamask/ocap-kernel` + +or + +`npm install @metamask/ocap-kernel` ## Contributing diff --git a/packages/kernel/package.json b/packages/ocap-kernel/package.json similarity index 82% rename from packages/kernel/package.json rename to packages/ocap-kernel/package.json index 22c55d7ff..3ac52fe64 100644 --- a/packages/kernel/package.json +++ b/packages/ocap-kernel/package.json @@ -1,12 +1,22 @@ { - "name": "@ocap/kernel", + "name": "@metamask/ocap-kernel", "version": "0.0.0", - "private": true, "description": "OCap kernel core components", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/ocap-kernel#readme", + "bugs": { + "url": "https://github.com/MetaMask/ocap-kernel/issues" + }, "repository": { "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", + "sideEffects": false, "type": "module", "exports": { ".": { @@ -31,13 +41,17 @@ }, "./package.json": "./package.json" }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", "files": [ "dist/" ], "scripts": { "build": "ts-bridge --project tsconfig.build.json --clean", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/kernel", + "changelog:update": "../../scripts/update-changelog.sh @metamask/ocap-kernel", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ocap-kernel", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -59,15 +73,15 @@ "@endo/marshal": "^1.6.4", "@endo/pass-style": "^1.5.0", "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-store": "workspace:^", + "@metamask/kernel-utils": "workspace:^", "@metamask/rpc-errors": "^7.0.2", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", "@ocap/errors": "workspace:^", "@ocap/logger": "workspace:^", "@ocap/rpc-methods": "workspace:^", - "@ocap/store": "workspace:^", "@ocap/streams": "workspace:^", - "@ocap/utils": "workspace:^", "ses": "^1.12.0", "setimmediate": "^1.0.5" }, @@ -101,5 +115,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/packages/kernel/src/Kernel.test.ts b/packages/ocap-kernel/src/Kernel.test.ts similarity index 99% rename from packages/kernel/src/Kernel.test.ts rename to packages/ocap-kernel/src/Kernel.test.ts index 8601f738d..651509ee0 100644 --- a/packages/kernel/src/Kernel.test.ts +++ b/packages/ocap-kernel/src/Kernel.test.ts @@ -1,9 +1,9 @@ +import type { KernelDatabase } from '@metamask/kernel-store'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; import type { JsonRpcResponse, JsonRpcRequest } from '@metamask/utils'; import { VatNotFoundError } from '@ocap/errors'; -import type { KernelDatabase } from '@ocap/store'; import type { DuplexStream } from '@ocap/streams'; import { TestDuplexStream } from '@ocap/test-utils/streams'; -import type { JsonRpcMessage } from '@ocap/utils'; import type { Mocked, MockInstance } from 'vitest'; import { describe, it, expect, vi, beforeEach } from 'vitest'; diff --git a/packages/kernel/src/Kernel.ts b/packages/ocap-kernel/src/Kernel.ts similarity index 99% rename from packages/kernel/src/Kernel.ts rename to packages/ocap-kernel/src/Kernel.ts index 394c9ee11..5272ff749 100644 --- a/packages/kernel/src/Kernel.ts +++ b/packages/ocap-kernel/src/Kernel.ts @@ -1,4 +1,6 @@ import type { CapData } from '@endo/marshal'; +import type { KernelDatabase } from '@metamask/kernel-store'; +import type { JsonRpcCall } from '@metamask/kernel-utils'; import { serializeError } from '@metamask/rpc-errors'; import { hasProperty } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; @@ -10,9 +12,7 @@ import { import { Logger } from '@ocap/logger'; import { RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; -import type { KernelDatabase } from '@ocap/store'; import type { DuplexStream } from '@ocap/streams'; -import type { JsonRpcCall } from '@ocap/utils'; import { KernelQueue } from './KernelQueue.ts'; import { KernelRouter } from './KernelRouter.ts'; diff --git a/packages/kernel/src/KernelQueue.test.ts b/packages/ocap-kernel/src/KernelQueue.test.ts similarity index 100% rename from packages/kernel/src/KernelQueue.test.ts rename to packages/ocap-kernel/src/KernelQueue.test.ts diff --git a/packages/kernel/src/KernelQueue.ts b/packages/ocap-kernel/src/KernelQueue.ts similarity index 100% rename from packages/kernel/src/KernelQueue.ts rename to packages/ocap-kernel/src/KernelQueue.ts diff --git a/packages/kernel/src/KernelRouter.test.ts b/packages/ocap-kernel/src/KernelRouter.test.ts similarity index 100% rename from packages/kernel/src/KernelRouter.test.ts rename to packages/ocap-kernel/src/KernelRouter.test.ts diff --git a/packages/kernel/src/KernelRouter.ts b/packages/ocap-kernel/src/KernelRouter.ts similarity index 100% rename from packages/kernel/src/KernelRouter.ts rename to packages/ocap-kernel/src/KernelRouter.ts diff --git a/packages/kernel/src/VatHandle.test.ts b/packages/ocap-kernel/src/VatHandle.test.ts similarity index 96% rename from packages/kernel/src/VatHandle.test.ts rename to packages/ocap-kernel/src/VatHandle.test.ts index 82d0cc069..ce3533078 100644 --- a/packages/kernel/src/VatHandle.test.ts +++ b/packages/ocap-kernel/src/VatHandle.test.ts @@ -1,9 +1,9 @@ +import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import { isJsonRpcMessage } from '@metamask/kernel-utils'; import type { Json } from '@metamask/utils'; import type { Logger } from '@ocap/logger'; import { delay } from '@ocap/test-utils'; import { TestDuplexStream } from '@ocap/test-utils/streams'; -import type { JsonRpcMessage } from '@ocap/utils'; -import { isJsonRpcMessage } from '@ocap/utils'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import type { MockInstance } from 'vitest'; diff --git a/packages/kernel/src/VatHandle.ts b/packages/ocap-kernel/src/VatHandle.ts similarity index 98% rename from packages/kernel/src/VatHandle.ts rename to packages/ocap-kernel/src/VatHandle.ts index 19f468274..71a16a1d2 100644 --- a/packages/kernel/src/VatHandle.ts +++ b/packages/ocap-kernel/src/VatHandle.ts @@ -2,15 +2,15 @@ import type { VatOneResolution, VatSyscallObject, } from '@agoric/swingset-liveslots'; +import type { VatStore, VatCheckpoint } from '@metamask/kernel-store'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { serializeError } from '@metamask/rpc-errors'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import { VatDeletedError, StreamReadError } from '@ocap/errors'; import { Logger } from '@ocap/logger'; import { RpcClient, RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; -import type { VatStore, VatCheckpoint } from '@ocap/store'; import type { DuplexStream } from '@ocap/streams'; -import type { JsonRpcMessage } from '@ocap/utils'; import type { KernelQueue } from './KernelQueue.ts'; import { vatMethodSpecs, vatSyscallHandlers } from './rpc/index.ts'; diff --git a/packages/kernel/src/VatSupervisor.test.ts b/packages/ocap-kernel/src/VatSupervisor.test.ts similarity index 96% rename from packages/kernel/src/VatSupervisor.test.ts rename to packages/ocap-kernel/src/VatSupervisor.test.ts index f0bfc0ab4..01b3d9067 100644 --- a/packages/kernel/src/VatSupervisor.test.ts +++ b/packages/ocap-kernel/src/VatSupervisor.test.ts @@ -1,8 +1,8 @@ +import { delay, isJsonRpcMessage } from '@metamask/kernel-utils'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { rpcErrors } from '@metamask/rpc-errors'; import '@ocap/test-utils'; import { TestDuplexStream } from '@ocap/test-utils/streams'; -import { delay, isJsonRpcMessage } from '@ocap/utils'; -import type { JsonRpcMessage } from '@ocap/utils'; import { describe, it, expect, vi } from 'vitest'; import { VatSupervisor } from './VatSupervisor.ts'; diff --git a/packages/kernel/src/VatSupervisor.ts b/packages/ocap-kernel/src/VatSupervisor.ts similarity index 97% rename from packages/kernel/src/VatSupervisor.ts rename to packages/ocap-kernel/src/VatSupervisor.ts index c6086cb1a..fbe5f4912 100644 --- a/packages/kernel/src/VatSupervisor.ts +++ b/packages/ocap-kernel/src/VatSupervisor.ts @@ -7,14 +7,14 @@ import type { import { importBundle } from '@endo/import-bundle'; import { makeMarshal } from '@endo/marshal'; import type { CapData } from '@endo/marshal'; +import type { VatKVStore, VatCheckpoint } from '@metamask/kernel-store'; +import { waitUntilQuiescent } from '@metamask/kernel-utils'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { serializeError } from '@metamask/rpc-errors'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import { StreamReadError } from '@ocap/errors'; import { RpcClient, RpcService } from '@ocap/rpc-methods'; -import type { VatKVStore, VatCheckpoint } from '@ocap/store'; import type { DuplexStream } from '@ocap/streams'; -import { waitUntilQuiescent } from '@ocap/utils'; -import type { JsonRpcMessage } from '@ocap/utils'; import { vatSyscallMethodSpecs, vatHandlers } from './rpc/index.ts'; import type { InitVat } from './rpc/vat/initVat.ts'; diff --git a/packages/kernel/src/VatSyscall.test.ts b/packages/ocap-kernel/src/VatSyscall.test.ts similarity index 100% rename from packages/kernel/src/VatSyscall.test.ts rename to packages/ocap-kernel/src/VatSyscall.test.ts diff --git a/packages/kernel/src/VatSyscall.ts b/packages/ocap-kernel/src/VatSyscall.ts similarity index 100% rename from packages/kernel/src/VatSyscall.ts rename to packages/ocap-kernel/src/VatSyscall.ts diff --git a/packages/kernel/src/index.test.ts b/packages/ocap-kernel/src/index.test.ts similarity index 100% rename from packages/kernel/src/index.test.ts rename to packages/ocap-kernel/src/index.test.ts diff --git a/packages/kernel/src/index.ts b/packages/ocap-kernel/src/index.ts similarity index 100% rename from packages/kernel/src/index.ts rename to packages/ocap-kernel/src/index.ts diff --git a/packages/kernel/src/rpc/index.test.ts b/packages/ocap-kernel/src/rpc/index.test.ts similarity index 100% rename from packages/kernel/src/rpc/index.test.ts rename to packages/ocap-kernel/src/rpc/index.test.ts diff --git a/packages/kernel/src/rpc/index.ts b/packages/ocap-kernel/src/rpc/index.ts similarity index 100% rename from packages/kernel/src/rpc/index.ts rename to packages/ocap-kernel/src/rpc/index.ts diff --git a/packages/kernel/src/rpc/kernel/index.ts b/packages/ocap-kernel/src/rpc/kernel/index.ts similarity index 100% rename from packages/kernel/src/rpc/kernel/index.ts rename to packages/ocap-kernel/src/rpc/kernel/index.ts diff --git a/packages/kernel/src/rpc/vat-syscall/index.ts b/packages/ocap-kernel/src/rpc/vat-syscall/index.ts similarity index 100% rename from packages/kernel/src/rpc/vat-syscall/index.ts rename to packages/ocap-kernel/src/rpc/vat-syscall/index.ts diff --git a/packages/kernel/src/rpc/vat-syscall/vat-syscall.test.ts b/packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.test.ts similarity index 100% rename from packages/kernel/src/rpc/vat-syscall/vat-syscall.test.ts rename to packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.test.ts diff --git a/packages/kernel/src/rpc/vat-syscall/vat-syscall.ts b/packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.ts similarity index 100% rename from packages/kernel/src/rpc/vat-syscall/vat-syscall.ts rename to packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.ts diff --git a/packages/kernel/src/rpc/vat-worker-service/index.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/index.ts similarity index 100% rename from packages/kernel/src/rpc/vat-worker-service/index.ts rename to packages/ocap-kernel/src/rpc/vat-worker-service/index.ts diff --git a/packages/kernel/src/rpc/vat-worker-service/launch.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts similarity index 100% rename from packages/kernel/src/rpc/vat-worker-service/launch.ts rename to packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts diff --git a/packages/kernel/src/rpc/vat-worker-service/terminate.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts similarity index 100% rename from packages/kernel/src/rpc/vat-worker-service/terminate.ts rename to packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts diff --git a/packages/kernel/src/rpc/vat-worker-service/terminateAll.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts similarity index 84% rename from packages/kernel/src/rpc/vat-worker-service/terminateAll.ts rename to packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts index 982e9eb0e..8ebe017dc 100644 --- a/packages/kernel/src/rpc/vat-worker-service/terminateAll.ts +++ b/packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts @@ -1,7 +1,7 @@ +import { EmptyJsonArray } from '@metamask/kernel-utils'; import { literal } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; import type { MethodSpec } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; export const terminateAllSpec: MethodSpec<'terminateAll', Json[], null> = { method: 'terminateAll', diff --git a/packages/kernel/src/rpc/vat/deliver.test.ts b/packages/ocap-kernel/src/rpc/vat/deliver.test.ts similarity index 100% rename from packages/kernel/src/rpc/vat/deliver.test.ts rename to packages/ocap-kernel/src/rpc/vat/deliver.test.ts diff --git a/packages/kernel/src/rpc/vat/deliver.ts b/packages/ocap-kernel/src/rpc/vat/deliver.ts similarity index 97% rename from packages/kernel/src/rpc/vat/deliver.ts rename to packages/ocap-kernel/src/rpc/vat/deliver.ts index 4e94c363e..4418f0d95 100644 --- a/packages/kernel/src/rpc/vat/deliver.ts +++ b/packages/ocap-kernel/src/rpc/vat/deliver.ts @@ -1,3 +1,4 @@ +import type { VatCheckpoint } from '@metamask/kernel-store'; import { tuple, literal, @@ -9,7 +10,6 @@ import { import type { Infer } from '@metamask/superstruct'; import { UnsafeJsonStruct } from '@metamask/utils'; import type { Handler, MethodSpec } from '@ocap/rpc-methods'; -import type { VatCheckpoint } from '@ocap/store'; import { VatCheckpointStruct } from './shared.ts'; import { diff --git a/packages/kernel/src/rpc/vat/index.ts b/packages/ocap-kernel/src/rpc/vat/index.ts similarity index 100% rename from packages/kernel/src/rpc/vat/index.ts rename to packages/ocap-kernel/src/rpc/vat/index.ts diff --git a/packages/kernel/src/rpc/vat/initVat.test.ts b/packages/ocap-kernel/src/rpc/vat/initVat.test.ts similarity index 100% rename from packages/kernel/src/rpc/vat/initVat.test.ts rename to packages/ocap-kernel/src/rpc/vat/initVat.test.ts diff --git a/packages/kernel/src/rpc/vat/initVat.ts b/packages/ocap-kernel/src/rpc/vat/initVat.ts similarity index 95% rename from packages/kernel/src/rpc/vat/initVat.ts rename to packages/ocap-kernel/src/rpc/vat/initVat.ts index d5e304d0d..670e19c3d 100644 --- a/packages/kernel/src/rpc/vat/initVat.ts +++ b/packages/ocap-kernel/src/rpc/vat/initVat.ts @@ -1,7 +1,7 @@ +import type { VatCheckpoint } from '@metamask/kernel-store'; import { array, object, string, tuple } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import type { VatCheckpoint } from '@ocap/store'; import { VatCheckpointStruct } from './shared.ts'; import { VatConfigStruct } from '../../types.ts'; diff --git a/packages/kernel/src/rpc/vat/ping.test.ts b/packages/ocap-kernel/src/rpc/vat/ping.test.ts similarity index 100% rename from packages/kernel/src/rpc/vat/ping.test.ts rename to packages/ocap-kernel/src/rpc/vat/ping.test.ts diff --git a/packages/kernel/src/rpc/vat/ping.ts b/packages/ocap-kernel/src/rpc/vat/ping.ts similarity index 90% rename from packages/kernel/src/rpc/vat/ping.ts rename to packages/ocap-kernel/src/rpc/vat/ping.ts index 0f0ff3555..5bf545d42 100644 --- a/packages/kernel/src/rpc/vat/ping.ts +++ b/packages/ocap-kernel/src/rpc/vat/ping.ts @@ -1,6 +1,6 @@ +import { EmptyJsonArray } from '@metamask/kernel-utils'; import { string } from '@metamask/superstruct'; import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; export type PingSpec = MethodSpec<'ping', EmptyJsonArray, string>; diff --git a/packages/kernel/src/rpc/vat/shared.ts b/packages/ocap-kernel/src/rpc/vat/shared.ts similarity index 79% rename from packages/kernel/src/rpc/vat/shared.ts rename to packages/ocap-kernel/src/rpc/vat/shared.ts index ed4384711..a0aa21425 100644 --- a/packages/kernel/src/rpc/vat/shared.ts +++ b/packages/ocap-kernel/src/rpc/vat/shared.ts @@ -1,6 +1,6 @@ +import type { VatCheckpoint } from '@metamask/kernel-store'; import type { Struct } from '@metamask/superstruct'; import { tuple, array, string } from '@metamask/superstruct'; -import type { VatCheckpoint } from '@ocap/store'; export const VatCheckpointStruct: Struct = tuple([ array(tuple([string(), string()])), diff --git a/packages/kernel/src/services/garbage-collection.test.ts b/packages/ocap-kernel/src/services/garbage-collection.test.ts similarity index 100% rename from packages/kernel/src/services/garbage-collection.test.ts rename to packages/ocap-kernel/src/services/garbage-collection.test.ts diff --git a/packages/kernel/src/services/garbage-collection.ts b/packages/ocap-kernel/src/services/garbage-collection.ts similarity index 100% rename from packages/kernel/src/services/garbage-collection.ts rename to packages/ocap-kernel/src/services/garbage-collection.ts diff --git a/packages/kernel/src/services/gc-engine.ts b/packages/ocap-kernel/src/services/gc-engine.ts similarity index 100% rename from packages/kernel/src/services/gc-engine.ts rename to packages/ocap-kernel/src/services/gc-engine.ts diff --git a/packages/kernel/src/services/gc-finalize.test.ts b/packages/ocap-kernel/src/services/gc-finalize.test.ts similarity index 97% rename from packages/kernel/src/services/gc-finalize.test.ts rename to packages/ocap-kernel/src/services/gc-finalize.test.ts index 0c279cc2a..a47bb2bc0 100644 --- a/packages/kernel/src/services/gc-finalize.test.ts +++ b/packages/ocap-kernel/src/services/gc-finalize.test.ts @@ -1,4 +1,4 @@ -import { delay } from '@ocap/utils'; +import { delay } from '@metamask/kernel-utils'; import { describe, it, expect, vi } from 'vitest'; import { makeGCAndFinalize } from './gc-finalize.ts'; diff --git a/packages/kernel/src/services/gc-finalize.ts b/packages/ocap-kernel/src/services/gc-finalize.ts similarity index 97% rename from packages/kernel/src/services/gc-finalize.ts rename to packages/ocap-kernel/src/services/gc-finalize.ts index bb1ab85ef..858c55596 100644 --- a/packages/kernel/src/services/gc-finalize.ts +++ b/packages/ocap-kernel/src/services/gc-finalize.ts @@ -1,4 +1,4 @@ -import { delay } from '@ocap/utils'; +import { delay } from '@metamask/kernel-utils'; /** * Try to get a GC function for the current environment diff --git a/packages/kernel/src/services/kernel-marshal.test.ts b/packages/ocap-kernel/src/services/kernel-marshal.test.ts similarity index 100% rename from packages/kernel/src/services/kernel-marshal.test.ts rename to packages/ocap-kernel/src/services/kernel-marshal.test.ts diff --git a/packages/kernel/src/services/kernel-marshal.ts b/packages/ocap-kernel/src/services/kernel-marshal.ts similarity index 100% rename from packages/kernel/src/services/kernel-marshal.ts rename to packages/ocap-kernel/src/services/kernel-marshal.ts diff --git a/packages/kernel/src/services/meter-control.test.ts b/packages/ocap-kernel/src/services/meter-control.test.ts similarity index 100% rename from packages/kernel/src/services/meter-control.test.ts rename to packages/ocap-kernel/src/services/meter-control.test.ts diff --git a/packages/kernel/src/services/meter-control.ts b/packages/ocap-kernel/src/services/meter-control.ts similarity index 100% rename from packages/kernel/src/services/meter-control.ts rename to packages/ocap-kernel/src/services/meter-control.ts diff --git a/packages/kernel/src/services/syscall.test.ts b/packages/ocap-kernel/src/services/syscall.test.ts similarity index 99% rename from packages/kernel/src/services/syscall.test.ts rename to packages/ocap-kernel/src/services/syscall.test.ts index cd773e9b6..851952c45 100644 --- a/packages/kernel/src/services/syscall.test.ts +++ b/packages/ocap-kernel/src/services/syscall.test.ts @@ -4,7 +4,7 @@ import type { VatOneResolution, } from '@agoric/swingset-liveslots'; import type { CapData } from '@endo/marshal'; -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import { describe, it, expect, vi } from 'vitest'; import { makeSupervisorSyscall } from './syscall.ts'; diff --git a/packages/kernel/src/services/syscall.ts b/packages/ocap-kernel/src/services/syscall.ts similarity index 98% rename from packages/kernel/src/services/syscall.ts rename to packages/ocap-kernel/src/services/syscall.ts index ede62bcf8..7b7ae8141 100644 --- a/packages/kernel/src/services/syscall.ts +++ b/packages/ocap-kernel/src/services/syscall.ts @@ -7,7 +7,7 @@ import type { VatOneResolution, } from '@agoric/swingset-liveslots'; import type { CapData } from '@endo/marshal'; -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import type { Syscall, SyscallResult } from './types.ts'; import type { VatSupervisor } from '../VatSupervisor.ts'; diff --git a/packages/kernel/src/services/types.ts b/packages/ocap-kernel/src/services/types.ts similarity index 100% rename from packages/kernel/src/services/types.ts rename to packages/ocap-kernel/src/services/types.ts diff --git a/packages/kernel/src/store/index.test.ts b/packages/ocap-kernel/src/store/index.test.ts similarity index 99% rename from packages/kernel/src/store/index.test.ts rename to packages/ocap-kernel/src/store/index.test.ts index 389be9817..25a2be270 100644 --- a/packages/kernel/src/store/index.test.ts +++ b/packages/ocap-kernel/src/store/index.test.ts @@ -1,4 +1,4 @@ -import type { KernelDatabase } from '@ocap/store'; +import type { KernelDatabase } from '@metamask/kernel-store'; import { describe, it, expect, beforeEach } from 'vitest'; import { makeKernelStore } from './index.ts'; diff --git a/packages/kernel/src/store/index.ts b/packages/ocap-kernel/src/store/index.ts similarity index 99% rename from packages/kernel/src/store/index.ts rename to packages/ocap-kernel/src/store/index.ts index 511aa52a7..5e01fc2f4 100644 --- a/packages/kernel/src/store/index.ts +++ b/packages/ocap-kernel/src/store/index.ts @@ -55,7 +55,7 @@ * k.nextPromiseId = NN // allocation counter for promise KRefs */ -import type { KernelDatabase, KVStore, VatStore } from '@ocap/store'; +import type { KernelDatabase, KVStore, VatStore } from '@metamask/kernel-store'; import type { KRef, VatId } from '../types.ts'; import { getBaseMethods } from './methods/base.ts'; diff --git a/packages/kernel/src/store/methods/base.test.ts b/packages/ocap-kernel/src/store/methods/base.test.ts similarity index 99% rename from packages/kernel/src/store/methods/base.test.ts rename to packages/ocap-kernel/src/store/methods/base.test.ts index 0008233fb..dc63a9652 100644 --- a/packages/kernel/src/store/methods/base.test.ts +++ b/packages/ocap-kernel/src/store/methods/base.test.ts @@ -1,4 +1,4 @@ -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import { describe, it, expect, beforeEach, vi } from 'vitest'; import { getBaseMethods } from './base.ts'; diff --git a/packages/kernel/src/store/methods/base.ts b/packages/ocap-kernel/src/store/methods/base.ts similarity index 99% rename from packages/kernel/src/store/methods/base.ts rename to packages/ocap-kernel/src/store/methods/base.ts index f42dd3d85..b1213913e 100644 --- a/packages/kernel/src/store/methods/base.ts +++ b/packages/ocap-kernel/src/store/methods/base.ts @@ -1,4 +1,4 @@ -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import type { EndpointId, KRef } from '../../types.ts'; import type { StoredQueue, StoredValue } from '../types.ts'; diff --git a/packages/kernel/src/store/methods/clist.test.ts b/packages/ocap-kernel/src/store/methods/clist.test.ts similarity index 99% rename from packages/kernel/src/store/methods/clist.test.ts rename to packages/ocap-kernel/src/store/methods/clist.test.ts index 18eb3dc05..e43d6e428 100644 --- a/packages/kernel/src/store/methods/clist.test.ts +++ b/packages/ocap-kernel/src/store/methods/clist.test.ts @@ -1,4 +1,4 @@ -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import { describe, it, expect, beforeEach } from 'vitest'; import { getCListMethods } from './clist.ts'; diff --git a/packages/kernel/src/store/methods/clist.ts b/packages/ocap-kernel/src/store/methods/clist.ts similarity index 100% rename from packages/kernel/src/store/methods/clist.ts rename to packages/ocap-kernel/src/store/methods/clist.ts diff --git a/packages/kernel/src/store/methods/gc.test.ts b/packages/ocap-kernel/src/store/methods/gc.test.ts similarity index 100% rename from packages/kernel/src/store/methods/gc.test.ts rename to packages/ocap-kernel/src/store/methods/gc.test.ts diff --git a/packages/kernel/src/store/methods/gc.ts b/packages/ocap-kernel/src/store/methods/gc.ts similarity index 100% rename from packages/kernel/src/store/methods/gc.ts rename to packages/ocap-kernel/src/store/methods/gc.ts diff --git a/packages/kernel/src/store/methods/id.test.ts b/packages/ocap-kernel/src/store/methods/id.test.ts similarity index 98% rename from packages/kernel/src/store/methods/id.test.ts rename to packages/ocap-kernel/src/store/methods/id.test.ts index 2c507db25..b9bf3760e 100644 --- a/packages/kernel/src/store/methods/id.test.ts +++ b/packages/ocap-kernel/src/store/methods/id.test.ts @@ -1,4 +1,4 @@ -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import { describe, it, expect, beforeEach } from 'vitest'; import { getIdMethods } from './id.ts'; diff --git a/packages/kernel/src/store/methods/id.ts b/packages/ocap-kernel/src/store/methods/id.ts similarity index 100% rename from packages/kernel/src/store/methods/id.ts rename to packages/ocap-kernel/src/store/methods/id.ts diff --git a/packages/kernel/src/store/methods/object.test.ts b/packages/ocap-kernel/src/store/methods/object.test.ts similarity index 99% rename from packages/kernel/src/store/methods/object.test.ts rename to packages/ocap-kernel/src/store/methods/object.test.ts index fe5307bc4..480b5f455 100644 --- a/packages/kernel/src/store/methods/object.test.ts +++ b/packages/ocap-kernel/src/store/methods/object.test.ts @@ -1,4 +1,4 @@ -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import { describe, it, expect, beforeEach } from 'vitest'; import { getObjectMethods } from './object.ts'; diff --git a/packages/kernel/src/store/methods/object.ts b/packages/ocap-kernel/src/store/methods/object.ts similarity index 100% rename from packages/kernel/src/store/methods/object.ts rename to packages/ocap-kernel/src/store/methods/object.ts diff --git a/packages/kernel/src/store/methods/pinned.test.ts b/packages/ocap-kernel/src/store/methods/pinned.test.ts similarity index 100% rename from packages/kernel/src/store/methods/pinned.test.ts rename to packages/ocap-kernel/src/store/methods/pinned.test.ts diff --git a/packages/kernel/src/store/methods/pinned.ts b/packages/ocap-kernel/src/store/methods/pinned.ts similarity index 100% rename from packages/kernel/src/store/methods/pinned.ts rename to packages/ocap-kernel/src/store/methods/pinned.ts diff --git a/packages/kernel/src/store/methods/promise.test.ts b/packages/ocap-kernel/src/store/methods/promise.test.ts similarity index 100% rename from packages/kernel/src/store/methods/promise.test.ts rename to packages/ocap-kernel/src/store/methods/promise.test.ts diff --git a/packages/kernel/src/store/methods/promise.ts b/packages/ocap-kernel/src/store/methods/promise.ts similarity index 100% rename from packages/kernel/src/store/methods/promise.ts rename to packages/ocap-kernel/src/store/methods/promise.ts diff --git a/packages/kernel/src/store/methods/queue.test.ts b/packages/ocap-kernel/src/store/methods/queue.test.ts similarity index 100% rename from packages/kernel/src/store/methods/queue.test.ts rename to packages/ocap-kernel/src/store/methods/queue.test.ts diff --git a/packages/kernel/src/store/methods/queue.ts b/packages/ocap-kernel/src/store/methods/queue.ts similarity index 100% rename from packages/kernel/src/store/methods/queue.ts rename to packages/ocap-kernel/src/store/methods/queue.ts diff --git a/packages/kernel/src/store/methods/reachable.test.ts b/packages/ocap-kernel/src/store/methods/reachable.test.ts similarity index 100% rename from packages/kernel/src/store/methods/reachable.test.ts rename to packages/ocap-kernel/src/store/methods/reachable.test.ts diff --git a/packages/kernel/src/store/methods/reachable.ts b/packages/ocap-kernel/src/store/methods/reachable.ts similarity index 100% rename from packages/kernel/src/store/methods/reachable.ts rename to packages/ocap-kernel/src/store/methods/reachable.ts diff --git a/packages/kernel/src/store/methods/refcount.test.ts b/packages/ocap-kernel/src/store/methods/refcount.test.ts similarity index 99% rename from packages/kernel/src/store/methods/refcount.test.ts rename to packages/ocap-kernel/src/store/methods/refcount.test.ts index 1b0e23b75..24fe904df 100644 --- a/packages/kernel/src/store/methods/refcount.test.ts +++ b/packages/ocap-kernel/src/store/methods/refcount.test.ts @@ -1,4 +1,4 @@ -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import { describe, it, expect, beforeEach, vi } from 'vitest'; import { getRefCountMethods } from './refcount.ts'; diff --git a/packages/kernel/src/store/methods/refcount.ts b/packages/ocap-kernel/src/store/methods/refcount.ts similarity index 100% rename from packages/kernel/src/store/methods/refcount.ts rename to packages/ocap-kernel/src/store/methods/refcount.ts diff --git a/packages/kernel/src/store/methods/translators.test.ts b/packages/ocap-kernel/src/store/methods/translators.test.ts similarity index 100% rename from packages/kernel/src/store/methods/translators.test.ts rename to packages/ocap-kernel/src/store/methods/translators.test.ts diff --git a/packages/kernel/src/store/methods/translators.ts b/packages/ocap-kernel/src/store/methods/translators.ts similarity index 100% rename from packages/kernel/src/store/methods/translators.ts rename to packages/ocap-kernel/src/store/methods/translators.ts diff --git a/packages/kernel/src/store/methods/vat.test.ts b/packages/ocap-kernel/src/store/methods/vat.test.ts similarity index 100% rename from packages/kernel/src/store/methods/vat.test.ts rename to packages/ocap-kernel/src/store/methods/vat.test.ts diff --git a/packages/kernel/src/store/methods/vat.ts b/packages/ocap-kernel/src/store/methods/vat.ts similarity index 100% rename from packages/kernel/src/store/methods/vat.ts rename to packages/ocap-kernel/src/store/methods/vat.ts diff --git a/packages/kernel/src/store/types.ts b/packages/ocap-kernel/src/store/types.ts similarity index 92% rename from packages/kernel/src/store/types.ts rename to packages/ocap-kernel/src/store/types.ts index b42352698..a2ce57e7c 100644 --- a/packages/kernel/src/store/types.ts +++ b/packages/ocap-kernel/src/store/types.ts @@ -1,4 +1,4 @@ -import type { KVStore } from '@ocap/store'; +import type { KVStore } from '@metamask/kernel-store'; import type { KRef } from '../types.ts'; diff --git a/packages/kernel/src/store/utils/extract-ref.test.ts b/packages/ocap-kernel/src/store/utils/extract-ref.test.ts similarity index 100% rename from packages/kernel/src/store/utils/extract-ref.test.ts rename to packages/ocap-kernel/src/store/utils/extract-ref.test.ts diff --git a/packages/kernel/src/store/utils/extract-ref.ts b/packages/ocap-kernel/src/store/utils/extract-ref.ts similarity index 100% rename from packages/kernel/src/store/utils/extract-ref.ts rename to packages/ocap-kernel/src/store/utils/extract-ref.ts diff --git a/packages/kernel/src/store/utils/kernel-slots.test.ts b/packages/ocap-kernel/src/store/utils/kernel-slots.test.ts similarity index 100% rename from packages/kernel/src/store/utils/kernel-slots.test.ts rename to packages/ocap-kernel/src/store/utils/kernel-slots.test.ts diff --git a/packages/kernel/src/store/utils/kernel-slots.ts b/packages/ocap-kernel/src/store/utils/kernel-slots.ts similarity index 100% rename from packages/kernel/src/store/utils/kernel-slots.ts rename to packages/ocap-kernel/src/store/utils/kernel-slots.ts diff --git a/packages/kernel/src/store/utils/parse-ref.test.ts b/packages/ocap-kernel/src/store/utils/parse-ref.test.ts similarity index 100% rename from packages/kernel/src/store/utils/parse-ref.test.ts rename to packages/ocap-kernel/src/store/utils/parse-ref.test.ts diff --git a/packages/kernel/src/store/utils/parse-ref.ts b/packages/ocap-kernel/src/store/utils/parse-ref.ts similarity index 100% rename from packages/kernel/src/store/utils/parse-ref.ts rename to packages/ocap-kernel/src/store/utils/parse-ref.ts diff --git a/packages/kernel/src/store/utils/promise-ref.test.ts b/packages/ocap-kernel/src/store/utils/promise-ref.test.ts similarity index 100% rename from packages/kernel/src/store/utils/promise-ref.test.ts rename to packages/ocap-kernel/src/store/utils/promise-ref.test.ts diff --git a/packages/kernel/src/store/utils/promise-ref.ts b/packages/ocap-kernel/src/store/utils/promise-ref.ts similarity index 100% rename from packages/kernel/src/store/utils/promise-ref.ts rename to packages/ocap-kernel/src/store/utils/promise-ref.ts diff --git a/packages/kernel/src/store/utils/reachable.test.ts b/packages/ocap-kernel/src/store/utils/reachable.test.ts similarity index 100% rename from packages/kernel/src/store/utils/reachable.test.ts rename to packages/ocap-kernel/src/store/utils/reachable.test.ts diff --git a/packages/kernel/src/store/utils/reachable.ts b/packages/ocap-kernel/src/store/utils/reachable.ts similarity index 100% rename from packages/kernel/src/store/utils/reachable.ts rename to packages/ocap-kernel/src/store/utils/reachable.ts diff --git a/packages/kernel/src/store/vat-kv-store.test.ts b/packages/ocap-kernel/src/store/vat-kv-store.test.ts similarity index 100% rename from packages/kernel/src/store/vat-kv-store.test.ts rename to packages/ocap-kernel/src/store/vat-kv-store.test.ts diff --git a/packages/kernel/src/store/vat-kv-store.ts b/packages/ocap-kernel/src/store/vat-kv-store.ts similarity index 96% rename from packages/kernel/src/store/vat-kv-store.ts rename to packages/ocap-kernel/src/store/vat-kv-store.ts index 08e109846..385b90f11 100644 --- a/packages/kernel/src/store/vat-kv-store.ts +++ b/packages/ocap-kernel/src/store/vat-kv-store.ts @@ -1,5 +1,5 @@ /* eslint-disable no-lonely-if, no-else-return */ -import type { VatKVStore, VatCheckpoint } from '@ocap/store'; +import type { VatKVStore, VatCheckpoint } from '@metamask/kernel-store'; import { keySearch } from '../utils/key-search.ts'; diff --git a/packages/kernel/src/types.test.ts b/packages/ocap-kernel/src/types.test.ts similarity index 100% rename from packages/kernel/src/types.test.ts rename to packages/ocap-kernel/src/types.test.ts diff --git a/packages/kernel/src/types.ts b/packages/ocap-kernel/src/types.ts similarity index 99% rename from packages/kernel/src/types.ts rename to packages/ocap-kernel/src/types.ts index 4f317c8f4..a27305df8 100644 --- a/packages/kernel/src/types.ts +++ b/packages/ocap-kernel/src/types.ts @@ -4,6 +4,7 @@ import type { VatSyscallSend, } from '@agoric/swingset-liveslots'; import type { CapData } from '@endo/marshal'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { define, is, @@ -21,7 +22,6 @@ import type { Infer } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; import { UnsafeJsonStruct } from '@metamask/utils'; import type { DuplexStream } from '@ocap/streams'; -import type { JsonRpcMessage } from '@ocap/utils'; import { Fail } from './utils/assert.ts'; diff --git a/packages/kernel/src/utils/assert.ts b/packages/ocap-kernel/src/utils/assert.ts similarity index 100% rename from packages/kernel/src/utils/assert.ts rename to packages/ocap-kernel/src/utils/assert.ts diff --git a/packages/kernel/src/utils/key-search.test.ts b/packages/ocap-kernel/src/utils/key-search.test.ts similarity index 100% rename from packages/kernel/src/utils/key-search.test.ts rename to packages/ocap-kernel/src/utils/key-search.test.ts diff --git a/packages/kernel/src/utils/key-search.ts b/packages/ocap-kernel/src/utils/key-search.ts similarity index 100% rename from packages/kernel/src/utils/key-search.ts rename to packages/ocap-kernel/src/utils/key-search.ts diff --git a/packages/kernel/test/storage.ts b/packages/ocap-kernel/test/storage.ts similarity index 97% rename from packages/kernel/test/storage.ts rename to packages/ocap-kernel/test/storage.ts index 75fdada48..9d2fc04db 100644 --- a/packages/kernel/test/storage.ts +++ b/packages/ocap-kernel/test/storage.ts @@ -1,4 +1,4 @@ -import type { KVStore, KernelDatabase, VatStore } from '@ocap/store'; +import type { KVStore, KernelDatabase, VatStore } from '@metamask/kernel-store'; import { keySearch } from '../src/utils/key-search.ts'; diff --git a/packages/kernel/tsconfig.build.json b/packages/ocap-kernel/tsconfig.build.json similarity index 78% rename from packages/kernel/tsconfig.build.json rename to packages/ocap-kernel/tsconfig.build.json index dab88e388..622a20b60 100644 --- a/packages/kernel/tsconfig.build.json +++ b/packages/ocap-kernel/tsconfig.build.json @@ -11,8 +11,8 @@ { "path": "../errors/tsconfig.build.json" }, { "path": "../rpc-methods/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, - { "path": "../store/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + { "path": "../kernel-store/tsconfig.build.json" }, + { "path": "../kernel-utils/tsconfig.build.json" } ], "include": ["./src"] } diff --git a/packages/kernel/tsconfig.json b/packages/ocap-kernel/tsconfig.json similarity index 83% rename from packages/kernel/tsconfig.json rename to packages/ocap-kernel/tsconfig.json index 7e6af317d..0d1daceb3 100644 --- a/packages/kernel/tsconfig.json +++ b/packages/ocap-kernel/tsconfig.json @@ -7,9 +7,9 @@ { "path": "../errors" }, { "path": "../logger" }, { "path": "../rpc-methods" }, - { "path": "../store" }, + { "path": "../kernel-store" }, { "path": "../streams" }, - { "path": "../utils" }, + { "path": "../kernel-utils" }, { "path": "../test-utils" } ], "include": ["./src", "./test", "./vite.config.ts", "./vitest.config.ts"] diff --git a/packages/kernel/typedoc.json b/packages/ocap-kernel/typedoc.json similarity index 100% rename from packages/kernel/typedoc.json rename to packages/ocap-kernel/typedoc.json diff --git a/packages/kernel/vitest.config.ts b/packages/ocap-kernel/vitest.config.ts similarity index 100% rename from packages/kernel/vitest.config.ts rename to packages/ocap-kernel/vitest.config.ts diff --git a/packages/rpc-methods/package.json b/packages/rpc-methods/package.json index db173ca5e..5976d7fb4 100644 --- a/packages/rpc-methods/package.json +++ b/packages/rpc-methods/package.json @@ -47,11 +47,11 @@ }, "dependencies": { "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-utils": "workspace:^", "@metamask/rpc-errors": "^7.0.2", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", - "@ocap/logger": "workspace:^", - "@ocap/utils": "workspace:^" + "@ocap/logger": "workspace:^" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/rpc-methods/src/RpcClient.ts b/packages/rpc-methods/src/RpcClient.ts index 7dbb9f665..9f8ee51fa 100644 --- a/packages/rpc-methods/src/RpcClient.ts +++ b/packages/rpc-methods/src/RpcClient.ts @@ -1,4 +1,6 @@ import { makePromiseKit } from '@endo/promise-kit'; +import { makeCounter, stringify } from '@metamask/kernel-utils'; +import type { PromiseCallbacks } from '@metamask/kernel-utils'; import { assert as assertStruct } from '@metamask/superstruct'; import { isJsonRpcFailure, isJsonRpcSuccess } from '@metamask/utils'; import type { @@ -7,8 +9,6 @@ import type { JsonRpcSuccess, } from '@metamask/utils'; import { Logger } from '@ocap/logger'; -import { makeCounter, stringify } from '@ocap/utils'; -import type { PromiseCallbacks } from '@ocap/utils'; import type { MethodSpec, diff --git a/packages/rpc-methods/tsconfig.build.json b/packages/rpc-methods/tsconfig.build.json index 565643766..dff0f908f 100644 --- a/packages/rpc-methods/tsconfig.build.json +++ b/packages/rpc-methods/tsconfig.build.json @@ -9,7 +9,7 @@ }, "references": [ { "path": "../logger/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" } + { "path": "../kernel-utils/tsconfig.build.json" } ], "files": [], "include": ["./src"] diff --git a/packages/rpc-methods/tsconfig.json b/packages/rpc-methods/tsconfig.json index 70af05fa6..0278fa827 100644 --- a/packages/rpc-methods/tsconfig.json +++ b/packages/rpc-methods/tsconfig.json @@ -8,7 +8,7 @@ "references": [ { "path": "../logger" }, { "path": "../test-utils" }, - { "path": "../utils" } + { "path": "../kernel-utils" } ], "include": [ "../../vitest.config.ts", diff --git a/packages/streams/package.json b/packages/streams/package.json index 5313ea6fc..f81210279 100644 --- a/packages/streams/package.json +++ b/packages/streams/package.json @@ -59,10 +59,10 @@ "dependencies": { "@endo/promise-kit": "^1.1.10", "@endo/stream": "^1.2.10", + "@metamask/kernel-utils": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", - "@ocap/errors": "workspace:^", - "@ocap/utils": "workspace:^" + "@ocap/errors": "workspace:^" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/streams/src/BaseDuplexStream.test.ts b/packages/streams/src/BaseDuplexStream.test.ts index 2cdd22dc3..f80bd938a 100644 --- a/packages/streams/src/BaseDuplexStream.test.ts +++ b/packages/streams/src/BaseDuplexStream.test.ts @@ -1,5 +1,5 @@ +import { delay, stringify } from '@metamask/kernel-utils'; import { makeErrorMatcherFactory } from '@ocap/test-utils'; -import { delay, stringify } from '@ocap/utils'; import { describe, expect, it, vi } from 'vitest'; import { BaseDuplexStream, makeAck, makeSyn } from './BaseDuplexStream.ts'; diff --git a/packages/streams/src/BaseDuplexStream.ts b/packages/streams/src/BaseDuplexStream.ts index f618843df..a935388a1 100644 --- a/packages/streams/src/BaseDuplexStream.ts +++ b/packages/streams/src/BaseDuplexStream.ts @@ -1,9 +1,9 @@ import type { PromiseKit } from '@endo/promise-kit'; import { makePromiseKit } from '@endo/promise-kit'; import type { Reader } from '@endo/stream'; +import { stringify } from '@metamask/kernel-utils'; import { is, literal, object } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; -import { stringify } from '@ocap/utils'; import type { BaseReader, BaseWriter, ValidateInput } from './BaseStream.ts'; import { makeDoneResult } from './utils.ts'; diff --git a/packages/streams/src/BaseStream.ts b/packages/streams/src/BaseStream.ts index 5b49bd62d..0e96c14fb 100644 --- a/packages/streams/src/BaseStream.ts +++ b/packages/streams/src/BaseStream.ts @@ -1,7 +1,7 @@ import { makePromiseKit } from '@endo/promise-kit'; import type { Reader, Writer } from '@endo/stream'; -import { stringify } from '@ocap/utils'; -import type { PromiseCallbacks } from '@ocap/utils'; +import { stringify } from '@metamask/kernel-utils'; +import type { PromiseCallbacks } from '@metamask/kernel-utils'; import type { Dispatchable, Writable } from './utils.ts'; import { diff --git a/packages/streams/src/browser/ChromeRuntimeStream.test.ts b/packages/streams/src/browser/ChromeRuntimeStream.test.ts index 9ffbd7a25..812352246 100644 --- a/packages/streams/src/browser/ChromeRuntimeStream.test.ts +++ b/packages/streams/src/browser/ChromeRuntimeStream.test.ts @@ -1,4 +1,4 @@ -import { delay, stringify } from '@ocap/utils'; +import { delay, stringify } from '@metamask/kernel-utils'; import { describe, expect, it, vi } from 'vitest'; import type { ChromeRuntime } from './chrome.d.ts'; diff --git a/packages/streams/src/browser/ChromeRuntimeStream.ts b/packages/streams/src/browser/ChromeRuntimeStream.ts index efe51e6f7..60b57bca9 100644 --- a/packages/streams/src/browser/ChromeRuntimeStream.ts +++ b/packages/streams/src/browser/ChromeRuntimeStream.ts @@ -14,8 +14,8 @@ * @module ChromeRuntime streams */ +import { stringify } from '@metamask/kernel-utils'; import type { Json } from '@metamask/utils'; -import { stringify } from '@ocap/utils'; import type { ChromeRuntime, ChromeMessageSender } from './chrome.d.ts'; import { diff --git a/packages/streams/src/browser/MessagePortStream.test.ts b/packages/streams/src/browser/MessagePortStream.test.ts index 5ded91ed3..f3667f517 100644 --- a/packages/streams/src/browser/MessagePortStream.test.ts +++ b/packages/streams/src/browser/MessagePortStream.test.ts @@ -1,4 +1,4 @@ -import { delay } from '@ocap/utils'; +import { delay } from '@metamask/kernel-utils'; import { describe, expect, it, vi } from 'vitest'; import { diff --git a/packages/streams/src/browser/PostMessageStream.test.ts b/packages/streams/src/browser/PostMessageStream.test.ts index 6ef82605c..349013103 100644 --- a/packages/streams/src/browser/PostMessageStream.test.ts +++ b/packages/streams/src/browser/PostMessageStream.test.ts @@ -1,4 +1,4 @@ -import { delay } from '@ocap/utils'; +import { delay } from '@metamask/kernel-utils'; import { describe, it, expect, vi } from 'vitest'; import { diff --git a/packages/streams/src/browser/message-channel.test.ts b/packages/streams/src/browser/message-channel.test.ts index 4e86bc109..7621bb006 100644 --- a/packages/streams/src/browser/message-channel.test.ts +++ b/packages/streams/src/browser/message-channel.test.ts @@ -1,4 +1,4 @@ -import { delay } from '@ocap/utils'; +import { delay } from '@metamask/kernel-utils'; import { vi, describe, diff --git a/packages/streams/src/browser/message-channel.ts b/packages/streams/src/browser/message-channel.ts index 8db0b027f..ea9c69aef 100644 --- a/packages/streams/src/browser/message-channel.ts +++ b/packages/streams/src/browser/message-channel.ts @@ -14,8 +14,8 @@ */ import { makePromiseKit } from '@endo/promise-kit'; +import { stringify } from '@metamask/kernel-utils'; import { isObject } from '@metamask/utils'; -import { stringify } from '@ocap/utils'; export const MessageType = { Initialize: 'INIT_MESSAGE_CHANNEL', diff --git a/packages/streams/src/node/NodeWorkerStream.test.ts b/packages/streams/src/node/NodeWorkerStream.test.ts index 61a2f87cb..3cc9e5a5e 100644 --- a/packages/streams/src/node/NodeWorkerStream.test.ts +++ b/packages/streams/src/node/NodeWorkerStream.test.ts @@ -1,4 +1,4 @@ -import { delay } from '@ocap/utils'; +import { delay } from '@metamask/kernel-utils'; import { describe, it, expect, vi } from 'vitest'; import type { Mocked } from 'vitest'; diff --git a/packages/streams/src/split.ts b/packages/streams/src/split.ts index 397cb495b..e2098425c 100644 --- a/packages/streams/src/split.ts +++ b/packages/streams/src/split.ts @@ -1,4 +1,4 @@ -import { stringify } from '@ocap/utils'; +import { stringify } from '@metamask/kernel-utils'; import type { DuplexStream } from './BaseDuplexStream.ts'; import { BaseReader } from './BaseStream.ts'; diff --git a/packages/streams/src/utils.test.ts b/packages/streams/src/utils.test.ts index 6de2cda2b..80b719e85 100644 --- a/packages/streams/src/utils.test.ts +++ b/packages/streams/src/utils.test.ts @@ -1,5 +1,5 @@ +import { stringify } from '@metamask/kernel-utils'; import { makeErrorMatcherFactory } from '@ocap/test-utils'; -import { stringify } from '@ocap/utils'; import { describe, expect, it } from 'vitest'; import type { Dispatchable, Writable } from './utils.ts'; diff --git a/packages/streams/src/utils.ts b/packages/streams/src/utils.ts index b023d0fab..4f82b3ecb 100644 --- a/packages/streams/src/utils.ts +++ b/packages/streams/src/utils.ts @@ -1,4 +1,5 @@ import type { Reader, Writer } from '@endo/stream'; +import { stringify } from '@metamask/kernel-utils'; import type { Infer } from '@metamask/superstruct'; import { is, literal } from '@metamask/superstruct'; import { @@ -8,7 +9,6 @@ import { UnsafeJsonStruct, } from '@metamask/utils'; import { isMarshaledError, marshalError, unmarshalError } from '@ocap/errors'; -import { stringify } from '@ocap/utils'; export type { Reader, Writer }; diff --git a/packages/streams/tsconfig.build.json b/packages/streams/tsconfig.build.json index 7f786ed3f..d9ac7f58a 100644 --- a/packages/streams/tsconfig.build.json +++ b/packages/streams/tsconfig.build.json @@ -8,7 +8,7 @@ "types": ["ses"] }, "references": [ - { "path": "../utils/tsconfig.build.json" }, + { "path": "../kernel-utils/tsconfig.build.json" }, { "path": "../errors/tsconfig.build.json" } ], "include": ["./src"] diff --git a/packages/streams/tsconfig.json b/packages/streams/tsconfig.json index 68c0de5fe..b1a842cf3 100644 --- a/packages/streams/tsconfig.json +++ b/packages/streams/tsconfig.json @@ -8,7 +8,7 @@ "references": [ { "path": "../errors" }, { "path": "../test-utils" }, - { "path": "../utils" } + { "path": "../kernel-utils" } ], "include": [ "../../vitest.config.ts", diff --git a/packages/test-utils/src/delay.ts b/packages/test-utils/src/delay.ts index a93c410b6..76f77ae1b 100644 --- a/packages/test-utils/src/delay.ts +++ b/packages/test-utils/src/delay.ts @@ -1,6 +1,6 @@ /** * Delay execution by the specified number of milliseconds. - * Re-implemented here to avoid importing `@ocap/utils`, which assumes SES. + * Re-implemented here to avoid importing `@metamask/kernel-utils`, which assumes SES. * * @param ms - The number of milliseconds to delay. * @returns A promise that resolves after the specified delay. diff --git a/packages/test-utils/src/env/mock-kernel.ts b/packages/test-utils/src/env/mock-kernel.ts index 2b453e64d..c90b46727 100644 --- a/packages/test-utils/src/env/mock-kernel.ts +++ b/packages/test-utils/src/env/mock-kernel.ts @@ -22,7 +22,7 @@ export const setupOcapKernelMock = (): { let isVatConfigMock = true; let isVatIdMock = true; // Mock implementation - vi.doMock('@ocap/kernel', () => { + vi.doMock('@metamask/ocap-kernel', () => { const VatIdStruct = define('VatId', () => isVatIdMock); const VatConfigStruct = define('VatConfig', () => isVatConfigMock); diff --git a/tsconfig.build.json b/tsconfig.build.json index fef2406cf..11538d1f2 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -5,12 +5,12 @@ { "path": "./packages/cli/tsconfig.build.json" }, { "path": "./packages/errors/tsconfig.build.json" }, { "path": "./packages/kernel-test/tsconfig.build.json" }, - { "path": "./packages/kernel/tsconfig.build.json" }, + { "path": "./packages/ocap-kernel/tsconfig.build.json" }, { "path": "./packages/logger/tsconfig.build.json" }, { "path": "./packages/nodejs/tsconfig.build.json" }, { "path": "./packages/rpc-methods/tsconfig.build.json" }, - { "path": "./packages/store/tsconfig.build.json" }, + { "path": "./packages/kernel-store/tsconfig.build.json" }, { "path": "./packages/streams/tsconfig.build.json" }, - { "path": "./packages/utils/tsconfig.build.json" } + { "path": "./packages/kernel-utils/tsconfig.build.json" } ] } diff --git a/tsconfig.json b/tsconfig.json index 56ee07635..53186ef31 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,15 +17,15 @@ { "path": "./packages/create-package" }, { "path": "./packages/errors" }, { "path": "./packages/extension" }, - { "path": "./packages/kernel" }, + { "path": "./packages/ocap-kernel" }, { "path": "./packages/kernel-test" }, { "path": "./packages/logger" }, { "path": "./packages/nodejs" }, { "path": "./packages/rpc-methods" }, { "path": "./packages/shims" }, - { "path": "./packages/store" }, + { "path": "./packages/kernel-store" }, { "path": "./packages/streams" }, { "path": "./packages/test-utils" }, - { "path": "./packages/utils" } + { "path": "./packages/kernel-utils" } ] } diff --git a/tsconfig.packages.json b/tsconfig.packages.json index 00a0cc3a5..a2cddfd7b 100644 --- a/tsconfig.packages.json +++ b/tsconfig.packages.json @@ -8,8 +8,13 @@ * uncompiled source code for packages that live in this repo. */ "paths": { - "@ocap/store/sqlite/nodejs": ["../store/src/sqlite/nodejs.ts"], - "@ocap/store/sqlite/wasm": ["../store/src/sqlite/wasm.ts"], + "@metamask/*": ["../*/src"], + "@metamask/kernel-store/sqlite/nodejs": [ + "../kernel-store/src/sqlite/nodejs.ts" + ], + "@metamask/kernel-store/sqlite/wasm": [ + "../kernel-store/src/sqlite/wasm.ts" + ], "@ocap/*": ["../*/src"] } } diff --git a/vitest.config.ts b/vitest.config.ts index 28d136486..648001bb3 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -88,7 +88,7 @@ export default defineConfig({ branches: 77.4, lines: 82.5, }, - 'packages/kernel/**': { + 'packages/ocap-kernel/**': { statements: 90.43, functions: 92.18, branches: 79.89, @@ -118,7 +118,7 @@ export default defineConfig({ branches: 0, lines: 0, }, - 'packages/store/**': { + 'packages/kernel-store/**': { statements: 92.44, functions: 91.17, branches: 84.78, @@ -130,7 +130,7 @@ export default defineConfig({ branches: 100, lines: 100, }, - 'packages/utils/**': { + 'packages/kernel-utils/**': { statements: 100, functions: 100, branches: 100, diff --git a/yarn.config.cjs b/yarn.config.cjs index 93b253683..f8b049ed3 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -73,7 +73,11 @@ module.exports = defineConfig({ if (!isPrivate) { // All non-root packages must have the same set of NPM keywords. - expectWorkspaceField(workspace, 'keywords', ['MetaMask', 'Ethereum']); + expectWorkspaceField(workspace, 'keywords', [ + 'MetaMask', + 'object capabilities', + 'ocap', + ]); // All non-root packages must have a homepage URL that includes its name. expectWorkspaceField( @@ -104,20 +108,15 @@ module.exports = defineConfig({ // Non-published packages should not have a license. workspace.unset('license'); } else { - // All published packages must be MIT else they must be private - expectWorkspaceField(workspace, 'license', 'MIT'); + // Published packages must have a license. + expectWorkspaceLicense(workspace); } if (!isPrivate) { - // The entrypoint for all published packages must be the same. + // The entrypoints for all published packages must be the same. expectWorkspaceField(workspace, 'module', './dist/index.mjs'); expectWorkspaceField(workspace, 'main', './dist/index.cjs'); - // The type definitions entrypoint for all publishable packages must be the same. - expectWorkspaceField( - workspace, - 'exports["."].types', - './dist/types/index.d.cts', - ); + expectWorkspaceField(workspace, 'types', './dist/index.d.cts'); // The exports for all published packages must be the same. // CommonJS @@ -153,9 +152,6 @@ module.exports = defineConfig({ 'yarn npm publish --tag preview', ); - // All published packages must not have a "prepack" script. - expectWorkspaceField(workspace, 'scripts.prepack', null); - // All non-root package must have valid "changelog:update" and // "changelog:validate" scripts. expectCorrectWorkspaceChangelogScripts(workspace); @@ -431,6 +427,28 @@ async function getWorkspaceFile(workspace, path) { return await readFile(getWorkspacePath(workspace, path), 'utf8'); } +/** + * Attempts to access the given file to know whether the file exists. + * + * @param {Workspace} workspace - The workspace. + * @param {string} path - The path to the file, relative to the workspace root. + * @returns {Promise} True if the file exists, false otherwise. + */ +async function workspaceFileExists(workspace, path) { + try { + await getWorkspaceFile(workspace, path); + } catch (error) { + // No hasProperty() in here. + // eslint-disable-next-line no-restricted-syntax + if ('code' in error && error.code === 'ENOENT') { + return false; + } + throw error; + } + + return true; +} + /** * Expect that the workspace has the given field, and that it is a non-null * value. If the field is not present, or is null, this will log an error, and @@ -484,6 +502,19 @@ function expectWorkspaceDescription(workspace) { } } +/** + * Expect that the workspace has a license file, and that the `license` field is + * set. + * + * @param {Workspace} workspace - The workspace to check. + */ +async function expectWorkspaceLicense(workspace) { + if (!(await workspaceFileExists(workspace, 'LICENSE'))) { + workspace.error('Could not find LICENSE file'); + } + expectWorkspaceField(workspace, 'license'); +} + /** * Expect that the workspace has "changelog:update" and "changelog:validate" * scripts, and that these package scripts call a common script by passing the diff --git a/yarn.lock b/yarn.lock index c04586809..af82a6476 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1955,6 +1955,90 @@ __metadata: languageName: node linkType: hard +"@metamask/kernel-store@workspace:^, @metamask/kernel-store@workspace:packages/kernel-store": + version: 0.0.0-use.local + resolution: "@metamask/kernel-store@workspace:packages/kernel-store" + dependencies: + "@arethetypeswrong/cli": "npm:^0.17.4" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@ocap/logger": "workspace:^" + "@ocap/test-utils": "workspace:^" + "@sqlite.org/sqlite-wasm": "npm:^3.49.1-build3" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@types/better-sqlite3": "npm:^7.6.12" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.1.39" + better-sqlite3: "npm:^11.9.1" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.12.0" + typedoc: "npm:^0.28.1" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + +"@metamask/kernel-utils@workspace:^, @metamask/kernel-utils@workspace:packages/kernel-utils": + version: 0.0.0-use.local + resolution: "@metamask/kernel-utils@workspace:packages/kernel-utils" + dependencies: + "@arethetypeswrong/cli": "npm:^0.17.4" + "@endo/captp": "npm:^4.4.5" + "@endo/promise-kit": "npm:^1.1.10" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/superstruct": "npm:^3.2.1" + "@metamask/utils": "npm:^11.4.0" + "@ocap/errors": "workspace:^" + "@ocap/test-utils": "workspace:^" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@types/setimmediate": "npm:^1.0.4" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.1.39" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + jsdom: "npm:^26.0.0" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.12.0" + setimmediate: "npm:^1.0.5" + typedoc: "npm:^0.28.1" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@metamask/key-tree@npm:^10.1.1": version: 10.1.1 resolution: "@metamask/key-tree@npm:10.1.1" @@ -1988,6 +2072,57 @@ __metadata: languageName: node linkType: hard +"@metamask/ocap-kernel@workspace:^, @metamask/ocap-kernel@workspace:packages/ocap-kernel": + version: 0.0.0-use.local + resolution: "@metamask/ocap-kernel@workspace:packages/ocap-kernel" + dependencies: + "@agoric/swingset-liveslots": "npm:0.10.3-u19.2" + "@endo/errors": "npm:^1.2.10" + "@endo/far": "npm:^1.1.11" + "@endo/import-bundle": "npm:^1.4.0" + "@endo/marshal": "npm:^1.6.4" + "@endo/pass-style": "npm:^1.5.0" + "@endo/promise-kit": "npm:^1.1.10" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-store": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@metamask/rpc-errors": "npm:^7.0.2" + "@metamask/superstruct": "npm:^3.2.1" + "@metamask/utils": "npm:^11.4.0" + "@ocap/cli": "workspace:^" + "@ocap/errors": "workspace:^" + "@ocap/logger": "workspace:^" + "@ocap/rpc-methods": "workspace:^" + "@ocap/streams": "workspace:^" + "@ocap/test-utils": "workspace:^" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@types/setimmediate": "npm:^1.0.4" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.1.39" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.12.0" + setimmediate: "npm:^1.0.5" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@metamask/permission-controller@npm:^11.0.6": version: 11.0.6 resolution: "@metamask/permission-controller@npm:11.0.6" @@ -2452,12 +2587,12 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-utils": "workspace:^" "@metamask/snaps-utils": "npm:^9.1.0" "@metamask/utils": "npm:^11.4.0" "@ocap/logger": "workspace:^" "@ocap/shims": "workspace:^" "@ocap/test-utils": "workspace:^" - "@ocap/utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@types/node": "npm:^22.13.1" @@ -2586,20 +2721,20 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/json-rpc-engine": "npm:^10.0.3" + "@metamask/kernel-store": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@metamask/ocap-kernel": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/snaps-utils": "npm:^9.1.0" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/errors": "workspace:^" - "@ocap/kernel": "workspace:^" "@ocap/logger": "workspace:^" "@ocap/rpc-methods": "workspace:^" "@ocap/shims": "workspace:^" - "@ocap/store": "workspace:^" "@ocap/streams": "workspace:^" "@ocap/test-utils": "workspace:^" - "@ocap/utils": "workspace:^" "@playwright/test": "npm:^1.51.1" "@testing-library/dom": "npm:^10.4.0" "@testing-library/jest-dom": "npm:^6.6.3" @@ -2659,14 +2794,14 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-store": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@metamask/ocap-kernel": "workspace:^" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/kernel": "workspace:^" "@ocap/nodejs": "workspace:^" "@ocap/shims": "workspace:^" - "@ocap/store": "workspace:^" "@ocap/streams": "workspace:^" - "@ocap/utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" @@ -2693,57 +2828,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/kernel@workspace:^, @ocap/kernel@workspace:packages/kernel": - version: 0.0.0-use.local - resolution: "@ocap/kernel@workspace:packages/kernel" - dependencies: - "@agoric/swingset-liveslots": "npm:0.10.3-u19.2" - "@endo/errors": "npm:^1.2.10" - "@endo/far": "npm:^1.1.11" - "@endo/import-bundle": "npm:^1.4.0" - "@endo/marshal": "npm:^1.6.4" - "@endo/pass-style": "npm:^1.5.0" - "@endo/promise-kit": "npm:^1.1.10" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/superstruct": "npm:^3.2.1" - "@metamask/utils": "npm:^11.4.0" - "@ocap/cli": "workspace:^" - "@ocap/errors": "workspace:^" - "@ocap/logger": "workspace:^" - "@ocap/rpc-methods": "workspace:^" - "@ocap/store": "workspace:^" - "@ocap/streams": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@ocap/utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@types/setimmediate": "npm:^1.0.4" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/eslint-plugin": "npm:^1.1.39" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" - setimmediate: "npm:^1.0.5" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@ocap/logger@workspace:^, @ocap/logger@workspace:packages/logger": version: 0.0.0-use.local resolution: "@ocap/logger@workspace:packages/logger" @@ -2846,15 +2930,15 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-store": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@metamask/ocap-kernel": "workspace:^" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/kernel": "workspace:^" "@ocap/logger": "workspace:^" "@ocap/shims": "workspace:^" - "@ocap/store": "workspace:^" "@ocap/streams": "workspace:^" "@ocap/test-utils": "workspace:^" - "@ocap/utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@types/node": "npm:^22.13.1" @@ -2893,12 +2977,12 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-utils": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/logger": "workspace:^" "@ocap/test-utils": "workspace:^" - "@ocap/utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" @@ -2960,46 +3044,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/store@workspace:^, @ocap/store@workspace:packages/store": - version: 0.0.0-use.local - resolution: "@ocap/store@workspace:packages/store" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@ocap/logger": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@sqlite.org/sqlite-wasm": "npm:^3.49.1-build3" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@types/better-sqlite3": "npm:^7.6.12" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/eslint-plugin": "npm:^1.1.39" - better-sqlite3: "npm:^11.9.1" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" - typedoc: "npm:^0.28.1" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@ocap/streams@workspace:^, @ocap/streams@workspace:packages/streams": version: 0.0.0-use.local resolution: "@ocap/streams@workspace:packages/streams" @@ -3011,12 +3055,12 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-utils": "workspace:^" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/errors": "workspace:^" "@ocap/test-utils": "workspace:^" - "@ocap/utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@types/chrome": "npm:^0.0.313" @@ -3078,50 +3122,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/utils@workspace:^, @ocap/utils@workspace:packages/utils": - version: 0.0.0-use.local - resolution: "@ocap/utils@workspace:packages/utils" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@endo/captp": "npm:^4.4.5" - "@endo/promise-kit": "npm:^1.1.10" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@metamask/superstruct": "npm:^3.2.1" - "@metamask/utils": "npm:^11.4.0" - "@ocap/errors": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@types/setimmediate": "npm:^1.0.4" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/eslint-plugin": "npm:^1.1.39" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - jsdom: "npm:^26.0.0" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" - setimmediate: "npm:^1.0.5" - typedoc: "npm:^0.28.1" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@parcel/watcher-android-arm64@npm:2.5.1": version: 2.5.1 resolution: "@parcel/watcher-android-arm64@npm:2.5.1" From 5719e8bbdc9ca1ff4fa1d33eb577ecdfa99428b9 Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Thu, 1 May 2025 16:20:11 -0700 Subject: [PATCH 2/6] refactor: @ocap/logger -> @metamask/logger --- package.json | 2 +- packages/cli/package.json | 2 +- packages/cli/src/app.ts | 2 +- packages/cli/src/commands/bundle.test.ts | 4 +- packages/cli/src/commands/bundle.ts | 2 +- packages/cli/src/commands/watch.test.ts | 2 +- packages/cli/src/commands/watch.ts | 2 +- packages/extension/package.json | 2 +- packages/extension/src/background.ts | 2 +- packages/extension/src/iframe.ts | 2 +- .../VatWorkerClient.test.ts | 2 +- .../src/kernel-integration/VatWorkerClient.ts | 2 +- .../VatWorkerServer.test.ts | 2 +- .../src/kernel-integration/VatWorkerServer.ts | 2 +- .../kernel-integration/iframe-vat-worker.ts | 2 +- .../src/kernel-integration/kernel-worker.ts | 2 +- .../middleware/logging.test.ts | 2 +- .../kernel-integration/middleware/logging.ts | 2 +- .../kernel-integration/ui-connections.test.ts | 2 +- .../src/kernel-integration/ui-connections.ts | 2 +- packages/extension/src/offscreen.ts | 2 +- packages/extension/src/ui/services/logger.ts | 2 +- packages/kernel-store/package.json | 2 +- packages/kernel-store/src/sqlite/nodejs.ts | 2 +- packages/kernel-store/src/sqlite/wasm.ts | 2 +- packages/logger/LICENSE | 18 ++++ packages/logger/README.md | 8 +- packages/logger/package.json | 26 ++++-- packages/logger/src/logger.ts | 3 + packages/nodejs/package.json | 2 +- .../nodejs/src/kernel/VatWorkerManager.ts | 2 +- packages/nodejs/src/vat/vat-worker.ts | 2 +- packages/ocap-kernel/package.json | 2 +- packages/ocap-kernel/src/Kernel.ts | 2 +- packages/ocap-kernel/src/VatHandle.test.ts | 2 +- packages/ocap-kernel/src/VatHandle.ts | 2 +- packages/ocap-kernel/src/VatSyscall.test.ts | 2 +- packages/ocap-kernel/src/VatSyscall.ts | 2 +- packages/rpc-methods/package.json | 4 +- packages/rpc-methods/src/RpcClient.test.ts | 2 +- packages/rpc-methods/src/RpcClient.ts | 2 +- vitest.config.ts | 6 +- yarn.lock | 86 +++++++++---------- 43 files changed, 130 insertions(+), 95 deletions(-) create mode 100644 packages/logger/LICENSE diff --git a/package.json b/package.json index ecd6d55ab..6b06774fe 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "vitest>@vitest/browser>webdriverio>@wdio/utils>edgedriver": false, "vitest>@vitest/browser>webdriverio>@wdio/utils>geckodriver": false, "vitest>@vitest/mocker>msw": false, - "@ocap/cli>@ocap/logger>@ocap/streams": true, + "@ocap/cli>@metamask/logger>@ocap/streams": true, "eslint-plugin-import-x>unrs-resolver": false } }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 449f467a1..8c85105b7 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -37,9 +37,9 @@ "@endo/init": "^1.1.6", "@endo/promise-kit": "^1.1.10", "@metamask/kernel-utils": "workspace:^", + "@metamask/logger": "workspace:^", "@metamask/snaps-utils": "^9.1.0", "@metamask/utils": "^11.4.0", - "@ocap/logger": "workspace:^", "@ocap/shims": "workspace:^", "@types/node": "^22.13.1", "chokidar": "^4.0.1", diff --git a/packages/cli/src/app.ts b/packages/cli/src/app.ts index 43979b4f6..17f7109a2 100755 --- a/packages/cli/src/app.ts +++ b/packages/cli/src/app.ts @@ -1,6 +1,6 @@ import '@endo/init'; -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; import path from 'node:path'; import yargs from 'yargs'; import { hideBin } from 'yargs/helpers'; diff --git a/packages/cli/src/commands/bundle.test.ts b/packages/cli/src/commands/bundle.test.ts index 6b2c996fc..0edf4009a 100644 --- a/packages/cli/src/commands/bundle.test.ts +++ b/packages/cli/src/commands/bundle.test.ts @@ -1,4 +1,4 @@ -import type { Logger } from '@ocap/logger'; +import type { Logger } from '@metamask/logger'; import { readFile, rm } from 'fs/promises'; import { basename } from 'path'; import { describe, it, expect, vi, beforeEach, afterAll } from 'vitest'; @@ -31,7 +31,7 @@ vi.mock('@endo/bundle-source', () => ({ vi.mock('@endo/init', () => ({})); -vi.mock('@ocap/logger', () => ({ +vi.mock('@metamask/logger', () => ({ Logger: mocks.Logger, })); diff --git a/packages/cli/src/commands/bundle.ts b/packages/cli/src/commands/bundle.ts index abb3a515f..7dc18ae3f 100644 --- a/packages/cli/src/commands/bundle.ts +++ b/packages/cli/src/commands/bundle.ts @@ -1,6 +1,6 @@ import '@endo/init'; import endoBundleSource from '@endo/bundle-source'; -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; import { glob } from 'glob'; import { writeFile } from 'node:fs/promises'; import { resolve, join } from 'node:path'; diff --git a/packages/cli/src/commands/watch.test.ts b/packages/cli/src/commands/watch.test.ts index 5004e8123..336d3367c 100644 --- a/packages/cli/src/commands/watch.test.ts +++ b/packages/cli/src/commands/watch.test.ts @@ -1,6 +1,6 @@ import '@ocap/shims/endoify'; -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; import { watch } from 'chokidar'; import type { FSWatcher } from 'chokidar'; import type { Stats } from 'fs'; diff --git a/packages/cli/src/commands/watch.ts b/packages/cli/src/commands/watch.ts index c6443dc01..7b2bb1f8f 100644 --- a/packages/cli/src/commands/watch.ts +++ b/packages/cli/src/commands/watch.ts @@ -1,5 +1,5 @@ import { makePromiseKit } from '@endo/promise-kit'; -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; import { watch } from 'chokidar'; import type { FSWatcher, MatchFunction } from 'chokidar'; import { unlink } from 'fs/promises'; diff --git a/packages/extension/package.json b/packages/extension/package.json index 768339266..21f227f15 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -46,13 +46,13 @@ "@metamask/json-rpc-engine": "^10.0.3", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", + "@metamask/logger": "workspace:^", "@metamask/ocap-kernel": "workspace:^", "@metamask/rpc-errors": "^7.0.2", "@metamask/snaps-utils": "^9.1.0", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", "@ocap/errors": "workspace:^", - "@ocap/logger": "workspace:^", "@ocap/rpc-methods": "workspace:^", "@ocap/shims": "workspace:^", "@ocap/streams": "workspace:^", diff --git a/packages/extension/src/background.ts b/packages/extension/src/background.ts index 4786dad23..40bd22021 100644 --- a/packages/extension/src/background.ts +++ b/packages/extension/src/background.ts @@ -1,9 +1,9 @@ import { delay } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import { kernelMethodSpecs } from '@metamask/ocap-kernel/rpc'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import { RpcClient } from '@ocap/rpc-methods'; import { ChromeRuntimeDuplexStream } from '@ocap/streams/browser'; diff --git a/packages/extension/src/iframe.ts b/packages/extension/src/iframe.ts index e467ea40c..4e17077b6 100644 --- a/packages/extension/src/iframe.ts +++ b/packages/extension/src/iframe.ts @@ -1,7 +1,7 @@ import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { isJsonRpcMessage } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import { VatSupervisor } from '@metamask/ocap-kernel'; -import { Logger } from '@ocap/logger'; import { MessagePortDuplexStream, receiveMessagePort, diff --git a/packages/extension/src/kernel-integration/VatWorkerClient.test.ts b/packages/extension/src/kernel-integration/VatWorkerClient.test.ts index 69ed472cc..ee95a1ffa 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.test.ts @@ -1,8 +1,8 @@ import { delay, stringify } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcResponse } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import { describe, it, expect, beforeEach, vi } from 'vitest'; diff --git a/packages/extension/src/kernel-integration/VatWorkerClient.ts b/packages/extension/src/kernel-integration/VatWorkerClient.ts index 484bc5a3c..943dd0964 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.ts @@ -1,10 +1,10 @@ import type { JsonRpcCall, JsonRpcMessage } from '@metamask/kernel-utils'; import { isJsonRpcMessage, stringify } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import type { VatWorkerManager, VatId, VatConfig } from '@metamask/ocap-kernel'; import { vatWorkerServiceMethodSpecs } from '@metamask/ocap-kernel/rpc'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcId, JsonRpcResponse } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import { RpcClient } from '@ocap/rpc-methods'; import type { DuplexStream } from '@ocap/streams'; import { diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts index 8c3ebd87d..f31f04c2d 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts @@ -1,9 +1,9 @@ import { delay } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import type { VatConfig, VatId } from '@metamask/ocap-kernel'; import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest } from '@metamask/utils'; import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; -import { Logger } from '@ocap/logger'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest'; diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.ts b/packages/extension/src/kernel-integration/VatWorkerServer.ts index 781dbba4c..b24a0d465 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.ts @@ -1,3 +1,4 @@ +import { Logger } from '@metamask/logger'; import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import type { VatWorkerServiceMethod } from '@metamask/ocap-kernel/rpc'; import { vatWorkerServiceMethodSpecs } from '@metamask/ocap-kernel/rpc'; @@ -10,7 +11,6 @@ import type { JsonRpcResponse, } from '@metamask/utils'; import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; -import { Logger } from '@ocap/logger'; import type { ExtractParams } from '@ocap/rpc-methods'; import { PostMessageDuplexStream } from '@ocap/streams/browser'; import type { diff --git a/packages/extension/src/kernel-integration/iframe-vat-worker.ts b/packages/extension/src/kernel-integration/iframe-vat-worker.ts index 038e8ce8d..20fcf6edd 100644 --- a/packages/extension/src/kernel-integration/iframe-vat-worker.ts +++ b/packages/extension/src/kernel-integration/iframe-vat-worker.ts @@ -1,6 +1,6 @@ +import { Logger } from '@metamask/logger'; import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import { createWindow } from '@metamask/snaps-utils'; -import { Logger } from '@ocap/logger'; import type { initializeMessageChannel } from '@ocap/streams/browser'; import type { VatWorker } from './VatWorkerServer.ts'; diff --git a/packages/extension/src/kernel-integration/kernel-worker.ts b/packages/extension/src/kernel-integration/kernel-worker.ts index de0afea99..835ab61be 100644 --- a/packages/extension/src/kernel-integration/kernel-worker.ts +++ b/packages/extension/src/kernel-integration/kernel-worker.ts @@ -2,10 +2,10 @@ import { JsonRpcEngine } from '@metamask/json-rpc-engine'; import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/wasm'; import { fetchValidatedJson, isJsonRpcCall } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import type { ClusterConfig } from '@metamask/ocap-kernel'; import { ClusterConfigStruct, Kernel } from '@metamask/ocap-kernel'; import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { MessagePortDuplexStream, diff --git a/packages/extension/src/kernel-integration/middleware/logging.test.ts b/packages/extension/src/kernel-integration/middleware/logging.test.ts index d6fe41432..0f5bc18c2 100644 --- a/packages/extension/src/kernel-integration/middleware/logging.test.ts +++ b/packages/extension/src/kernel-integration/middleware/logging.test.ts @@ -2,8 +2,8 @@ import { createAsyncMiddleware, JsonRpcEngine, } from '@metamask/json-rpc-engine'; +import { Logger } from '@metamask/logger'; import type { JsonRpcRequest, JsonRpcSuccess } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import { describe, it, expect, vi, beforeEach } from 'vitest'; import { makeLoggingMiddleware } from './logging.ts'; diff --git a/packages/extension/src/kernel-integration/middleware/logging.ts b/packages/extension/src/kernel-integration/middleware/logging.ts index d092d18a4..842ead757 100644 --- a/packages/extension/src/kernel-integration/middleware/logging.ts +++ b/packages/extension/src/kernel-integration/middleware/logging.ts @@ -1,7 +1,7 @@ import { createAsyncMiddleware } from '@metamask/json-rpc-engine'; import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine'; +import { Logger } from '@metamask/logger'; import type { Json, JsonRpcParams } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; export const makeLoggingMiddleware = ( logger: Logger, diff --git a/packages/extension/src/kernel-integration/ui-connections.test.ts b/packages/extension/src/kernel-integration/ui-connections.test.ts index b9e92eaa7..25f9086e3 100644 --- a/packages/extension/src/kernel-integration/ui-connections.test.ts +++ b/packages/extension/src/kernel-integration/ui-connections.test.ts @@ -1,6 +1,6 @@ import type { JsonRpcCall } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import type { JsonRpcResponse } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import type { PostMessageTarget } from '@ocap/streams/browser'; import { delay } from '@ocap/test-utils'; import { TestDuplexStream } from '@ocap/test-utils/streams'; diff --git a/packages/extension/src/kernel-integration/ui-connections.ts b/packages/extension/src/kernel-integration/ui-connections.ts index af24a1447..6d995649f 100644 --- a/packages/extension/src/kernel-integration/ui-connections.ts +++ b/packages/extension/src/kernel-integration/ui-connections.ts @@ -1,8 +1,8 @@ import { stringify } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; +import type { Logger } from '@metamask/logger'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import type { Logger } from '@ocap/logger'; import { PostMessageDuplexStream } from '@ocap/streams/browser'; import { nanoid } from 'nanoid'; diff --git a/packages/extension/src/offscreen.ts b/packages/extension/src/offscreen.ts index 33d9ac3d4..6f6101357 100644 --- a/packages/extension/src/offscreen.ts +++ b/packages/extension/src/offscreen.ts @@ -1,8 +1,8 @@ import { delay, isJsonRpcCall } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import type { DuplexStream } from '@ocap/streams'; import { initializeMessageChannel, diff --git a/packages/extension/src/ui/services/logger.ts b/packages/extension/src/ui/services/logger.ts index aca00502e..a8f932ae8 100644 --- a/packages/extension/src/ui/services/logger.ts +++ b/packages/extension/src/ui/services/logger.ts @@ -1,3 +1,3 @@ -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; export const logger = new Logger('kernel-panel'); diff --git a/packages/kernel-store/package.json b/packages/kernel-store/package.json index a27e6656b..8b4b1e742 100644 --- a/packages/kernel-store/package.json +++ b/packages/kernel-store/package.json @@ -76,7 +76,7 @@ "test:watch": "vitest --config vitest.config.ts" }, "dependencies": { - "@ocap/logger": "workspace:^", + "@metamask/logger": "workspace:^", "@sqlite.org/sqlite-wasm": "^3.49.1-build3", "better-sqlite3": "^11.9.1", "ses": "^1.12.0" diff --git a/packages/kernel-store/src/sqlite/nodejs.ts b/packages/kernel-store/src/sqlite/nodejs.ts index b7f7a95d0..456173913 100644 --- a/packages/kernel-store/src/sqlite/nodejs.ts +++ b/packages/kernel-store/src/sqlite/nodejs.ts @@ -1,4 +1,4 @@ -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; import type { Database } from 'better-sqlite3'; // eslint-disable-next-line @typescript-eslint/naming-convention import Sqlite from 'better-sqlite3'; diff --git a/packages/kernel-store/src/sqlite/wasm.ts b/packages/kernel-store/src/sqlite/wasm.ts index 1e2c7cb79..d407e417a 100644 --- a/packages/kernel-store/src/sqlite/wasm.ts +++ b/packages/kernel-store/src/sqlite/wasm.ts @@ -1,4 +1,4 @@ -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; import type { Database, PreparedStatement } from '@sqlite.org/sqlite-wasm'; import sqlite3InitModule from '@sqlite.org/sqlite-wasm'; diff --git a/packages/logger/LICENSE b/packages/logger/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/logger/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/logger/README.md b/packages/logger/README.md index 3fcf338ab..eb37ebcf1 100644 --- a/packages/logger/README.md +++ b/packages/logger/README.md @@ -1,14 +1,14 @@ -# `@ocap/logger` +# `@metamask/logger` -A lightweight logging package using ocap streams +A lightweight logging package using `@metamask/streams`. ## Installation -`yarn add @ocap/logger` +`yarn add @metamask/logger` or -`npm install @ocap/logger` +`npm install @metamask/logger` ## Contributing diff --git a/packages/logger/package.json b/packages/logger/package.json index d3a96962c..f6cd9edb9 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -1,8 +1,12 @@ { - "name": "@ocap/logger", + "name": "@metamask/logger", "version": "0.0.0", - "private": true, - "description": "A lightweight logging package using ocap streams", + "description": "A lightweight logging package using @metamask/streams", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/logger#readme", "bugs": { "url": "https://github.com/MetaMask/ocap-kernel/issues" @@ -11,6 +15,8 @@ "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", + "sideEffects": false, "type": "module", "exports": { ".": { @@ -25,13 +31,17 @@ }, "./package.json": "./package.json" }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", "files": [ "dist/" ], "scripts": { "build": "ts-bridge --project tsconfig.build.json --clean", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/logger", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/logger", + "changelog:update": "../../scripts/update-changelog.sh @metamask/logger", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -45,6 +55,9 @@ "test:verbose": "yarn test --reporter verbose", "test:watch": "vitest --config vitest.config.ts" }, + "dependencies": { + "@ocap/streams": "workspace:^" + }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", "@metamask/auto-changelog": "^5.0.1", @@ -79,7 +92,8 @@ "engines": { "node": "^20 || >=22" }, - "dependencies": { - "@ocap/streams": "workspace:^" + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/packages/logger/src/logger.ts b/packages/logger/src/logger.ts index a53f45886..cf5af88ff 100644 --- a/packages/logger/src/logger.ts +++ b/packages/logger/src/logger.ts @@ -57,6 +57,9 @@ import type { LogArgs, } from './types.ts'; +// We make use of harden() if it exists, but we don't want to fail if it doesn't. +const harden = globalThis.harden ?? ((value: unknown) => value); + /** * The logger class. */ diff --git a/packages/nodejs/package.json b/packages/nodejs/package.json index 0d2958f2b..c0b18124a 100644 --- a/packages/nodejs/package.json +++ b/packages/nodejs/package.json @@ -41,9 +41,9 @@ "@endo/promise-kit": "^1.1.10", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", + "@metamask/logger": "workspace:^", "@metamask/ocap-kernel": "workspace:^", "@metamask/utils": "^11.4.0", - "@ocap/logger": "workspace:^", "@ocap/shims": "workspace:^", "@ocap/streams": "workspace:^", "ses": "^1.12.0" diff --git a/packages/nodejs/src/kernel/VatWorkerManager.ts b/packages/nodejs/src/kernel/VatWorkerManager.ts index 2f0f2a369..e4725fd53 100644 --- a/packages/nodejs/src/kernel/VatWorkerManager.ts +++ b/packages/nodejs/src/kernel/VatWorkerManager.ts @@ -1,8 +1,8 @@ import { makePromiseKit } from '@endo/promise-kit'; import { isJsonRpcMessage } from '@metamask/kernel-utils'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import type { VatWorkerManager, VatId } from '@metamask/ocap-kernel'; -import { Logger } from '@ocap/logger'; import { NodeWorkerDuplexStream } from '@ocap/streams'; import type { DuplexStream } from '@ocap/streams'; import { Worker as NodeWorker } from 'node:worker_threads'; diff --git a/packages/nodejs/src/vat/vat-worker.ts b/packages/nodejs/src/vat/vat-worker.ts index 8c2762d75..aac7cab3f 100644 --- a/packages/nodejs/src/vat/vat-worker.ts +++ b/packages/nodejs/src/vat/vat-worker.ts @@ -1,8 +1,8 @@ import '@ocap/shims/endoify'; +import { Logger } from '@metamask/logger'; import type { VatId } from '@metamask/ocap-kernel'; import { VatSupervisor } from '@metamask/ocap-kernel'; -import { Logger } from '@ocap/logger'; import fs from 'node:fs/promises'; import url from 'node:url'; diff --git a/packages/ocap-kernel/package.json b/packages/ocap-kernel/package.json index 3ac52fe64..92cb6f8eb 100644 --- a/packages/ocap-kernel/package.json +++ b/packages/ocap-kernel/package.json @@ -75,11 +75,11 @@ "@endo/promise-kit": "^1.1.10", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", + "@metamask/logger": "workspace:^", "@metamask/rpc-errors": "^7.0.2", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", "@ocap/errors": "workspace:^", - "@ocap/logger": "workspace:^", "@ocap/rpc-methods": "workspace:^", "@ocap/streams": "workspace:^", "ses": "^1.12.0", diff --git a/packages/ocap-kernel/src/Kernel.ts b/packages/ocap-kernel/src/Kernel.ts index 5272ff749..22687657c 100644 --- a/packages/ocap-kernel/src/Kernel.ts +++ b/packages/ocap-kernel/src/Kernel.ts @@ -1,6 +1,7 @@ import type { CapData } from '@endo/marshal'; import type { KernelDatabase } from '@metamask/kernel-store'; import type { JsonRpcCall } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import { serializeError } from '@metamask/rpc-errors'; import { hasProperty } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; @@ -9,7 +10,6 @@ import { VatAlreadyExistsError, VatNotFoundError, } from '@ocap/errors'; -import { Logger } from '@ocap/logger'; import { RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; import type { DuplexStream } from '@ocap/streams'; diff --git a/packages/ocap-kernel/src/VatHandle.test.ts b/packages/ocap-kernel/src/VatHandle.test.ts index ce3533078..ec4091ffa 100644 --- a/packages/ocap-kernel/src/VatHandle.test.ts +++ b/packages/ocap-kernel/src/VatHandle.test.ts @@ -1,7 +1,7 @@ import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { isJsonRpcMessage } from '@metamask/kernel-utils'; +import type { Logger } from '@metamask/logger'; import type { Json } from '@metamask/utils'; -import type { Logger } from '@ocap/logger'; import { delay } from '@ocap/test-utils'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import { describe, it, expect, vi, beforeEach } from 'vitest'; diff --git a/packages/ocap-kernel/src/VatHandle.ts b/packages/ocap-kernel/src/VatHandle.ts index 71a16a1d2..e5a4069bf 100644 --- a/packages/ocap-kernel/src/VatHandle.ts +++ b/packages/ocap-kernel/src/VatHandle.ts @@ -4,10 +4,10 @@ import type { } from '@agoric/swingset-liveslots'; import type { VatStore, VatCheckpoint } from '@metamask/kernel-store'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import { serializeError } from '@metamask/rpc-errors'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import { VatDeletedError, StreamReadError } from '@ocap/errors'; -import { Logger } from '@ocap/logger'; import { RpcClient, RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; import type { DuplexStream } from '@ocap/streams'; diff --git a/packages/ocap-kernel/src/VatSyscall.test.ts b/packages/ocap-kernel/src/VatSyscall.test.ts index 2392a62ef..652dc3a5d 100644 --- a/packages/ocap-kernel/src/VatSyscall.test.ts +++ b/packages/ocap-kernel/src/VatSyscall.test.ts @@ -3,7 +3,7 @@ import type { VatOneResolution, VatSyscallObject, } from '@agoric/swingset-liveslots'; -import type { Logger } from '@ocap/logger'; +import type { Logger } from '@metamask/logger'; import type { MockInstance } from 'vitest'; import { describe, it, expect, vi, beforeEach } from 'vitest'; diff --git a/packages/ocap-kernel/src/VatSyscall.ts b/packages/ocap-kernel/src/VatSyscall.ts index 646a46490..c8a4bf407 100644 --- a/packages/ocap-kernel/src/VatSyscall.ts +++ b/packages/ocap-kernel/src/VatSyscall.ts @@ -2,7 +2,7 @@ import type { VatOneResolution, VatSyscallObject, } from '@agoric/swingset-liveslots'; -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; import type { KernelQueue } from './KernelQueue.ts'; import type { KernelStore } from './store/index.ts'; diff --git a/packages/rpc-methods/package.json b/packages/rpc-methods/package.json index 5976d7fb4..7f250826e 100644 --- a/packages/rpc-methods/package.json +++ b/packages/rpc-methods/package.json @@ -48,10 +48,10 @@ "dependencies": { "@endo/promise-kit": "^1.1.10", "@metamask/kernel-utils": "workspace:^", + "@metamask/logger": "workspace:^", "@metamask/rpc-errors": "^7.0.2", "@metamask/superstruct": "^3.2.1", - "@metamask/utils": "^11.4.0", - "@ocap/logger": "workspace:^" + "@metamask/utils": "^11.4.0" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/rpc-methods/src/RpcClient.test.ts b/packages/rpc-methods/src/RpcClient.test.ts index a3d40cd21..c60cd8085 100644 --- a/packages/rpc-methods/src/RpcClient.test.ts +++ b/packages/rpc-methods/src/RpcClient.test.ts @@ -1,5 +1,5 @@ +import type { Logger } from '@metamask/logger'; import { jsonrpc2 } from '@metamask/utils'; -import type { Logger } from '@ocap/logger'; import { describe, it, vi, expect } from 'vitest'; import { RpcClient } from './RpcClient.ts'; diff --git a/packages/rpc-methods/src/RpcClient.ts b/packages/rpc-methods/src/RpcClient.ts index 9f8ee51fa..b82a32cde 100644 --- a/packages/rpc-methods/src/RpcClient.ts +++ b/packages/rpc-methods/src/RpcClient.ts @@ -1,6 +1,7 @@ import { makePromiseKit } from '@endo/promise-kit'; import { makeCounter, stringify } from '@metamask/kernel-utils'; import type { PromiseCallbacks } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; import { assert as assertStruct } from '@metamask/superstruct'; import { isJsonRpcFailure, isJsonRpcSuccess } from '@metamask/utils'; import type { @@ -8,7 +9,6 @@ import type { JsonRpcRequest, JsonRpcSuccess, } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; import type { MethodSpec, diff --git a/vitest.config.ts b/vitest.config.ts index 648001bb3..cd3a3dae7 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -95,9 +95,9 @@ export default defineConfig({ lines: 90.41, }, 'packages/logger/**': { - statements: 100, - functions: 100, - branches: 100, + statements: 97.29, + functions: 92.3, + branches: 95.45, lines: 100, }, 'packages/nodejs/**': { diff --git a/yarn.lock b/yarn.lock index af82a6476..28b181fe1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1964,7 +1964,7 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@ocap/logger": "workspace:^" + "@metamask/logger": "workspace:^" "@ocap/test-utils": "workspace:^" "@sqlite.org/sqlite-wasm": "npm:^3.49.1-build3" "@ts-bridge/cli": "npm:^0.6.3" @@ -2052,6 +2052,43 @@ __metadata: languageName: node linkType: hard +"@metamask/logger@workspace:^, @metamask/logger@workspace:packages/logger": + version: 0.0.0-use.local + resolution: "@metamask/logger@workspace:packages/logger" + dependencies: + "@arethetypeswrong/cli": "npm:^0.17.4" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@ocap/streams": "workspace:^" + "@ocap/test-utils": "workspace:^" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.1.39" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.12.0" + typedoc: "npm:^0.28.1" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@metamask/number-to-bn@npm:^1.7.1": version: 1.7.1 resolution: "@metamask/number-to-bn@npm:1.7.1" @@ -2089,12 +2126,12 @@ __metadata: "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/errors": "workspace:^" - "@ocap/logger": "workspace:^" "@ocap/rpc-methods": "workspace:^" "@ocap/streams": "workspace:^" "@ocap/test-utils": "workspace:^" @@ -2588,9 +2625,9 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" "@metamask/snaps-utils": "npm:^9.1.0" "@metamask/utils": "npm:^11.4.0" - "@ocap/logger": "workspace:^" "@ocap/shims": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" @@ -2723,6 +2760,7 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.0.3" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" "@metamask/ocap-kernel": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/snaps-utils": "npm:^9.1.0" @@ -2730,7 +2768,6 @@ __metadata: "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/errors": "workspace:^" - "@ocap/logger": "workspace:^" "@ocap/rpc-methods": "workspace:^" "@ocap/shims": "workspace:^" "@ocap/streams": "workspace:^" @@ -2828,43 +2865,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/logger@workspace:^, @ocap/logger@workspace:packages/logger": - version: 0.0.0-use.local - resolution: "@ocap/logger@workspace:packages/logger" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@ocap/streams": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/eslint-plugin": "npm:^1.1.39" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" - typedoc: "npm:^0.28.1" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@ocap/monorepo@workspace:.": version: 0.0.0-use.local resolution: "@ocap/monorepo@workspace:." @@ -2932,10 +2932,10 @@ __metadata: "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" "@metamask/ocap-kernel": "workspace:^" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/logger": "workspace:^" "@ocap/shims": "workspace:^" "@ocap/streams": "workspace:^" "@ocap/test-utils": "workspace:^" @@ -2978,10 +2978,10 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" - "@ocap/logger": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" From 0a1c3061b2db3a2f4636160a290caf50a5d1d26a Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Fri, 2 May 2025 12:35:29 -0700 Subject: [PATCH 3/6] @ocap/streams -> @metamask/streams --- package.json | 2 +- packages/extension/package.json | 2 +- packages/extension/src/background.ts | 2 +- packages/extension/src/iframe.ts | 2 +- .../VatWorkerClient.test.ts | 6 +- .../src/kernel-integration/VatWorkerClient.ts | 12 +- .../VatWorkerServer.test.ts | 2 +- .../src/kernel-integration/VatWorkerServer.ts | 10 +- .../kernel-integration/iframe-vat-worker.ts | 2 +- .../src/kernel-integration/kernel-worker.ts | 6 +- .../kernel-integration/ui-connections.test.ts | 4 +- .../src/kernel-integration/ui-connections.ts | 2 +- packages/extension/src/offscreen.ts | 10 +- packages/kernel-test/package.json | 4 +- packages/kernel-test/src/utils.ts | 2 +- packages/logger/package.json | 2 +- packages/logger/src/transports.test.ts | 2 +- packages/logger/src/transports.ts | 2 +- packages/nodejs/package.json | 2 +- .../src/kernel/VatWorkerManager.test.ts | 2 +- .../nodejs/src/kernel/VatWorkerManager.ts | 4 +- packages/nodejs/src/kernel/make-kernel.ts | 2 +- packages/nodejs/src/vat/streams.test.ts | 4 +- packages/nodejs/src/vat/streams.ts | 2 +- .../nodejs/test/e2e/VatWorkerManager.test.ts | 4 +- packages/ocap-kernel/package.json | 2 +- packages/ocap-kernel/src/Kernel.test.ts | 2 +- packages/ocap-kernel/src/Kernel.ts | 2 +- packages/ocap-kernel/src/VatHandle.ts | 2 +- packages/ocap-kernel/src/VatSupervisor.ts | 2 +- packages/ocap-kernel/src/types.ts | 2 +- packages/streams/LICENSE | 18 +++ packages/streams/README.md | 10 +- packages/streams/package.json | 22 +++- yarn.lock | 104 +++++++++--------- 35 files changed, 150 insertions(+), 110 deletions(-) create mode 100644 packages/streams/LICENSE diff --git a/package.json b/package.json index 6b06774fe..38dd30ce5 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "vitest>@vitest/browser>webdriverio>@wdio/utils>edgedriver": false, "vitest>@vitest/browser>webdriverio>@wdio/utils>geckodriver": false, "vitest>@vitest/mocker>msw": false, - "@ocap/cli>@metamask/logger>@ocap/streams": true, + "@ocap/cli>@metamask/logger>@metamask/streams": true, "eslint-plugin-import-x>unrs-resolver": false } }, diff --git a/packages/extension/package.json b/packages/extension/package.json index 21f227f15..d76b3ecf7 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -50,12 +50,12 @@ "@metamask/ocap-kernel": "workspace:^", "@metamask/rpc-errors": "^7.0.2", "@metamask/snaps-utils": "^9.1.0", + "@metamask/streams": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", "@ocap/errors": "workspace:^", "@ocap/rpc-methods": "workspace:^", "@ocap/shims": "workspace:^", - "@ocap/streams": "workspace:^", "nanoid": "^5.1.5", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/packages/extension/src/background.ts b/packages/extension/src/background.ts index 40bd22021..65c16b6cf 100644 --- a/packages/extension/src/background.ts +++ b/packages/extension/src/background.ts @@ -2,10 +2,10 @@ import { delay } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import { kernelMethodSpecs } from '@metamask/ocap-kernel/rpc'; +import { ChromeRuntimeDuplexStream } from '@metamask/streams/browser'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; import { RpcClient } from '@ocap/rpc-methods'; -import { ChromeRuntimeDuplexStream } from '@ocap/streams/browser'; const OFFSCREEN_DOCUMENT_PATH = '/offscreen.html'; diff --git a/packages/extension/src/iframe.ts b/packages/extension/src/iframe.ts index 4e17077b6..a204057fe 100644 --- a/packages/extension/src/iframe.ts +++ b/packages/extension/src/iframe.ts @@ -5,7 +5,7 @@ import { VatSupervisor } from '@metamask/ocap-kernel'; import { MessagePortDuplexStream, receiveMessagePort, -} from '@ocap/streams/browser'; +} from '@metamask/streams/browser'; const logger = new Logger('iframe'); diff --git a/packages/extension/src/kernel-integration/VatWorkerClient.test.ts b/packages/extension/src/kernel-integration/VatWorkerClient.test.ts index ee95a1ffa..914224819 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.test.ts @@ -2,15 +2,15 @@ import { delay, stringify } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import { rpcErrors } from '@metamask/rpc-errors'; +import type { PostMessageTarget } from '@metamask/streams/browser'; import type { JsonRpcResponse } from '@metamask/utils'; -import type { PostMessageTarget } from '@ocap/streams/browser'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import { describe, it, expect, beforeEach, vi } from 'vitest'; import type { VatWorkerClientStream } from './VatWorkerClient.ts'; import { ExtensionVatWorkerClient } from './VatWorkerClient.ts'; -vi.mock('@ocap/streams/browser', async (importOriginal) => { +vi.mock('@metamask/streams/browser', async (importOriginal) => { // eslint-disable-next-line @typescript-eslint/no-shadow const { TestDuplexStream } = await import('@ocap/test-utils/streams'); @@ -122,7 +122,7 @@ describe('ExtensionVatWorkerClient', () => { await delay(10); await stream.receiveInput(makeLaunchReply('m1')); - // @ocap/streams is mocked + // @metamask/streams is mocked expect(await result).toBeInstanceOf(TestDuplexStream); }); diff --git a/packages/extension/src/kernel-integration/VatWorkerClient.ts b/packages/extension/src/kernel-integration/VatWorkerClient.ts index 943dd0964..330e05d25 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.ts @@ -3,18 +3,18 @@ import { isJsonRpcMessage, stringify } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import type { VatWorkerManager, VatId, VatConfig } from '@metamask/ocap-kernel'; import { vatWorkerServiceMethodSpecs } from '@metamask/ocap-kernel/rpc'; -import { isJsonRpcResponse } from '@metamask/utils'; -import type { JsonRpcId, JsonRpcResponse } from '@metamask/utils'; -import { RpcClient } from '@ocap/rpc-methods'; -import type { DuplexStream } from '@ocap/streams'; +import type { DuplexStream } from '@metamask/streams'; import { MessagePortDuplexStream, PostMessageDuplexStream, -} from '@ocap/streams/browser'; +} from '@metamask/streams/browser'; import type { PostMessageEnvelope, PostMessageTarget, -} from '@ocap/streams/browser'; +} from '@metamask/streams/browser'; +import { isJsonRpcResponse } from '@metamask/utils'; +import type { JsonRpcId, JsonRpcResponse } from '@metamask/utils'; +import { RpcClient } from '@ocap/rpc-methods'; // Appears in the docs. // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts index f31f04c2d..6ef79a9d9 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts @@ -2,9 +2,9 @@ import { delay } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import type { VatConfig, VatId } from '@metamask/ocap-kernel'; import { rpcErrors } from '@metamask/rpc-errors'; +import type { PostMessageTarget } from '@metamask/streams/browser'; import type { JsonRpcRequest } from '@metamask/utils'; import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; -import type { PostMessageTarget } from '@ocap/streams/browser'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest'; import type { Mock } from 'vitest'; diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.ts b/packages/extension/src/kernel-integration/VatWorkerServer.ts index b24a0d465..2dc433dc9 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.ts @@ -3,6 +3,11 @@ import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import type { VatWorkerServiceMethod } from '@metamask/ocap-kernel/rpc'; import { vatWorkerServiceMethodSpecs } from '@metamask/ocap-kernel/rpc'; import { rpcErrors, serializeError } from '@metamask/rpc-errors'; +import { PostMessageDuplexStream } from '@metamask/streams/browser'; +import type { + PostMessageEnvelope, + PostMessageTarget, +} from '@metamask/streams/browser'; import { hasProperty, isJsonRpcRequest } from '@metamask/utils'; import type { JsonRpcId, @@ -12,11 +17,6 @@ import type { } from '@metamask/utils'; import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; import type { ExtractParams } from '@ocap/rpc-methods'; -import { PostMessageDuplexStream } from '@ocap/streams/browser'; -import type { - PostMessageEnvelope, - PostMessageTarget, -} from '@ocap/streams/browser'; // Appears in the docs. // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/extension/src/kernel-integration/iframe-vat-worker.ts b/packages/extension/src/kernel-integration/iframe-vat-worker.ts index 20fcf6edd..dad197140 100644 --- a/packages/extension/src/kernel-integration/iframe-vat-worker.ts +++ b/packages/extension/src/kernel-integration/iframe-vat-worker.ts @@ -1,7 +1,7 @@ import { Logger } from '@metamask/logger'; import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import { createWindow } from '@metamask/snaps-utils'; -import type { initializeMessageChannel } from '@ocap/streams/browser'; +import type { initializeMessageChannel } from '@metamask/streams/browser'; import type { VatWorker } from './VatWorkerServer.ts'; diff --git a/packages/extension/src/kernel-integration/kernel-worker.ts b/packages/extension/src/kernel-integration/kernel-worker.ts index 835ab61be..99e1ae9b5 100644 --- a/packages/extension/src/kernel-integration/kernel-worker.ts +++ b/packages/extension/src/kernel-integration/kernel-worker.ts @@ -5,12 +5,12 @@ import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import type { ClusterConfig } from '@metamask/ocap-kernel'; import { ClusterConfigStruct, Kernel } from '@metamask/ocap-kernel'; -import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; -import type { PostMessageTarget } from '@ocap/streams/browser'; +import type { PostMessageTarget } from '@metamask/streams/browser'; import { MessagePortDuplexStream, receiveMessagePort, -} from '@ocap/streams/browser'; +} from '@metamask/streams/browser'; +import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; import { makeLoggingMiddleware } from './middleware/logging.ts'; import { createPanelMessageMiddleware } from './middleware/panel-message.ts'; diff --git a/packages/extension/src/kernel-integration/ui-connections.test.ts b/packages/extension/src/kernel-integration/ui-connections.test.ts index 25f9086e3..15238a318 100644 --- a/packages/extension/src/kernel-integration/ui-connections.test.ts +++ b/packages/extension/src/kernel-integration/ui-connections.test.ts @@ -1,7 +1,7 @@ import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; +import type { PostMessageTarget } from '@metamask/streams/browser'; import type { JsonRpcResponse } from '@metamask/utils'; -import type { PostMessageTarget } from '@ocap/streams/browser'; import { delay } from '@ocap/test-utils'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import { describe, it, expect, vi, beforeEach } from 'vitest'; @@ -17,7 +17,7 @@ vi.mock('nanoid', () => ({ nanoid: vi.fn(() => 'test-id'), })); -vi.mock('@ocap/streams/browser', async () => { +vi.mock('@metamask/streams/browser', async () => { // eslint-disable-next-line @typescript-eslint/no-shadow const { TestDuplexStream } = await import('@ocap/test-utils/streams'); diff --git a/packages/extension/src/kernel-integration/ui-connections.ts b/packages/extension/src/kernel-integration/ui-connections.ts index 6d995649f..96889866b 100644 --- a/packages/extension/src/kernel-integration/ui-connections.ts +++ b/packages/extension/src/kernel-integration/ui-connections.ts @@ -1,9 +1,9 @@ import { stringify } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; import type { Logger } from '@metamask/logger'; +import { PostMessageDuplexStream } from '@metamask/streams/browser'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import { PostMessageDuplexStream } from '@ocap/streams/browser'; import { nanoid } from 'nanoid'; import { isUiControlCommand } from './ui-control-command.ts'; diff --git a/packages/extension/src/offscreen.ts b/packages/extension/src/offscreen.ts index 6f6101357..8847fc336 100644 --- a/packages/extension/src/offscreen.ts +++ b/packages/extension/src/offscreen.ts @@ -1,15 +1,15 @@ import { delay, isJsonRpcCall } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; -import { isJsonRpcResponse } from '@metamask/utils'; -import type { JsonRpcResponse } from '@metamask/utils'; -import type { DuplexStream } from '@ocap/streams'; +import type { DuplexStream } from '@metamask/streams'; import { initializeMessageChannel, ChromeRuntimeDuplexStream, MessagePortDuplexStream, -} from '@ocap/streams/browser'; -import type { PostMessageTarget } from '@ocap/streams/browser'; +} from '@metamask/streams/browser'; +import type { PostMessageTarget } from '@metamask/streams/browser'; +import type { JsonRpcResponse } from '@metamask/utils'; +import { isJsonRpcResponse } from '@metamask/utils'; import { makeIframeVatWorker } from './kernel-integration/iframe-vat-worker.ts'; import { ExtensionVatWorkerService } from './kernel-integration/VatWorkerServer.ts'; diff --git a/packages/kernel-test/package.json b/packages/kernel-test/package.json index ed610fdd5..6d2909edd 100644 --- a/packages/kernel-test/package.json +++ b/packages/kernel-test/package.json @@ -56,10 +56,10 @@ "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/ocap-kernel": "workspace:^", + "@metamask/streams": "workspace:^", "@metamask/utils": "^11.4.0", "@ocap/nodejs": "workspace:^", - "@ocap/shims": "workspace:^", - "@ocap/streams": "workspace:^" + "@ocap/shims": "workspace:^" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/kernel-test/src/utils.ts b/packages/kernel-test/src/utils.ts index 4d4dec884..5dda1ebbe 100644 --- a/packages/kernel-test/src/utils.ts +++ b/packages/kernel-test/src/utils.ts @@ -5,9 +5,9 @@ import type { KernelDatabase } from '@metamask/kernel-store'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; import { Kernel, kunser } from '@metamask/ocap-kernel'; import type { ClusterConfig } from '@metamask/ocap-kernel'; +import { NodeWorkerDuplexStream } from '@metamask/streams'; import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; import { NodejsVatWorkerManager } from '@ocap/nodejs'; -import { NodeWorkerDuplexStream } from '@ocap/streams'; import { MessagePort as NodeMessagePort, MessageChannel as NodeMessageChannel, diff --git a/packages/logger/package.json b/packages/logger/package.json index f6cd9edb9..ef20c49d6 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -56,7 +56,7 @@ "test:watch": "vitest --config vitest.config.ts" }, "dependencies": { - "@ocap/streams": "workspace:^" + "@metamask/streams": "workspace:^" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/logger/src/transports.test.ts b/packages/logger/src/transports.test.ts index 7aa255374..414743205 100644 --- a/packages/logger/src/transports.test.ts +++ b/packages/logger/src/transports.test.ts @@ -1,4 +1,4 @@ -import type { DuplexStream } from '@ocap/streams'; +import type { DuplexStream } from '@metamask/streams'; import { describe, expect, it, vi } from 'vitest'; import { logLevels } from './constants.ts'; diff --git a/packages/logger/src/transports.ts b/packages/logger/src/transports.ts index 3dff4d8f6..e04d68eb8 100644 --- a/packages/logger/src/transports.ts +++ b/packages/logger/src/transports.ts @@ -1,4 +1,4 @@ -import type { DuplexStream } from '@ocap/streams'; +import type { DuplexStream } from '@metamask/streams'; import type { Transport, LogEntry } from './types.ts'; diff --git a/packages/nodejs/package.json b/packages/nodejs/package.json index c0b18124a..f9bf3594d 100644 --- a/packages/nodejs/package.json +++ b/packages/nodejs/package.json @@ -43,9 +43,9 @@ "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", "@metamask/ocap-kernel": "workspace:^", + "@metamask/streams": "workspace:^", "@metamask/utils": "^11.4.0", "@ocap/shims": "workspace:^", - "@ocap/streams": "workspace:^", "ses": "^1.12.0" }, "devDependencies": { diff --git a/packages/nodejs/src/kernel/VatWorkerManager.test.ts b/packages/nodejs/src/kernel/VatWorkerManager.test.ts index a53ff7ac7..ec782ebde 100644 --- a/packages/nodejs/src/kernel/VatWorkerManager.test.ts +++ b/packages/nodejs/src/kernel/VatWorkerManager.test.ts @@ -19,7 +19,7 @@ const mocks = vi.hoisted(() => ({ }, })); -vi.mock('@ocap/streams', () => ({ +vi.mock('@metamask/streams', () => ({ NodeWorkerDuplexStream: vi.fn(() => mocks.stream), })); diff --git a/packages/nodejs/src/kernel/VatWorkerManager.ts b/packages/nodejs/src/kernel/VatWorkerManager.ts index e4725fd53..2abbb2aa1 100644 --- a/packages/nodejs/src/kernel/VatWorkerManager.ts +++ b/packages/nodejs/src/kernel/VatWorkerManager.ts @@ -3,8 +3,8 @@ import { isJsonRpcMessage } from '@metamask/kernel-utils'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import type { VatWorkerManager, VatId } from '@metamask/ocap-kernel'; -import { NodeWorkerDuplexStream } from '@ocap/streams'; -import type { DuplexStream } from '@ocap/streams'; +import { NodeWorkerDuplexStream } from '@metamask/streams'; +import type { DuplexStream } from '@metamask/streams'; import { Worker as NodeWorker } from 'node:worker_threads'; // Worker file loads from the built dist directory, requires rebuild after change diff --git a/packages/nodejs/src/kernel/make-kernel.ts b/packages/nodejs/src/kernel/make-kernel.ts index 4c3d0e0b1..20655fbb4 100644 --- a/packages/nodejs/src/kernel/make-kernel.ts +++ b/packages/nodejs/src/kernel/make-kernel.ts @@ -1,7 +1,7 @@ import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; import { Kernel } from '@metamask/ocap-kernel'; +import { NodeWorkerDuplexStream } from '@metamask/streams'; import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; -import { NodeWorkerDuplexStream } from '@ocap/streams'; import { MessagePort as NodeMessagePort } from 'node:worker_threads'; import { NodejsVatWorkerManager } from './VatWorkerManager.ts'; diff --git a/packages/nodejs/src/vat/streams.test.ts b/packages/nodejs/src/vat/streams.test.ts index 0fb53b1b0..b61fdf83d 100644 --- a/packages/nodejs/src/vat/streams.test.ts +++ b/packages/nodejs/src/vat/streams.test.ts @@ -9,7 +9,7 @@ const doMockParentPort = (value: unknown): void => { vi.resetModules(); }; -vi.mock('@ocap/streams', () => ({ +vi.mock('@metamask/streams', () => ({ NodeWorkerDuplexStream: vi.fn(), })); @@ -37,7 +37,7 @@ describe('makeKernelStream', () => { it('returns a NodeWorkerDuplexStream', async () => { doMockParentPort(new MessageChannel().port1); - const { NodeWorkerDuplexStream } = await import('@ocap/streams'); + const { NodeWorkerDuplexStream } = await import('@metamask/streams'); const { makeKernelStream } = await import('./streams.ts'); const kernelStream = makeKernelStream(); expect(kernelStream).toBeInstanceOf(NodeWorkerDuplexStream); diff --git a/packages/nodejs/src/vat/streams.ts b/packages/nodejs/src/vat/streams.ts index 9f4390501..1bb5ecb51 100644 --- a/packages/nodejs/src/vat/streams.ts +++ b/packages/nodejs/src/vat/streams.ts @@ -1,6 +1,6 @@ import { isJsonRpcMessage } from '@metamask/kernel-utils'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; -import { NodeWorkerDuplexStream } from '@ocap/streams'; +import { NodeWorkerDuplexStream } from '@metamask/streams'; import { parentPort } from 'node:worker_threads'; import type { MessagePort as NodePort } from 'node:worker_threads'; diff --git a/packages/nodejs/test/e2e/VatWorkerManager.test.ts b/packages/nodejs/test/e2e/VatWorkerManager.test.ts index 757e07ce4..1f84a5337 100644 --- a/packages/nodejs/test/e2e/VatWorkerManager.test.ts +++ b/packages/nodejs/test/e2e/VatWorkerManager.test.ts @@ -2,7 +2,7 @@ import '@ocap/shims/endoify'; import { makeCounter } from '@metamask/kernel-utils'; import type { VatId } from '@metamask/ocap-kernel'; -import { NodeWorkerDuplexStream } from '@ocap/streams'; +import { NodeWorkerDuplexStream } from '@metamask/streams'; import { describe, expect, it, vi } from 'vitest'; import { NodejsVatWorkerManager } from '../../src/kernel/VatWorkerManager.ts'; @@ -27,7 +27,7 @@ describe('NodejsVatWorkerManager', () => { it('rejects if synchronize fails', async () => { const rejected = 'test-reject-value'; - vi.doMock('@ocap/streams', () => ({ + vi.doMock('@metamask/streams', () => ({ NodeWorkerDuplexStream: vi.fn().mockImplementation(() => ({ synchronize: vi.fn(() => 'no').mockRejectedValue(rejected), })), diff --git a/packages/ocap-kernel/package.json b/packages/ocap-kernel/package.json index 92cb6f8eb..166618304 100644 --- a/packages/ocap-kernel/package.json +++ b/packages/ocap-kernel/package.json @@ -77,11 +77,11 @@ "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", "@metamask/rpc-errors": "^7.0.2", + "@metamask/streams": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", "@ocap/errors": "workspace:^", "@ocap/rpc-methods": "workspace:^", - "@ocap/streams": "workspace:^", "ses": "^1.12.0", "setimmediate": "^1.0.5" }, diff --git a/packages/ocap-kernel/src/Kernel.test.ts b/packages/ocap-kernel/src/Kernel.test.ts index 651509ee0..1b35f516f 100644 --- a/packages/ocap-kernel/src/Kernel.test.ts +++ b/packages/ocap-kernel/src/Kernel.test.ts @@ -1,8 +1,8 @@ import type { KernelDatabase } from '@metamask/kernel-store'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import type { DuplexStream } from '@metamask/streams'; import type { JsonRpcResponse, JsonRpcRequest } from '@metamask/utils'; import { VatNotFoundError } from '@ocap/errors'; -import type { DuplexStream } from '@ocap/streams'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import type { Mocked, MockInstance } from 'vitest'; import { describe, it, expect, vi, beforeEach } from 'vitest'; diff --git a/packages/ocap-kernel/src/Kernel.ts b/packages/ocap-kernel/src/Kernel.ts index 22687657c..3aa7903ab 100644 --- a/packages/ocap-kernel/src/Kernel.ts +++ b/packages/ocap-kernel/src/Kernel.ts @@ -3,6 +3,7 @@ import type { KernelDatabase } from '@metamask/kernel-store'; import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import { serializeError } from '@metamask/rpc-errors'; +import type { DuplexStream } from '@metamask/streams'; import { hasProperty } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; import { @@ -12,7 +13,6 @@ import { } from '@ocap/errors'; import { RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; -import type { DuplexStream } from '@ocap/streams'; import { KernelQueue } from './KernelQueue.ts'; import { KernelRouter } from './KernelRouter.ts'; diff --git a/packages/ocap-kernel/src/VatHandle.ts b/packages/ocap-kernel/src/VatHandle.ts index e5a4069bf..abb043dc5 100644 --- a/packages/ocap-kernel/src/VatHandle.ts +++ b/packages/ocap-kernel/src/VatHandle.ts @@ -6,11 +6,11 @@ import type { VatStore, VatCheckpoint } from '@metamask/kernel-store'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import { serializeError } from '@metamask/rpc-errors'; +import type { DuplexStream } from '@metamask/streams'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import { VatDeletedError, StreamReadError } from '@ocap/errors'; import { RpcClient, RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; -import type { DuplexStream } from '@ocap/streams'; import type { KernelQueue } from './KernelQueue.ts'; import { vatMethodSpecs, vatSyscallHandlers } from './rpc/index.ts'; diff --git a/packages/ocap-kernel/src/VatSupervisor.ts b/packages/ocap-kernel/src/VatSupervisor.ts index fbe5f4912..c292807c5 100644 --- a/packages/ocap-kernel/src/VatSupervisor.ts +++ b/packages/ocap-kernel/src/VatSupervisor.ts @@ -11,10 +11,10 @@ import type { VatKVStore, VatCheckpoint } from '@metamask/kernel-store'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { serializeError } from '@metamask/rpc-errors'; +import type { DuplexStream } from '@metamask/streams'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; import { StreamReadError } from '@ocap/errors'; import { RpcClient, RpcService } from '@ocap/rpc-methods'; -import type { DuplexStream } from '@ocap/streams'; import { vatSyscallMethodSpecs, vatHandlers } from './rpc/index.ts'; import type { InitVat } from './rpc/vat/initVat.ts'; diff --git a/packages/ocap-kernel/src/types.ts b/packages/ocap-kernel/src/types.ts index a27305df8..6372cc0d0 100644 --- a/packages/ocap-kernel/src/types.ts +++ b/packages/ocap-kernel/src/types.ts @@ -5,6 +5,7 @@ import type { } from '@agoric/swingset-liveslots'; import type { CapData } from '@endo/marshal'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; +import type { DuplexStream } from '@metamask/streams'; import { define, is, @@ -21,7 +22,6 @@ import { import type { Infer } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; import { UnsafeJsonStruct } from '@metamask/utils'; -import type { DuplexStream } from '@ocap/streams'; import { Fail } from './utils/assert.ts'; diff --git a/packages/streams/LICENSE b/packages/streams/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/streams/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/streams/README.md b/packages/streams/README.md index c0aa9d831..c25d85bd6 100644 --- a/packages/streams/README.md +++ b/packages/streams/README.md @@ -1,6 +1,14 @@ # `streams` -Ocap Kernel streams, compatible with `@endo/stream`, and therefore assumed to run under SES. +SES-compatible streams, in the lineage of [gtor](https://github.com/kriskowal/gtor) and `@endo/stream`. + +## Installation + +`yarn add @metamask/streams` + +or + +`npm install @metamask/streams` ## Contributing diff --git a/packages/streams/package.json b/packages/streams/package.json index f81210279..1dc6b12a4 100644 --- a/packages/streams/package.json +++ b/packages/streams/package.json @@ -1,12 +1,21 @@ { - "name": "@ocap/streams", + "name": "@metamask/streams", "version": "0.0.0", - "private": true, - "description": "Ocap Kernel streams", + "description": "SES-compatible streams, in the lineage of `@endo/stream`", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/streams#readme", + "bugs": { + "url": "https://github.com/MetaMask/ocap-kernel/issues" + }, "repository": { "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", "sideEffects": false, "type": "module", "exports": { @@ -41,7 +50,8 @@ "scripts": { "build": "ts-bridge --project tsconfig.build.json --clean", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/streams", + "changelog:update": "../../scripts/update-changelog.sh @metamask/streams", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/streams", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -102,5 +112,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/yarn.lock b/yarn.lock index 28b181fe1..4c76abd1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2061,7 +2061,7 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@ocap/streams": "workspace:^" + "@metamask/streams": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -2128,12 +2128,12 @@ __metadata: "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" + "@metamask/streams": "workspace:^" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/errors": "workspace:^" "@ocap/rpc-methods": "workspace:^" - "@ocap/streams": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -2291,6 +2291,53 @@ __metadata: languageName: node linkType: hard +"@metamask/streams@workspace:^, @metamask/streams@workspace:packages/streams": + version: 0.0.0-use.local + resolution: "@metamask/streams@workspace:packages/streams" + dependencies: + "@arethetypeswrong/cli": "npm:^0.17.4" + "@endo/promise-kit": "npm:^1.1.10" + "@endo/stream": "npm:^1.2.10" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-utils": "workspace:^" + "@metamask/superstruct": "npm:^3.2.1" + "@metamask/utils": "npm:^11.4.0" + "@ocap/cli": "workspace:^" + "@ocap/errors": "workspace:^" + "@ocap/test-utils": "workspace:^" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@types/chrome": "npm:^0.0.313" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/browser": "npm:^3.1.1" + "@vitest/eslint-plugin": "npm:^1.1.39" + cookie: "npm:^1.0.2" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + playwright: "npm:^1.51.1" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.12.0" + typedoc: "npm:^0.28.1" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@metamask/superstruct@npm:^3.1.0, @metamask/superstruct@npm:^3.2.1": version: 3.2.1 resolution: "@metamask/superstruct@npm:3.2.1" @@ -2764,13 +2811,13 @@ __metadata: "@metamask/ocap-kernel": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/snaps-utils": "npm:^9.1.0" + "@metamask/streams": "workspace:^" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/errors": "workspace:^" "@ocap/rpc-methods": "workspace:^" "@ocap/shims": "workspace:^" - "@ocap/streams": "workspace:^" "@ocap/test-utils": "workspace:^" "@playwright/test": "npm:^1.51.1" "@testing-library/dom": "npm:^10.4.0" @@ -2834,11 +2881,11 @@ __metadata: "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/ocap-kernel": "workspace:^" + "@metamask/streams": "workspace:^" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/nodejs": "workspace:^" "@ocap/shims": "workspace:^" - "@ocap/streams": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" @@ -2934,10 +2981,10 @@ __metadata: "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" "@metamask/ocap-kernel": "workspace:^" + "@metamask/streams": "workspace:^" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/shims": "workspace:^" - "@ocap/streams": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -3044,53 +3091,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/streams@workspace:^, @ocap/streams@workspace:packages/streams": - version: 0.0.0-use.local - resolution: "@ocap/streams@workspace:packages/streams" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@endo/promise-kit": "npm:^1.1.10" - "@endo/stream": "npm:^1.2.10" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@metamask/kernel-utils": "workspace:^" - "@metamask/superstruct": "npm:^3.2.1" - "@metamask/utils": "npm:^11.4.0" - "@ocap/cli": "workspace:^" - "@ocap/errors": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@types/chrome": "npm:^0.0.313" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/browser": "npm:^3.1.1" - "@vitest/eslint-plugin": "npm:^1.1.39" - cookie: "npm:^1.0.2" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - playwright: "npm:^1.51.1" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" - typedoc: "npm:^0.28.1" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@ocap/test-utils@workspace:^, @ocap/test-utils@workspace:packages/test-utils": version: 0.0.0-use.local resolution: "@ocap/test-utils@workspace:packages/test-utils" From 4f66c8cf8263a3086ccf05161e87abf8aed10b44 Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Fri, 2 May 2025 12:51:37 -0700 Subject: [PATCH 4/6] @ocap/errors -> @metamask/kernel-errors --- packages/extension/package.json | 2 +- .../VatWorkerServer.test.ts | 5 +- .../src/kernel-integration/VatWorkerServer.ts | 5 +- .../{errors => kernel-errors}/CHANGELOG.md | 0 packages/kernel-errors/LICENSE | 18 ++++ packages/{errors => kernel-errors}/README.md | 8 ++ .../{errors => kernel-errors}/package.json | 24 ++++- .../src/BaseError.test.ts | 0 .../src/BaseError.ts | 0 .../src/constants.ts | 0 .../src/errors/StreamReadError.test.ts | 0 .../src/errors/StreamReadError.ts | 0 .../src/errors/VatAlreadyExistsError.test.ts | 0 .../src/errors/VatAlreadyExistsError.ts | 0 .../src/errors/VatDeletedError.test.ts | 0 .../src/errors/VatDeletedError.ts | 0 .../src/errors/VatNotFoundError.test.ts | 0 .../src/errors/VatNotFoundError.ts | 0 .../src/errors/index.test.ts | 0 .../src/errors/index.ts | 0 .../src/index.test.ts | 0 .../{errors => kernel-errors}/src/index.ts | 0 .../src/marshal/isMarshaledError.test.ts | 0 .../src/marshal/isMarshaledError.ts | 0 .../src/marshal/isMarshaledOcapError.test.ts | 0 .../src/marshal/isMarshaledOcapError.ts | 0 .../src/marshal/marshal.test.ts | 0 .../src/marshal/marshalError.test.ts | 0 .../src/marshal/marshalError.ts | 0 .../src/marshal/unmarshalError.test.ts | 0 .../src/marshal/unmarshalError.ts | 0 .../{errors => kernel-errors}/src/types.ts | 0 .../src/utils/isOcapError.test.ts | 0 .../src/utils/isOcapError.ts | 0 .../src/utils/toError.test.ts | 0 .../src/utils/toError.ts | 0 .../tsconfig.build.json | 0 .../{errors => kernel-errors}/tsconfig.json | 0 .../{errors => kernel-errors}/typedoc.json | 0 .../vitest.config.ts | 0 packages/kernel-utils/package.json | 2 +- packages/kernel-utils/src/stringify.test.ts | 2 +- packages/kernel-utils/tsconfig.json | 2 +- packages/ocap-kernel/package.json | 2 +- packages/ocap-kernel/src/Kernel.test.ts | 2 +- packages/ocap-kernel/src/Kernel.ts | 10 +-- packages/ocap-kernel/src/VatHandle.ts | 2 +- packages/ocap-kernel/src/VatSupervisor.ts | 2 +- packages/ocap-kernel/tsconfig.build.json | 2 +- packages/ocap-kernel/tsconfig.json | 2 +- packages/streams/package.json | 4 +- packages/streams/src/utils.ts | 6 +- packages/streams/tsconfig.build.json | 2 +- packages/streams/tsconfig.json | 2 +- tsconfig.build.json | 2 +- tsconfig.json | 2 +- yarn.lock | 88 +++++++++---------- 57 files changed, 125 insertions(+), 71 deletions(-) rename packages/{errors => kernel-errors}/CHANGELOG.md (100%) create mode 100644 packages/kernel-errors/LICENSE rename packages/{errors => kernel-errors}/README.md (67%) rename packages/{errors => kernel-errors}/package.json (81%) rename packages/{errors => kernel-errors}/src/BaseError.test.ts (100%) rename packages/{errors => kernel-errors}/src/BaseError.ts (100%) rename packages/{errors => kernel-errors}/src/constants.ts (100%) rename packages/{errors => kernel-errors}/src/errors/StreamReadError.test.ts (100%) rename packages/{errors => kernel-errors}/src/errors/StreamReadError.ts (100%) rename packages/{errors => kernel-errors}/src/errors/VatAlreadyExistsError.test.ts (100%) rename packages/{errors => kernel-errors}/src/errors/VatAlreadyExistsError.ts (100%) rename packages/{errors => kernel-errors}/src/errors/VatDeletedError.test.ts (100%) rename packages/{errors => kernel-errors}/src/errors/VatDeletedError.ts (100%) rename packages/{errors => kernel-errors}/src/errors/VatNotFoundError.test.ts (100%) rename packages/{errors => kernel-errors}/src/errors/VatNotFoundError.ts (100%) rename packages/{errors => kernel-errors}/src/errors/index.test.ts (100%) rename packages/{errors => kernel-errors}/src/errors/index.ts (100%) rename packages/{errors => kernel-errors}/src/index.test.ts (100%) rename packages/{errors => kernel-errors}/src/index.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/isMarshaledError.test.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/isMarshaledError.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/isMarshaledOcapError.test.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/isMarshaledOcapError.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/marshal.test.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/marshalError.test.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/marshalError.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/unmarshalError.test.ts (100%) rename packages/{errors => kernel-errors}/src/marshal/unmarshalError.ts (100%) rename packages/{errors => kernel-errors}/src/types.ts (100%) rename packages/{errors => kernel-errors}/src/utils/isOcapError.test.ts (100%) rename packages/{errors => kernel-errors}/src/utils/isOcapError.ts (100%) rename packages/{errors => kernel-errors}/src/utils/toError.test.ts (100%) rename packages/{errors => kernel-errors}/src/utils/toError.ts (100%) rename packages/{errors => kernel-errors}/tsconfig.build.json (100%) rename packages/{errors => kernel-errors}/tsconfig.json (100%) rename packages/{errors => kernel-errors}/typedoc.json (100%) rename packages/{errors => kernel-errors}/vitest.config.ts (100%) diff --git a/packages/extension/package.json b/packages/extension/package.json index d76b3ecf7..cd3082aad 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -44,6 +44,7 @@ "@endo/eventual-send": "^1.3.1", "@endo/marshal": "^1.6.4", "@metamask/json-rpc-engine": "^10.0.3", + "@metamask/kernel-errors": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", @@ -53,7 +54,6 @@ "@metamask/streams": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", - "@ocap/errors": "workspace:^", "@ocap/rpc-methods": "workspace:^", "@ocap/shims": "workspace:^", "nanoid": "^5.1.5", diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts index 6ef79a9d9..ea0d0cb10 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts @@ -1,10 +1,13 @@ +import { + VatAlreadyExistsError, + VatNotFoundError, +} from '@metamask/kernel-errors'; import { delay } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import type { VatConfig, VatId } from '@metamask/ocap-kernel'; import { rpcErrors } from '@metamask/rpc-errors'; import type { PostMessageTarget } from '@metamask/streams/browser'; import type { JsonRpcRequest } from '@metamask/utils'; -import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest'; import type { Mock } from 'vitest'; diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.ts b/packages/extension/src/kernel-integration/VatWorkerServer.ts index 2dc433dc9..41fdfc6d7 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.ts @@ -1,3 +1,7 @@ +import { + VatAlreadyExistsError, + VatNotFoundError, +} from '@metamask/kernel-errors'; import { Logger } from '@metamask/logger'; import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import type { VatWorkerServiceMethod } from '@metamask/ocap-kernel/rpc'; @@ -15,7 +19,6 @@ import type { JsonRpcRequest, JsonRpcResponse, } from '@metamask/utils'; -import { VatAlreadyExistsError, VatNotFoundError } from '@ocap/errors'; import type { ExtractParams } from '@ocap/rpc-methods'; // Appears in the docs. diff --git a/packages/errors/CHANGELOG.md b/packages/kernel-errors/CHANGELOG.md similarity index 100% rename from packages/errors/CHANGELOG.md rename to packages/kernel-errors/CHANGELOG.md diff --git a/packages/kernel-errors/LICENSE b/packages/kernel-errors/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/kernel-errors/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/errors/README.md b/packages/kernel-errors/README.md similarity index 67% rename from packages/errors/README.md rename to packages/kernel-errors/README.md index b34cfdab2..b670e7b87 100644 --- a/packages/errors/README.md +++ b/packages/kernel-errors/README.md @@ -2,6 +2,14 @@ Ocap Kernel errors. +## Installation + +`yarn add @metamask/kernel-errors` + +or + +`npm install @metamask/kernel-errors` + ## Contributing This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/ocap-kernel#readme). diff --git a/packages/errors/package.json b/packages/kernel-errors/package.json similarity index 81% rename from packages/errors/package.json rename to packages/kernel-errors/package.json index ea4e3608f..d0c6ac37a 100644 --- a/packages/errors/package.json +++ b/packages/kernel-errors/package.json @@ -1,12 +1,22 @@ { - "name": "@ocap/errors", + "name": "@metamask/kernel-errors", "version": "0.0.0", - "private": true, "description": "Ocap Kernel errors", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/kernel-errors#readme", + "bugs": { + "url": "https://github.com/MetaMask/ocap-kernel/issues" + }, "repository": { "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", + "sideEffects": false, "type": "module", "exports": { ".": { @@ -21,13 +31,17 @@ }, "./package.json": "./package.json" }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", "files": [ "dist/" ], "scripts": { "build": "ts-bridge --project tsconfig.build.json --clean", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/errors", + "changelog:update": "../../scripts/update-changelog.sh @metamask/kernel-errors", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/kernel-errors", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -80,5 +94,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/packages/errors/src/BaseError.test.ts b/packages/kernel-errors/src/BaseError.test.ts similarity index 100% rename from packages/errors/src/BaseError.test.ts rename to packages/kernel-errors/src/BaseError.test.ts diff --git a/packages/errors/src/BaseError.ts b/packages/kernel-errors/src/BaseError.ts similarity index 100% rename from packages/errors/src/BaseError.ts rename to packages/kernel-errors/src/BaseError.ts diff --git a/packages/errors/src/constants.ts b/packages/kernel-errors/src/constants.ts similarity index 100% rename from packages/errors/src/constants.ts rename to packages/kernel-errors/src/constants.ts diff --git a/packages/errors/src/errors/StreamReadError.test.ts b/packages/kernel-errors/src/errors/StreamReadError.test.ts similarity index 100% rename from packages/errors/src/errors/StreamReadError.test.ts rename to packages/kernel-errors/src/errors/StreamReadError.test.ts diff --git a/packages/errors/src/errors/StreamReadError.ts b/packages/kernel-errors/src/errors/StreamReadError.ts similarity index 100% rename from packages/errors/src/errors/StreamReadError.ts rename to packages/kernel-errors/src/errors/StreamReadError.ts diff --git a/packages/errors/src/errors/VatAlreadyExistsError.test.ts b/packages/kernel-errors/src/errors/VatAlreadyExistsError.test.ts similarity index 100% rename from packages/errors/src/errors/VatAlreadyExistsError.test.ts rename to packages/kernel-errors/src/errors/VatAlreadyExistsError.test.ts diff --git a/packages/errors/src/errors/VatAlreadyExistsError.ts b/packages/kernel-errors/src/errors/VatAlreadyExistsError.ts similarity index 100% rename from packages/errors/src/errors/VatAlreadyExistsError.ts rename to packages/kernel-errors/src/errors/VatAlreadyExistsError.ts diff --git a/packages/errors/src/errors/VatDeletedError.test.ts b/packages/kernel-errors/src/errors/VatDeletedError.test.ts similarity index 100% rename from packages/errors/src/errors/VatDeletedError.test.ts rename to packages/kernel-errors/src/errors/VatDeletedError.test.ts diff --git a/packages/errors/src/errors/VatDeletedError.ts b/packages/kernel-errors/src/errors/VatDeletedError.ts similarity index 100% rename from packages/errors/src/errors/VatDeletedError.ts rename to packages/kernel-errors/src/errors/VatDeletedError.ts diff --git a/packages/errors/src/errors/VatNotFoundError.test.ts b/packages/kernel-errors/src/errors/VatNotFoundError.test.ts similarity index 100% rename from packages/errors/src/errors/VatNotFoundError.test.ts rename to packages/kernel-errors/src/errors/VatNotFoundError.test.ts diff --git a/packages/errors/src/errors/VatNotFoundError.ts b/packages/kernel-errors/src/errors/VatNotFoundError.ts similarity index 100% rename from packages/errors/src/errors/VatNotFoundError.ts rename to packages/kernel-errors/src/errors/VatNotFoundError.ts diff --git a/packages/errors/src/errors/index.test.ts b/packages/kernel-errors/src/errors/index.test.ts similarity index 100% rename from packages/errors/src/errors/index.test.ts rename to packages/kernel-errors/src/errors/index.test.ts diff --git a/packages/errors/src/errors/index.ts b/packages/kernel-errors/src/errors/index.ts similarity index 100% rename from packages/errors/src/errors/index.ts rename to packages/kernel-errors/src/errors/index.ts diff --git a/packages/errors/src/index.test.ts b/packages/kernel-errors/src/index.test.ts similarity index 100% rename from packages/errors/src/index.test.ts rename to packages/kernel-errors/src/index.test.ts diff --git a/packages/errors/src/index.ts b/packages/kernel-errors/src/index.ts similarity index 100% rename from packages/errors/src/index.ts rename to packages/kernel-errors/src/index.ts diff --git a/packages/errors/src/marshal/isMarshaledError.test.ts b/packages/kernel-errors/src/marshal/isMarshaledError.test.ts similarity index 100% rename from packages/errors/src/marshal/isMarshaledError.test.ts rename to packages/kernel-errors/src/marshal/isMarshaledError.test.ts diff --git a/packages/errors/src/marshal/isMarshaledError.ts b/packages/kernel-errors/src/marshal/isMarshaledError.ts similarity index 100% rename from packages/errors/src/marshal/isMarshaledError.ts rename to packages/kernel-errors/src/marshal/isMarshaledError.ts diff --git a/packages/errors/src/marshal/isMarshaledOcapError.test.ts b/packages/kernel-errors/src/marshal/isMarshaledOcapError.test.ts similarity index 100% rename from packages/errors/src/marshal/isMarshaledOcapError.test.ts rename to packages/kernel-errors/src/marshal/isMarshaledOcapError.test.ts diff --git a/packages/errors/src/marshal/isMarshaledOcapError.ts b/packages/kernel-errors/src/marshal/isMarshaledOcapError.ts similarity index 100% rename from packages/errors/src/marshal/isMarshaledOcapError.ts rename to packages/kernel-errors/src/marshal/isMarshaledOcapError.ts diff --git a/packages/errors/src/marshal/marshal.test.ts b/packages/kernel-errors/src/marshal/marshal.test.ts similarity index 100% rename from packages/errors/src/marshal/marshal.test.ts rename to packages/kernel-errors/src/marshal/marshal.test.ts diff --git a/packages/errors/src/marshal/marshalError.test.ts b/packages/kernel-errors/src/marshal/marshalError.test.ts similarity index 100% rename from packages/errors/src/marshal/marshalError.test.ts rename to packages/kernel-errors/src/marshal/marshalError.test.ts diff --git a/packages/errors/src/marshal/marshalError.ts b/packages/kernel-errors/src/marshal/marshalError.ts similarity index 100% rename from packages/errors/src/marshal/marshalError.ts rename to packages/kernel-errors/src/marshal/marshalError.ts diff --git a/packages/errors/src/marshal/unmarshalError.test.ts b/packages/kernel-errors/src/marshal/unmarshalError.test.ts similarity index 100% rename from packages/errors/src/marshal/unmarshalError.test.ts rename to packages/kernel-errors/src/marshal/unmarshalError.test.ts diff --git a/packages/errors/src/marshal/unmarshalError.ts b/packages/kernel-errors/src/marshal/unmarshalError.ts similarity index 100% rename from packages/errors/src/marshal/unmarshalError.ts rename to packages/kernel-errors/src/marshal/unmarshalError.ts diff --git a/packages/errors/src/types.ts b/packages/kernel-errors/src/types.ts similarity index 100% rename from packages/errors/src/types.ts rename to packages/kernel-errors/src/types.ts diff --git a/packages/errors/src/utils/isOcapError.test.ts b/packages/kernel-errors/src/utils/isOcapError.test.ts similarity index 100% rename from packages/errors/src/utils/isOcapError.test.ts rename to packages/kernel-errors/src/utils/isOcapError.test.ts diff --git a/packages/errors/src/utils/isOcapError.ts b/packages/kernel-errors/src/utils/isOcapError.ts similarity index 100% rename from packages/errors/src/utils/isOcapError.ts rename to packages/kernel-errors/src/utils/isOcapError.ts diff --git a/packages/errors/src/utils/toError.test.ts b/packages/kernel-errors/src/utils/toError.test.ts similarity index 100% rename from packages/errors/src/utils/toError.test.ts rename to packages/kernel-errors/src/utils/toError.test.ts diff --git a/packages/errors/src/utils/toError.ts b/packages/kernel-errors/src/utils/toError.ts similarity index 100% rename from packages/errors/src/utils/toError.ts rename to packages/kernel-errors/src/utils/toError.ts diff --git a/packages/errors/tsconfig.build.json b/packages/kernel-errors/tsconfig.build.json similarity index 100% rename from packages/errors/tsconfig.build.json rename to packages/kernel-errors/tsconfig.build.json diff --git a/packages/errors/tsconfig.json b/packages/kernel-errors/tsconfig.json similarity index 100% rename from packages/errors/tsconfig.json rename to packages/kernel-errors/tsconfig.json diff --git a/packages/errors/typedoc.json b/packages/kernel-errors/typedoc.json similarity index 100% rename from packages/errors/typedoc.json rename to packages/kernel-errors/typedoc.json diff --git a/packages/errors/vitest.config.ts b/packages/kernel-errors/vitest.config.ts similarity index 100% rename from packages/errors/vitest.config.ts rename to packages/kernel-errors/vitest.config.ts diff --git a/packages/kernel-utils/package.json b/packages/kernel-utils/package.json index 5ef8448b3..385ad69b4 100644 --- a/packages/kernel-utils/package.json +++ b/packages/kernel-utils/package.json @@ -68,7 +68,7 @@ "@metamask/eslint-config": "^14.0.0", "@metamask/eslint-config-nodejs": "^14.0.0", "@metamask/eslint-config-typescript": "^14.0.0", - "@ocap/errors": "workspace:^", + "@metamask/kernel-errors": "workspace:^", "@ocap/test-utils": "workspace:^", "@ts-bridge/cli": "^0.6.3", "@ts-bridge/shims": "^0.1.1", diff --git a/packages/kernel-utils/src/stringify.test.ts b/packages/kernel-utils/src/stringify.test.ts index b1a65f7bf..07f44d382 100644 --- a/packages/kernel-utils/src/stringify.test.ts +++ b/packages/kernel-utils/src/stringify.test.ts @@ -1,4 +1,4 @@ -import { VatNotFoundError } from '@ocap/errors'; +import { VatNotFoundError } from '@metamask/kernel-errors'; import { describe, it, expect } from 'vitest'; import { stringify } from './stringify.ts'; diff --git a/packages/kernel-utils/tsconfig.json b/packages/kernel-utils/tsconfig.json index 3f63ca630..9439a181f 100644 --- a/packages/kernel-utils/tsconfig.json +++ b/packages/kernel-utils/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["ES2022"], "types": ["ses", "vitest"] }, - "references": [{ "path": "../errors" }, { "path": "../test-utils" }], + "references": [{ "path": "../kernel-errors" }, { "path": "../test-utils" }], "include": [ "../../vitest.config.ts", "./src", diff --git a/packages/ocap-kernel/package.json b/packages/ocap-kernel/package.json index 166618304..45a53b796 100644 --- a/packages/ocap-kernel/package.json +++ b/packages/ocap-kernel/package.json @@ -73,6 +73,7 @@ "@endo/marshal": "^1.6.4", "@endo/pass-style": "^1.5.0", "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-errors": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", @@ -80,7 +81,6 @@ "@metamask/streams": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", - "@ocap/errors": "workspace:^", "@ocap/rpc-methods": "workspace:^", "ses": "^1.12.0", "setimmediate": "^1.0.5" diff --git a/packages/ocap-kernel/src/Kernel.test.ts b/packages/ocap-kernel/src/Kernel.test.ts index 1b35f516f..5cbfd3b90 100644 --- a/packages/ocap-kernel/src/Kernel.test.ts +++ b/packages/ocap-kernel/src/Kernel.test.ts @@ -1,8 +1,8 @@ +import { VatNotFoundError } from '@metamask/kernel-errors'; import type { KernelDatabase } from '@metamask/kernel-store'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import type { DuplexStream } from '@metamask/streams'; import type { JsonRpcResponse, JsonRpcRequest } from '@metamask/utils'; -import { VatNotFoundError } from '@ocap/errors'; import { TestDuplexStream } from '@ocap/test-utils/streams'; import type { Mocked, MockInstance } from 'vitest'; import { describe, it, expect, vi, beforeEach } from 'vitest'; diff --git a/packages/ocap-kernel/src/Kernel.ts b/packages/ocap-kernel/src/Kernel.ts index 3aa7903ab..ab0913292 100644 --- a/packages/ocap-kernel/src/Kernel.ts +++ b/packages/ocap-kernel/src/Kernel.ts @@ -1,4 +1,9 @@ import type { CapData } from '@endo/marshal'; +import { + StreamReadError, + VatAlreadyExistsError, + VatNotFoundError, +} from '@metamask/kernel-errors'; import type { KernelDatabase } from '@metamask/kernel-store'; import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; @@ -6,11 +11,6 @@ import { serializeError } from '@metamask/rpc-errors'; import type { DuplexStream } from '@metamask/streams'; import { hasProperty } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import { - StreamReadError, - VatAlreadyExistsError, - VatNotFoundError, -} from '@ocap/errors'; import { RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; diff --git a/packages/ocap-kernel/src/VatHandle.ts b/packages/ocap-kernel/src/VatHandle.ts index abb043dc5..c7de04966 100644 --- a/packages/ocap-kernel/src/VatHandle.ts +++ b/packages/ocap-kernel/src/VatHandle.ts @@ -2,13 +2,13 @@ import type { VatOneResolution, VatSyscallObject, } from '@agoric/swingset-liveslots'; +import { VatDeletedError, StreamReadError } from '@metamask/kernel-errors'; import type { VatStore, VatCheckpoint } from '@metamask/kernel-store'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import { serializeError } from '@metamask/rpc-errors'; import type { DuplexStream } from '@metamask/streams'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; -import { VatDeletedError, StreamReadError } from '@ocap/errors'; import { RpcClient, RpcService } from '@ocap/rpc-methods'; import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; diff --git a/packages/ocap-kernel/src/VatSupervisor.ts b/packages/ocap-kernel/src/VatSupervisor.ts index c292807c5..76ecf6e4e 100644 --- a/packages/ocap-kernel/src/VatSupervisor.ts +++ b/packages/ocap-kernel/src/VatSupervisor.ts @@ -7,13 +7,13 @@ import type { import { importBundle } from '@endo/import-bundle'; import { makeMarshal } from '@endo/marshal'; import type { CapData } from '@endo/marshal'; +import { StreamReadError } from '@metamask/kernel-errors'; import type { VatKVStore, VatCheckpoint } from '@metamask/kernel-store'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { serializeError } from '@metamask/rpc-errors'; import type { DuplexStream } from '@metamask/streams'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; -import { StreamReadError } from '@ocap/errors'; import { RpcClient, RpcService } from '@ocap/rpc-methods'; import { vatSyscallMethodSpecs, vatHandlers } from './rpc/index.ts'; diff --git a/packages/ocap-kernel/tsconfig.build.json b/packages/ocap-kernel/tsconfig.build.json index 622a20b60..6f0a15f3e 100644 --- a/packages/ocap-kernel/tsconfig.build.json +++ b/packages/ocap-kernel/tsconfig.build.json @@ -8,7 +8,7 @@ "types": ["ses"] }, "references": [ - { "path": "../errors/tsconfig.build.json" }, + { "path": "../kernel-errors/tsconfig.build.json" }, { "path": "../rpc-methods/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, { "path": "../kernel-store/tsconfig.build.json" }, diff --git a/packages/ocap-kernel/tsconfig.json b/packages/ocap-kernel/tsconfig.json index 0d1daceb3..e61774649 100644 --- a/packages/ocap-kernel/tsconfig.json +++ b/packages/ocap-kernel/tsconfig.json @@ -4,7 +4,7 @@ "baseUrl": "./" }, "references": [ - { "path": "../errors" }, + { "path": "../kernel-errors" }, { "path": "../logger" }, { "path": "../rpc-methods" }, { "path": "../kernel-store" }, diff --git a/packages/streams/package.json b/packages/streams/package.json index 1dc6b12a4..1234652d8 100644 --- a/packages/streams/package.json +++ b/packages/streams/package.json @@ -69,10 +69,10 @@ "dependencies": { "@endo/promise-kit": "^1.1.10", "@endo/stream": "^1.2.10", + "@metamask/kernel-errors": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/superstruct": "^3.2.1", - "@metamask/utils": "^11.4.0", - "@ocap/errors": "workspace:^" + "@metamask/utils": "^11.4.0" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/streams/src/utils.ts b/packages/streams/src/utils.ts index 4f82b3ecb..049390189 100644 --- a/packages/streams/src/utils.ts +++ b/packages/streams/src/utils.ts @@ -1,4 +1,9 @@ import type { Reader, Writer } from '@endo/stream'; +import { + isMarshaledError, + marshalError, + unmarshalError, +} from '@metamask/kernel-errors'; import { stringify } from '@metamask/kernel-utils'; import type { Infer } from '@metamask/superstruct'; import { is, literal } from '@metamask/superstruct'; @@ -8,7 +13,6 @@ import { object, UnsafeJsonStruct, } from '@metamask/utils'; -import { isMarshaledError, marshalError, unmarshalError } from '@ocap/errors'; export type { Reader, Writer }; diff --git a/packages/streams/tsconfig.build.json b/packages/streams/tsconfig.build.json index d9ac7f58a..c1d26c3e0 100644 --- a/packages/streams/tsconfig.build.json +++ b/packages/streams/tsconfig.build.json @@ -9,7 +9,7 @@ }, "references": [ { "path": "../kernel-utils/tsconfig.build.json" }, - { "path": "../errors/tsconfig.build.json" } + { "path": "../kernel-errors/tsconfig.build.json" } ], "include": ["./src"] } diff --git a/packages/streams/tsconfig.json b/packages/streams/tsconfig.json index b1a842cf3..42e061bc7 100644 --- a/packages/streams/tsconfig.json +++ b/packages/streams/tsconfig.json @@ -6,7 +6,7 @@ "types": ["ses", "vitest", "@vitest/browser/providers/playwright"] }, "references": [ - { "path": "../errors" }, + { "path": "../kernel-errors" }, { "path": "../test-utils" }, { "path": "../kernel-utils" } ], diff --git a/tsconfig.build.json b/tsconfig.build.json index 11538d1f2..fdbe4cf0c 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -3,7 +3,7 @@ "include": [], "references": [ { "path": "./packages/cli/tsconfig.build.json" }, - { "path": "./packages/errors/tsconfig.build.json" }, + { "path": "./packages/kernel-errors/tsconfig.build.json" }, { "path": "./packages/kernel-test/tsconfig.build.json" }, { "path": "./packages/ocap-kernel/tsconfig.build.json" }, { "path": "./packages/logger/tsconfig.build.json" }, diff --git a/tsconfig.json b/tsconfig.json index 53186ef31..34234c04b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,7 @@ "references": [ { "path": "./packages/cli" }, { "path": "./packages/create-package" }, - { "path": "./packages/errors" }, + { "path": "./packages/kernel-errors" }, { "path": "./packages/extension" }, { "path": "./packages/ocap-kernel" }, { "path": "./packages/kernel-test" }, diff --git a/yarn.lock b/yarn.lock index 4c76abd1f..7345e8aba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1955,6 +1955,46 @@ __metadata: languageName: node linkType: hard +"@metamask/kernel-errors@workspace:^, @metamask/kernel-errors@workspace:packages/kernel-errors": + version: 0.0.0-use.local + resolution: "@metamask/kernel-errors@workspace:packages/kernel-errors" + dependencies: + "@arethetypeswrong/cli": "npm:^0.17.4" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/superstruct": "npm:^3.2.1" + "@metamask/utils": "npm:^11.4.0" + "@ocap/cli": "workspace:^" + "@ocap/test-utils": "workspace:^" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.1.39" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + jsdom: "npm:^26.0.0" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.12.0" + typedoc: "npm:^0.28.1" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@metamask/kernel-store@workspace:^, @metamask/kernel-store@workspace:packages/kernel-store": version: 0.0.0-use.local resolution: "@metamask/kernel-store@workspace:packages/kernel-store" @@ -2006,9 +2046,9 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-errors": "workspace:^" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" - "@ocap/errors": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -2124,6 +2164,7 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-errors": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" @@ -2132,7 +2173,6 @@ __metadata: "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/errors": "workspace:^" "@ocap/rpc-methods": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" @@ -2302,11 +2342,11 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-errors": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/errors": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -2753,46 +2793,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/errors@workspace:^, @ocap/errors@workspace:packages/errors": - version: 0.0.0-use.local - resolution: "@ocap/errors@workspace:packages/errors" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@metamask/superstruct": "npm:^3.2.1" - "@metamask/utils": "npm:^11.4.0" - "@ocap/cli": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/eslint-plugin": "npm:^1.1.39" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - jsdom: "npm:^26.0.0" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" - typedoc: "npm:^0.28.1" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@ocap/extension@workspace:packages/extension": version: 0.0.0-use.local resolution: "@ocap/extension@workspace:packages/extension" @@ -2805,6 +2805,7 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/json-rpc-engine": "npm:^10.0.3" + "@metamask/kernel-errors": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" @@ -2815,7 +2816,6 @@ __metadata: "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/errors": "workspace:^" "@ocap/rpc-methods": "workspace:^" "@ocap/shims": "workspace:^" "@ocap/test-utils": "workspace:^" From b065455ec563b2a5589ee05a2cbd409662da9d7c Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Fri, 2 May 2025 13:00:21 -0700 Subject: [PATCH 5/6] refactor: @ocap/rpc-methods -> @metamask/kernel-rpc-methods --- packages/extension/package.json | 2 +- packages/extension/src/background.ts | 2 +- .../src/kernel-integration/VatWorkerClient.ts | 2 +- .../src/kernel-integration/VatWorkerServer.ts | 2 +- .../handlers/clear-state.ts | 2 +- .../handlers/collect-garbage.ts | 2 +- .../handlers/execute-db-query.ts | 2 +- .../kernel-integration/handlers/get-status.ts | 2 +- .../kernel-integration/handlers/launch-vat.ts | 2 +- .../handlers/reload-config.ts | 2 +- .../handlers/restart-vat.ts | 2 +- .../handlers/send-vat-command.ts | 2 +- .../handlers/terminate-all-vats.ts | 2 +- .../handlers/terminate-vat.ts | 2 +- .../handlers/update-cluster-config.ts | 2 +- .../middleware/panel-message.test.ts | 2 +- .../middleware/panel-message.ts | 2 +- packages/extension/src/ui/services/stream.ts | 7 +- packages/extension/tsconfig.build.json | 2 +- packages/extension/tsconfig.json | 2 +- .../CHANGELOG.md | 0 packages/kernel-rpc-methods/LICENSE | 18 ++++ .../README.md | 8 +- .../package.json | 24 ++++-- .../src/RpcClient.test.ts | 0 .../src/RpcClient.ts | 0 .../src/RpcService.test.ts | 0 .../src/RpcService.ts | 0 .../src/index.test.ts | 0 .../src/index.ts | 0 .../src/types.ts | 0 .../test/methods.ts | 0 .../test/setup.ts | 0 .../tsconfig.build.json | 0 .../tsconfig.json | 0 .../typedoc.json | 0 .../vitest.config.ts | 0 packages/ocap-kernel/package.json | 2 +- packages/ocap-kernel/src/Kernel.ts | 7 +- packages/ocap-kernel/src/VatHandle.ts | 7 +- packages/ocap-kernel/src/VatSupervisor.ts | 2 +- packages/ocap-kernel/src/rpc/kernel/index.ts | 2 +- .../ocap-kernel/src/rpc/vat-syscall/index.ts | 5 +- .../src/rpc/vat-syscall/vat-syscall.ts | 2 +- .../src/rpc/vat-worker-service/index.ts | 2 +- .../src/rpc/vat-worker-service/launch.ts | 2 +- .../src/rpc/vat-worker-service/terminate.ts | 2 +- .../rpc/vat-worker-service/terminateAll.ts | 2 +- packages/ocap-kernel/src/rpc/vat/deliver.ts | 2 +- packages/ocap-kernel/src/rpc/vat/index.ts | 2 +- packages/ocap-kernel/src/rpc/vat/initVat.ts | 2 +- packages/ocap-kernel/src/rpc/vat/ping.ts | 2 +- packages/ocap-kernel/tsconfig.build.json | 2 +- packages/ocap-kernel/tsconfig.json | 2 +- tsconfig.build.json | 2 +- tsconfig.json | 2 +- vitest.config.ts | 2 +- yarn.lock | 86 +++++++++---------- 58 files changed, 139 insertions(+), 95 deletions(-) rename packages/{rpc-methods => kernel-rpc-methods}/CHANGELOG.md (100%) create mode 100644 packages/kernel-rpc-methods/LICENSE rename packages/{rpc-methods => kernel-rpc-methods}/README.md (52%) rename packages/{rpc-methods => kernel-rpc-methods}/package.json (83%) rename packages/{rpc-methods => kernel-rpc-methods}/src/RpcClient.test.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/src/RpcClient.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/src/RpcService.test.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/src/RpcService.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/src/index.test.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/src/index.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/src/types.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/test/methods.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/test/setup.ts (100%) rename packages/{rpc-methods => kernel-rpc-methods}/tsconfig.build.json (100%) rename packages/{rpc-methods => kernel-rpc-methods}/tsconfig.json (100%) rename packages/{rpc-methods => kernel-rpc-methods}/typedoc.json (100%) rename packages/{rpc-methods => kernel-rpc-methods}/vitest.config.ts (100%) diff --git a/packages/extension/package.json b/packages/extension/package.json index cd3082aad..9615ae3b3 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -45,6 +45,7 @@ "@endo/marshal": "^1.6.4", "@metamask/json-rpc-engine": "^10.0.3", "@metamask/kernel-errors": "workspace:^", + "@metamask/kernel-rpc-methods": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", @@ -54,7 +55,6 @@ "@metamask/streams": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", - "@ocap/rpc-methods": "workspace:^", "@ocap/shims": "workspace:^", "nanoid": "^5.1.5", "react": "^18.3.1", diff --git a/packages/extension/src/background.ts b/packages/extension/src/background.ts index 65c16b6cf..1253f5e4a 100644 --- a/packages/extension/src/background.ts +++ b/packages/extension/src/background.ts @@ -1,3 +1,4 @@ +import { RpcClient } from '@metamask/kernel-rpc-methods'; import { delay } from '@metamask/kernel-utils'; import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; @@ -5,7 +6,6 @@ import { kernelMethodSpecs } from '@metamask/ocap-kernel/rpc'; import { ChromeRuntimeDuplexStream } from '@metamask/streams/browser'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import { RpcClient } from '@ocap/rpc-methods'; const OFFSCREEN_DOCUMENT_PATH = '/offscreen.html'; diff --git a/packages/extension/src/kernel-integration/VatWorkerClient.ts b/packages/extension/src/kernel-integration/VatWorkerClient.ts index 330e05d25..e77512507 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.ts @@ -1,3 +1,4 @@ +import { RpcClient } from '@metamask/kernel-rpc-methods'; import type { JsonRpcCall, JsonRpcMessage } from '@metamask/kernel-utils'; import { isJsonRpcMessage, stringify } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; @@ -14,7 +15,6 @@ import type { } from '@metamask/streams/browser'; import { isJsonRpcResponse } from '@metamask/utils'; import type { JsonRpcId, JsonRpcResponse } from '@metamask/utils'; -import { RpcClient } from '@ocap/rpc-methods'; // Appears in the docs. // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/extension/src/kernel-integration/VatWorkerServer.ts b/packages/extension/src/kernel-integration/VatWorkerServer.ts index 41fdfc6d7..dc3a3ad62 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.ts @@ -2,6 +2,7 @@ import { VatAlreadyExistsError, VatNotFoundError, } from '@metamask/kernel-errors'; +import type { ExtractParams } from '@metamask/kernel-rpc-methods'; import { Logger } from '@metamask/logger'; import type { VatId, VatConfig } from '@metamask/ocap-kernel'; import type { VatWorkerServiceMethod } from '@metamask/ocap-kernel/rpc'; @@ -19,7 +20,6 @@ import type { JsonRpcRequest, JsonRpcResponse, } from '@metamask/utils'; -import type { ExtractParams } from '@ocap/rpc-methods'; // Appears in the docs. // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/extension/src/kernel-integration/handlers/clear-state.ts b/packages/extension/src/kernel-integration/handlers/clear-state.ts index e942b177b..0cc3a8cdf 100644 --- a/packages/extension/src/kernel-integration/handlers/clear-state.ts +++ b/packages/extension/src/kernel-integration/handlers/clear-state.ts @@ -1,8 +1,8 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { EmptyJsonArray } from '@metamask/kernel-utils'; import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const clearStateSpec: MethodSpec<'clearState', Json[], Promise> = { method: 'clearState', diff --git a/packages/extension/src/kernel-integration/handlers/collect-garbage.ts b/packages/extension/src/kernel-integration/handlers/collect-garbage.ts index 91efc9cf2..a9ca11c24 100644 --- a/packages/extension/src/kernel-integration/handlers/collect-garbage.ts +++ b/packages/extension/src/kernel-integration/handlers/collect-garbage.ts @@ -1,7 +1,7 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { EmptyJsonArray } from '@metamask/kernel-utils'; import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const collectGarbageSpec: MethodSpec< 'collectGarbage', diff --git a/packages/extension/src/kernel-integration/handlers/execute-db-query.ts b/packages/extension/src/kernel-integration/handlers/execute-db-query.ts index bdad60af5..d58c0f08a 100644 --- a/packages/extension/src/kernel-integration/handlers/execute-db-query.ts +++ b/packages/extension/src/kernel-integration/handlers/execute-db-query.ts @@ -1,5 +1,5 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { array, object, record, string } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const executeDBQuerySpec: MethodSpec< 'executeDBQuery', diff --git a/packages/extension/src/kernel-integration/handlers/get-status.ts b/packages/extension/src/kernel-integration/handlers/get-status.ts index e5d958b9b..ee0dd82f5 100644 --- a/packages/extension/src/kernel-integration/handlers/get-status.ts +++ b/packages/extension/src/kernel-integration/handlers/get-status.ts @@ -1,3 +1,4 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { EmptyJsonArray } from '@metamask/kernel-utils'; import { ClusterConfigStruct, @@ -7,7 +8,6 @@ import { import type { Kernel } from '@metamask/ocap-kernel'; import { nullable, type, array, object } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; const KernelStatusStruct = type({ clusterConfig: nullable(ClusterConfigStruct), diff --git a/packages/extension/src/kernel-integration/handlers/launch-vat.ts b/packages/extension/src/kernel-integration/handlers/launch-vat.ts index 17c242f1c..a1fffb48b 100644 --- a/packages/extension/src/kernel-integration/handlers/launch-vat.ts +++ b/packages/extension/src/kernel-integration/handlers/launch-vat.ts @@ -1,7 +1,7 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { VatConfigStruct } from '@metamask/ocap-kernel'; import type { Kernel, VatConfig } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const launchVatSpec: MethodSpec< 'launchVat', diff --git a/packages/extension/src/kernel-integration/handlers/reload-config.ts b/packages/extension/src/kernel-integration/handlers/reload-config.ts index 2e7e22e2c..103ab46d9 100644 --- a/packages/extension/src/kernel-integration/handlers/reload-config.ts +++ b/packages/extension/src/kernel-integration/handlers/reload-config.ts @@ -1,7 +1,7 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { EmptyJsonArray } from '@metamask/kernel-utils'; import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const reloadConfigSpec: MethodSpec< 'reload', diff --git a/packages/extension/src/kernel-integration/handlers/restart-vat.ts b/packages/extension/src/kernel-integration/handlers/restart-vat.ts index 93d48c188..ff8723b22 100644 --- a/packages/extension/src/kernel-integration/handlers/restart-vat.ts +++ b/packages/extension/src/kernel-integration/handlers/restart-vat.ts @@ -1,7 +1,7 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { VatIdStruct } from '@metamask/ocap-kernel'; import type { Kernel, VatId } from '@metamask/ocap-kernel'; import { object, literal } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const restartVatSpec: MethodSpec< 'restartVat', diff --git a/packages/extension/src/kernel-integration/handlers/send-vat-command.ts b/packages/extension/src/kernel-integration/handlers/send-vat-command.ts index 0e7285ab3..a3d66057e 100644 --- a/packages/extension/src/kernel-integration/handlers/send-vat-command.ts +++ b/packages/extension/src/kernel-integration/handlers/send-vat-command.ts @@ -1,3 +1,4 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { VatIdStruct } from '@metamask/ocap-kernel'; import type { Kernel, VatId } from '@metamask/ocap-kernel'; import { UiMethodRequestStruct } from '@metamask/ocap-kernel/rpc'; @@ -6,7 +7,6 @@ import { object } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; import { UnsafeJsonStruct } from '@metamask/utils'; import type { Json } from '@metamask/utils'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const sendVatCommandSpec: MethodSpec< 'sendVatCommand', diff --git a/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts b/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts index 3e4f365ea..604863a32 100644 --- a/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts +++ b/packages/extension/src/kernel-integration/handlers/terminate-all-vats.ts @@ -1,8 +1,8 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { EmptyJsonArray } from '@metamask/kernel-utils'; import type { Kernel } from '@metamask/ocap-kernel'; import { literal } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const terminateAllVatsSpec: MethodSpec< 'terminateAllVats', diff --git a/packages/extension/src/kernel-integration/handlers/terminate-vat.ts b/packages/extension/src/kernel-integration/handlers/terminate-vat.ts index 2c1694cad..6c9a27ba6 100644 --- a/packages/extension/src/kernel-integration/handlers/terminate-vat.ts +++ b/packages/extension/src/kernel-integration/handlers/terminate-vat.ts @@ -1,7 +1,7 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import type { Kernel, VatId } from '@metamask/ocap-kernel'; import { VatIdStruct } from '@metamask/ocap-kernel'; import { object, literal } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const terminateVatSpec: MethodSpec< 'terminateVat', diff --git a/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts b/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts index 383d4aa03..47fe630da 100644 --- a/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts +++ b/packages/extension/src/kernel-integration/handlers/update-cluster-config.ts @@ -1,7 +1,7 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import type { ClusterConfig } from '@metamask/ocap-kernel'; import { ClusterConfigStruct } from '@metamask/ocap-kernel'; import { object, literal } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const updateClusterConfigSpec: MethodSpec< 'updateClusterConfig', diff --git a/packages/extension/src/kernel-integration/middleware/panel-message.test.ts b/packages/extension/src/kernel-integration/middleware/panel-message.test.ts index a3e3c5edf..1d0a336dd 100644 --- a/packages/extension/src/kernel-integration/middleware/panel-message.test.ts +++ b/packages/extension/src/kernel-integration/middleware/panel-message.test.ts @@ -11,7 +11,7 @@ const { mockAssertHasMethod, mockExecute } = vi.hoisted(() => ({ mockExecute: vi.fn(), })); -vi.mock('@ocap/rpc-methods', () => ({ +vi.mock('@metamask/kernel-rpc-methods', () => ({ RpcService: class MockRpcService { assertHasMethod = mockAssertHasMethod; diff --git a/packages/extension/src/kernel-integration/middleware/panel-message.ts b/packages/extension/src/kernel-integration/middleware/panel-message.ts index decdf34ba..6f37aa87d 100644 --- a/packages/extension/src/kernel-integration/middleware/panel-message.ts +++ b/packages/extension/src/kernel-integration/middleware/panel-message.ts @@ -1,9 +1,9 @@ import { createAsyncMiddleware } from '@metamask/json-rpc-engine'; import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine'; +import { RpcService } from '@metamask/kernel-rpc-methods'; import type { KernelDatabase } from '@metamask/kernel-store'; import type { ClusterConfig, Kernel } from '@metamask/ocap-kernel'; import type { Json, JsonRpcParams } from '@metamask/utils'; -import { RpcService } from '@ocap/rpc-methods'; import { handlers } from '../handlers/index.ts'; diff --git a/packages/extension/src/ui/services/stream.ts b/packages/extension/src/ui/services/stream.ts index 800e0166e..71471b7e1 100644 --- a/packages/extension/src/ui/services/stream.ts +++ b/packages/extension/src/ui/services/stream.ts @@ -1,5 +1,8 @@ -import { RpcClient } from '@ocap/rpc-methods'; -import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; +import { RpcClient } from '@metamask/kernel-rpc-methods'; +import type { + ExtractParams, + ExtractResult, +} from '@metamask/kernel-rpc-methods'; import { logger } from './logger.ts'; import { methodSpecs } from '../../kernel-integration/handlers/index.ts'; diff --git a/packages/extension/tsconfig.build.json b/packages/extension/tsconfig.build.json index 01cf0a95d..ce2257eb1 100644 --- a/packages/extension/tsconfig.build.json +++ b/packages/extension/tsconfig.build.json @@ -15,7 +15,7 @@ "references": [ { "path": "../ocap-kernel/tsconfig.build.json" }, { "path": "../logger/tsconfig.build.json" }, - { "path": "../rpc-methods/tsconfig.build.json" }, + { "path": "../kernel-rpc-methods/tsconfig.build.json" }, { "path": "../shims/tsconfig.build.json" }, { "path": "../kernel-store/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, diff --git a/packages/extension/tsconfig.json b/packages/extension/tsconfig.json index 95a593024..617ac77de 100644 --- a/packages/extension/tsconfig.json +++ b/packages/extension/tsconfig.json @@ -22,7 +22,7 @@ "references": [ { "path": "../ocap-kernel" }, { "path": "../logger" }, - { "path": "../rpc-methods" }, + { "path": "../kernel-rpc-methods" }, { "path": "../shims" }, { "path": "../kernel-store" }, { "path": "../streams" }, diff --git a/packages/rpc-methods/CHANGELOG.md b/packages/kernel-rpc-methods/CHANGELOG.md similarity index 100% rename from packages/rpc-methods/CHANGELOG.md rename to packages/kernel-rpc-methods/CHANGELOG.md diff --git a/packages/kernel-rpc-methods/LICENSE b/packages/kernel-rpc-methods/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/kernel-rpc-methods/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/rpc-methods/README.md b/packages/kernel-rpc-methods/README.md similarity index 52% rename from packages/rpc-methods/README.md rename to packages/kernel-rpc-methods/README.md index 188b469e8..364d8de50 100644 --- a/packages/rpc-methods/README.md +++ b/packages/kernel-rpc-methods/README.md @@ -1,14 +1,14 @@ -# `@ocap/rpc-methods` +# `@metamask/kernel-rpc-methods` -Utilities for implementing JSON-RPC methods +Utilities for implementing Ocap Kernel JSON-RPC methods. ## Installation -`yarn add @ocap/rpc-methods` +`yarn add @metamask/kernel-rpc-methods` or -`npm install @ocap/rpc-methods` +`npm install @metamask/kernel-rpc-methods` ## Contributing diff --git a/packages/rpc-methods/package.json b/packages/kernel-rpc-methods/package.json similarity index 83% rename from packages/rpc-methods/package.json rename to packages/kernel-rpc-methods/package.json index 7f250826e..04983e760 100644 --- a/packages/rpc-methods/package.json +++ b/packages/kernel-rpc-methods/package.json @@ -1,9 +1,13 @@ { - "name": "@ocap/rpc-methods", + "name": "@metamask/kernel-rpc-methods", "version": "0.0.0", - "private": true, - "description": "Utilities for implementing JSON-RPC methods", - "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/rpc-methods#readme", + "description": "Utilities for implementing Ocap Kernel JSON-RPC methods", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/kernel-rpc-methods#readme", "bugs": { "url": "https://github.com/MetaMask/ocap-kernel/issues" }, @@ -11,6 +15,8 @@ "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", + "sideEffects": false, "type": "module", "exports": { ".": { @@ -25,13 +31,17 @@ }, "./package.json": "./package.json" }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", "files": [ "dist/" ], "scripts": { "build": "ts-bridge --project tsconfig.build.json --clean", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/rpc-methods", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/kernel-rpc-methods", + "changelog:update": "../../scripts/update-changelog.sh @metamask/kernel-rpc-methods", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -85,5 +95,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/packages/rpc-methods/src/RpcClient.test.ts b/packages/kernel-rpc-methods/src/RpcClient.test.ts similarity index 100% rename from packages/rpc-methods/src/RpcClient.test.ts rename to packages/kernel-rpc-methods/src/RpcClient.test.ts diff --git a/packages/rpc-methods/src/RpcClient.ts b/packages/kernel-rpc-methods/src/RpcClient.ts similarity index 100% rename from packages/rpc-methods/src/RpcClient.ts rename to packages/kernel-rpc-methods/src/RpcClient.ts diff --git a/packages/rpc-methods/src/RpcService.test.ts b/packages/kernel-rpc-methods/src/RpcService.test.ts similarity index 100% rename from packages/rpc-methods/src/RpcService.test.ts rename to packages/kernel-rpc-methods/src/RpcService.test.ts diff --git a/packages/rpc-methods/src/RpcService.ts b/packages/kernel-rpc-methods/src/RpcService.ts similarity index 100% rename from packages/rpc-methods/src/RpcService.ts rename to packages/kernel-rpc-methods/src/RpcService.ts diff --git a/packages/rpc-methods/src/index.test.ts b/packages/kernel-rpc-methods/src/index.test.ts similarity index 100% rename from packages/rpc-methods/src/index.test.ts rename to packages/kernel-rpc-methods/src/index.test.ts diff --git a/packages/rpc-methods/src/index.ts b/packages/kernel-rpc-methods/src/index.ts similarity index 100% rename from packages/rpc-methods/src/index.ts rename to packages/kernel-rpc-methods/src/index.ts diff --git a/packages/rpc-methods/src/types.ts b/packages/kernel-rpc-methods/src/types.ts similarity index 100% rename from packages/rpc-methods/src/types.ts rename to packages/kernel-rpc-methods/src/types.ts diff --git a/packages/rpc-methods/test/methods.ts b/packages/kernel-rpc-methods/test/methods.ts similarity index 100% rename from packages/rpc-methods/test/methods.ts rename to packages/kernel-rpc-methods/test/methods.ts diff --git a/packages/rpc-methods/test/setup.ts b/packages/kernel-rpc-methods/test/setup.ts similarity index 100% rename from packages/rpc-methods/test/setup.ts rename to packages/kernel-rpc-methods/test/setup.ts diff --git a/packages/rpc-methods/tsconfig.build.json b/packages/kernel-rpc-methods/tsconfig.build.json similarity index 100% rename from packages/rpc-methods/tsconfig.build.json rename to packages/kernel-rpc-methods/tsconfig.build.json diff --git a/packages/rpc-methods/tsconfig.json b/packages/kernel-rpc-methods/tsconfig.json similarity index 100% rename from packages/rpc-methods/tsconfig.json rename to packages/kernel-rpc-methods/tsconfig.json diff --git a/packages/rpc-methods/typedoc.json b/packages/kernel-rpc-methods/typedoc.json similarity index 100% rename from packages/rpc-methods/typedoc.json rename to packages/kernel-rpc-methods/typedoc.json diff --git a/packages/rpc-methods/vitest.config.ts b/packages/kernel-rpc-methods/vitest.config.ts similarity index 100% rename from packages/rpc-methods/vitest.config.ts rename to packages/kernel-rpc-methods/vitest.config.ts diff --git a/packages/ocap-kernel/package.json b/packages/ocap-kernel/package.json index 45a53b796..147012e15 100644 --- a/packages/ocap-kernel/package.json +++ b/packages/ocap-kernel/package.json @@ -74,6 +74,7 @@ "@endo/pass-style": "^1.5.0", "@endo/promise-kit": "^1.1.10", "@metamask/kernel-errors": "workspace:^", + "@metamask/kernel-rpc-methods": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", @@ -81,7 +82,6 @@ "@metamask/streams": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", - "@ocap/rpc-methods": "workspace:^", "ses": "^1.12.0", "setimmediate": "^1.0.5" }, diff --git a/packages/ocap-kernel/src/Kernel.ts b/packages/ocap-kernel/src/Kernel.ts index ab0913292..1a7752c28 100644 --- a/packages/ocap-kernel/src/Kernel.ts +++ b/packages/ocap-kernel/src/Kernel.ts @@ -4,6 +4,11 @@ import { VatAlreadyExistsError, VatNotFoundError, } from '@metamask/kernel-errors'; +import { RpcService } from '@metamask/kernel-rpc-methods'; +import type { + ExtractParams, + ExtractResult, +} from '@metamask/kernel-rpc-methods'; import type { KernelDatabase } from '@metamask/kernel-store'; import type { JsonRpcCall } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; @@ -11,8 +16,6 @@ import { serializeError } from '@metamask/rpc-errors'; import type { DuplexStream } from '@metamask/streams'; import { hasProperty } from '@metamask/utils'; import type { JsonRpcResponse } from '@metamask/utils'; -import { RpcService } from '@ocap/rpc-methods'; -import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; import { KernelQueue } from './KernelQueue.ts'; import { KernelRouter } from './KernelRouter.ts'; diff --git a/packages/ocap-kernel/src/VatHandle.ts b/packages/ocap-kernel/src/VatHandle.ts index c7de04966..349947cf2 100644 --- a/packages/ocap-kernel/src/VatHandle.ts +++ b/packages/ocap-kernel/src/VatHandle.ts @@ -3,14 +3,17 @@ import type { VatSyscallObject, } from '@agoric/swingset-liveslots'; import { VatDeletedError, StreamReadError } from '@metamask/kernel-errors'; +import { RpcClient, RpcService } from '@metamask/kernel-rpc-methods'; +import type { + ExtractParams, + ExtractResult, +} from '@metamask/kernel-rpc-methods'; import type { VatStore, VatCheckpoint } from '@metamask/kernel-store'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { Logger } from '@metamask/logger'; import { serializeError } from '@metamask/rpc-errors'; import type { DuplexStream } from '@metamask/streams'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; -import { RpcClient, RpcService } from '@ocap/rpc-methods'; -import type { ExtractParams, ExtractResult } from '@ocap/rpc-methods'; import type { KernelQueue } from './KernelQueue.ts'; import { vatMethodSpecs, vatSyscallHandlers } from './rpc/index.ts'; diff --git a/packages/ocap-kernel/src/VatSupervisor.ts b/packages/ocap-kernel/src/VatSupervisor.ts index 76ecf6e4e..e65cea95c 100644 --- a/packages/ocap-kernel/src/VatSupervisor.ts +++ b/packages/ocap-kernel/src/VatSupervisor.ts @@ -8,13 +8,13 @@ import { importBundle } from '@endo/import-bundle'; import { makeMarshal } from '@endo/marshal'; import type { CapData } from '@endo/marshal'; import { StreamReadError } from '@metamask/kernel-errors'; +import { RpcClient, RpcService } from '@metamask/kernel-rpc-methods'; import type { VatKVStore, VatCheckpoint } from '@metamask/kernel-store'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import { serializeError } from '@metamask/rpc-errors'; import type { DuplexStream } from '@metamask/streams'; import { isJsonRpcRequest, isJsonRpcResponse } from '@metamask/utils'; -import { RpcClient, RpcService } from '@ocap/rpc-methods'; import { vatSyscallMethodSpecs, vatHandlers } from './rpc/index.ts'; import type { InitVat } from './rpc/vat/initVat.ts'; diff --git a/packages/ocap-kernel/src/rpc/kernel/index.ts b/packages/ocap-kernel/src/rpc/kernel/index.ts index 4b2b223fd..c989c13b8 100644 --- a/packages/ocap-kernel/src/rpc/kernel/index.ts +++ b/packages/ocap-kernel/src/rpc/kernel/index.ts @@ -2,7 +2,7 @@ import type { HandlerRecord, MethodRequest, MethodSpecRecord, -} from '@ocap/rpc-methods'; +} from '@metamask/kernel-rpc-methods'; import { pingHandler, pingSpec } from '../vat/ping.ts'; diff --git a/packages/ocap-kernel/src/rpc/vat-syscall/index.ts b/packages/ocap-kernel/src/rpc/vat-syscall/index.ts index 7551bfa4b..b333ea37e 100644 --- a/packages/ocap-kernel/src/rpc/vat-syscall/index.ts +++ b/packages/ocap-kernel/src/rpc/vat-syscall/index.ts @@ -1,4 +1,7 @@ -import type { MethodSpecRecord, HandlerRecord } from '@ocap/rpc-methods'; +import type { + MethodSpecRecord, + HandlerRecord, +} from '@metamask/kernel-rpc-methods'; import { vatSyscallSpec, vatSyscallHandler } from './vat-syscall.ts'; diff --git a/packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.ts b/packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.ts index 7b667f82d..1106c2962 100644 --- a/packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.ts +++ b/packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.ts @@ -1,4 +1,5 @@ import type { VatSyscallResult } from '@agoric/swingset-liveslots'; +import type { Handler, MethodSpec } from '@metamask/kernel-rpc-methods'; import { tuple, literal, @@ -9,7 +10,6 @@ import { Struct, } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; -import type { Handler, MethodSpec } from '@ocap/rpc-methods'; import { CapDataStruct, diff --git a/packages/ocap-kernel/src/rpc/vat-worker-service/index.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/index.ts index e6e99bb7f..eb1dc37f7 100644 --- a/packages/ocap-kernel/src/rpc/vat-worker-service/index.ts +++ b/packages/ocap-kernel/src/rpc/vat-worker-service/index.ts @@ -1,4 +1,4 @@ -import type { MethodSpecRecord } from '@ocap/rpc-methods'; +import type { MethodSpecRecord } from '@metamask/kernel-rpc-methods'; import { launchSpec } from './launch.ts'; import { terminateSpec } from './terminate.ts'; diff --git a/packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts index 5c5f65e13..65f052d32 100644 --- a/packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts +++ b/packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts @@ -1,5 +1,5 @@ +import type { MethodSpec } from '@metamask/kernel-rpc-methods'; import { literal, object } from '@metamask/superstruct'; -import type { MethodSpec } from '@ocap/rpc-methods'; import { VatIdStruct, VatConfigStruct } from '../../types.ts'; import type { VatId, VatConfig } from '../../types.ts'; diff --git a/packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts index 5bbc1dd2a..117850ac0 100644 --- a/packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts +++ b/packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts @@ -1,5 +1,5 @@ +import type { MethodSpec } from '@metamask/kernel-rpc-methods'; import { object, literal } from '@metamask/superstruct'; -import type { MethodSpec } from '@ocap/rpc-methods'; import { VatIdStruct } from '../../types.ts'; import type { VatId } from '../../types.ts'; diff --git a/packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts index 8ebe017dc..fdf5f794b 100644 --- a/packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts +++ b/packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts @@ -1,7 +1,7 @@ +import type { MethodSpec } from '@metamask/kernel-rpc-methods'; import { EmptyJsonArray } from '@metamask/kernel-utils'; import { literal } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; -import type { MethodSpec } from '@ocap/rpc-methods'; export const terminateAllSpec: MethodSpec<'terminateAll', Json[], null> = { method: 'terminateAll', diff --git a/packages/ocap-kernel/src/rpc/vat/deliver.ts b/packages/ocap-kernel/src/rpc/vat/deliver.ts index 4418f0d95..1893430ff 100644 --- a/packages/ocap-kernel/src/rpc/vat/deliver.ts +++ b/packages/ocap-kernel/src/rpc/vat/deliver.ts @@ -1,3 +1,4 @@ +import type { Handler, MethodSpec } from '@metamask/kernel-rpc-methods'; import type { VatCheckpoint } from '@metamask/kernel-store'; import { tuple, @@ -9,7 +10,6 @@ import { } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; import { UnsafeJsonStruct } from '@metamask/utils'; -import type { Handler, MethodSpec } from '@ocap/rpc-methods'; import { VatCheckpointStruct } from './shared.ts'; import { diff --git a/packages/ocap-kernel/src/rpc/vat/index.ts b/packages/ocap-kernel/src/rpc/vat/index.ts index c66bfab8f..319e10e13 100644 --- a/packages/ocap-kernel/src/rpc/vat/index.ts +++ b/packages/ocap-kernel/src/rpc/vat/index.ts @@ -1,6 +1,6 @@ +import type { MethodRequest } from '@metamask/kernel-rpc-methods'; import { is, refine, Struct } from '@metamask/superstruct'; import { JsonRpcRequestStruct } from '@metamask/utils'; -import type { MethodRequest } from '@ocap/rpc-methods'; import { deliverSpec, deliverHandler } from './deliver.ts'; import type { DeliverSpec, DeliverHandler } from './deliver.ts'; diff --git a/packages/ocap-kernel/src/rpc/vat/initVat.ts b/packages/ocap-kernel/src/rpc/vat/initVat.ts index 670e19c3d..2e76f02fd 100644 --- a/packages/ocap-kernel/src/rpc/vat/initVat.ts +++ b/packages/ocap-kernel/src/rpc/vat/initVat.ts @@ -1,7 +1,7 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import type { VatCheckpoint } from '@metamask/kernel-store'; import { array, object, string, tuple } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; import { VatCheckpointStruct } from './shared.ts'; import { VatConfigStruct } from '../../types.ts'; diff --git a/packages/ocap-kernel/src/rpc/vat/ping.ts b/packages/ocap-kernel/src/rpc/vat/ping.ts index 5bf545d42..8b4373858 100644 --- a/packages/ocap-kernel/src/rpc/vat/ping.ts +++ b/packages/ocap-kernel/src/rpc/vat/ping.ts @@ -1,6 +1,6 @@ +import type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; import { EmptyJsonArray } from '@metamask/kernel-utils'; import { string } from '@metamask/superstruct'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export type PingSpec = MethodSpec<'ping', EmptyJsonArray, string>; diff --git a/packages/ocap-kernel/tsconfig.build.json b/packages/ocap-kernel/tsconfig.build.json index 6f0a15f3e..07297b5a7 100644 --- a/packages/ocap-kernel/tsconfig.build.json +++ b/packages/ocap-kernel/tsconfig.build.json @@ -9,7 +9,7 @@ }, "references": [ { "path": "../kernel-errors/tsconfig.build.json" }, - { "path": "../rpc-methods/tsconfig.build.json" }, + { "path": "../kernel-rpc-methods/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, { "path": "../kernel-store/tsconfig.build.json" }, { "path": "../kernel-utils/tsconfig.build.json" } diff --git a/packages/ocap-kernel/tsconfig.json b/packages/ocap-kernel/tsconfig.json index e61774649..27e3b4cd8 100644 --- a/packages/ocap-kernel/tsconfig.json +++ b/packages/ocap-kernel/tsconfig.json @@ -6,7 +6,7 @@ "references": [ { "path": "../kernel-errors" }, { "path": "../logger" }, - { "path": "../rpc-methods" }, + { "path": "../kernel-rpc-methods" }, { "path": "../kernel-store" }, { "path": "../streams" }, { "path": "../kernel-utils" }, diff --git a/tsconfig.build.json b/tsconfig.build.json index fdbe4cf0c..779df5993 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -8,7 +8,7 @@ { "path": "./packages/ocap-kernel/tsconfig.build.json" }, { "path": "./packages/logger/tsconfig.build.json" }, { "path": "./packages/nodejs/tsconfig.build.json" }, - { "path": "./packages/rpc-methods/tsconfig.build.json" }, + { "path": "./packages/kernel-rpc-methods/tsconfig.build.json" }, { "path": "./packages/kernel-store/tsconfig.build.json" }, { "path": "./packages/streams/tsconfig.build.json" }, { "path": "./packages/kernel-utils/tsconfig.build.json" } diff --git a/tsconfig.json b/tsconfig.json index 34234c04b..1fa6abc95 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,7 +21,7 @@ { "path": "./packages/kernel-test" }, { "path": "./packages/logger" }, { "path": "./packages/nodejs" }, - { "path": "./packages/rpc-methods" }, + { "path": "./packages/kernel-rpc-methods" }, { "path": "./packages/shims" }, { "path": "./packages/kernel-store" }, { "path": "./packages/streams" }, diff --git a/vitest.config.ts b/vitest.config.ts index cd3a3dae7..49b70d247 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -106,7 +106,7 @@ export default defineConfig({ branches: 63.63, lines: 72.91, }, - 'packages/rpc-methods/**': { + 'packages/kernel-rpc-methods/**': { statements: 100, functions: 100, branches: 100, diff --git a/yarn.lock b/yarn.lock index 7345e8aba..362afac5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1995,6 +1995,47 @@ __metadata: languageName: unknown linkType: soft +"@metamask/kernel-rpc-methods@workspace:^, @metamask/kernel-rpc-methods@workspace:packages/kernel-rpc-methods": + version: 0.0.0-use.local + resolution: "@metamask/kernel-rpc-methods@workspace:packages/kernel-rpc-methods" + dependencies: + "@arethetypeswrong/cli": "npm:^0.17.4" + "@endo/promise-kit": "npm:^1.1.10" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" + "@metamask/rpc-errors": "npm:^7.0.2" + "@metamask/superstruct": "npm:^3.2.1" + "@metamask/utils": "npm:^11.4.0" + "@ocap/test-utils": "workspace:^" + "@ts-bridge/cli": "npm:^0.6.3" + "@ts-bridge/shims": "npm:^0.1.1" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.1.39" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + typedoc: "npm:^0.28.1" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@metamask/kernel-store@workspace:^, @metamask/kernel-store@workspace:packages/kernel-store": version: 0.0.0-use.local resolution: "@metamask/kernel-store@workspace:packages/kernel-store" @@ -2165,6 +2206,7 @@ __metadata: "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/kernel-errors": "workspace:^" + "@metamask/kernel-rpc-methods": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" @@ -2173,7 +2215,6 @@ __metadata: "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/rpc-methods": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -2806,6 +2847,7 @@ __metadata: "@metamask/eslint-config-typescript": "npm:^14.0.0" "@metamask/json-rpc-engine": "npm:^10.0.3" "@metamask/kernel-errors": "workspace:^" + "@metamask/kernel-rpc-methods": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" @@ -2816,7 +2858,6 @@ __metadata: "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/rpc-methods": "workspace:^" "@ocap/shims": "workspace:^" "@ocap/test-utils": "workspace:^" "@playwright/test": "npm:^1.51.1" @@ -3014,47 +3055,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/rpc-methods@workspace:^, @ocap/rpc-methods@workspace:packages/rpc-methods": - version: 0.0.0-use.local - resolution: "@ocap/rpc-methods@workspace:packages/rpc-methods" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@endo/promise-kit": "npm:^1.1.10" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@metamask/kernel-utils": "workspace:^" - "@metamask/logger": "workspace:^" - "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/superstruct": "npm:^3.2.1" - "@metamask/utils": "npm:^11.4.0" - "@ocap/test-utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/eslint-plugin": "npm:^1.1.39" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - typedoc: "npm:^0.28.1" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@ocap/shims@workspace:^, @ocap/shims@workspace:packages/shims": version: 0.0.0-use.local resolution: "@ocap/shims@workspace:packages/shims" From 444c003a4c332288db62fab13d836787d7448539 Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Fri, 2 May 2025 13:23:39 -0700 Subject: [PATCH 6/6] refactor: @ocap/shims -> @metamask/kernel-shims --- eslint.config.mjs | 4 +- package.json | 2 +- packages/cli/package.json | 2 +- packages/cli/src/commands/serve.test.ts | 2 +- packages/cli/src/commands/watch.test.ts | 2 +- packages/cli/test/integration/serve.test.ts | 2 +- packages/cli/tsconfig.build.json | 2 +- packages/extension/package.json | 2 +- packages/extension/src/env/endoify.ts | 2 +- packages/extension/test/build/build-tests.mjs | 2 +- packages/extension/tsconfig.build.json | 2 +- packages/extension/tsconfig.json | 2 +- packages/extension/vite.config.ts | 2 +- packages/kernel-errors/vitest.config.ts | 2 +- packages/{shims => kernel-shims}/CHANGELOG.md | 0 packages/kernel-shims/LICENSE | 18 +++++ packages/kernel-shims/README.md | 17 ++++ packages/{shims => kernel-shims}/package.json | 26 ++++-- .../{shims => kernel-shims}/scripts/bundle.js | 0 .../{shims => kernel-shims}/src/endoify.js | 0 .../src/endoify.test.ts | 0 .../tsconfig.build.json | 0 .../{shims => kernel-shims}/tsconfig.json | 0 packages/{shims => kernel-shims}/typedoc.json | 0 .../{shims => kernel-shims}/vitest.config.ts | 0 packages/kernel-store/vitest.config.ts | 2 +- packages/kernel-test/package.json | 4 +- packages/kernel-test/src/exo.test.ts | 2 +- .../src/garbage-collection.test.ts | 2 +- packages/kernel-test/src/liveslots.test.ts | 2 +- packages/kernel-test/src/resume.test.ts | 2 +- packages/kernel-test/src/supervisor.test.ts | 2 +- packages/kernel-test/src/vatstore.test.ts | 2 +- packages/nodejs/package.json | 2 +- packages/nodejs/src/env/endoify.ts | 2 +- .../src/kernel/VatWorkerManager.test.ts | 2 +- .../nodejs/src/kernel/make-kernel.test.ts | 2 +- packages/nodejs/src/vat/vat-worker.ts | 2 +- .../nodejs/test/e2e/VatWorkerManager.test.ts | 2 +- .../nodejs/test/e2e/kernel-worker.test.ts | 2 +- packages/nodejs/test/e2e/vat-worker.test.ts | 2 +- packages/ocap-kernel/vitest.config.ts | 2 +- packages/shims/README.md | 7 -- packages/streams/vitest.config.ts | 2 +- tsconfig.json | 2 +- vitest.config.ts | 9 ++- yarn.config.cjs | 4 +- yarn.lock | 80 +++++++++---------- 48 files changed, 139 insertions(+), 92 deletions(-) rename packages/{shims => kernel-shims}/CHANGELOG.md (100%) create mode 100644 packages/kernel-shims/LICENSE create mode 100644 packages/kernel-shims/README.md rename packages/{shims => kernel-shims}/package.json (79%) rename packages/{shims => kernel-shims}/scripts/bundle.js (100%) rename packages/{shims => kernel-shims}/src/endoify.js (100%) rename packages/{shims => kernel-shims}/src/endoify.test.ts (100%) rename packages/{shims => kernel-shims}/tsconfig.build.json (100%) rename packages/{shims => kernel-shims}/tsconfig.json (100%) rename packages/{shims => kernel-shims}/typedoc.json (100%) rename packages/{shims => kernel-shims}/vitest.config.ts (100%) delete mode 100644 packages/shims/README.md diff --git a/eslint.config.mjs b/eslint.config.mjs index 3557210a5..d1a6b011f 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -166,7 +166,7 @@ const config = createConfig([ // We have been hoisted by our own petard in the past. 'import-x/no-cycle': ['error', { ignoreExternal: true, maxDepth: 3 }], - // We use unassigned imports for e.g. `import '@ocap/shims/endoify'`. + // We use unassigned imports for e.g. `import '@metamask/kernel-shims/endoify'`. 'import-x/no-unassigned-import': 'off', 'import-x/no-useless-path-segments': [ @@ -198,7 +198,7 @@ const config = createConfig([ }, { - files: ['packages/shims/**/*'], + files: ['packages/kernel-shims/**/*'], languageOptions: { globals: { lockdown: 'readonly' }, }, diff --git a/package.json b/package.json index 38dd30ce5..8d459d8ab 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "build:clean": "yarn clean && yarn build", "build:docs": "yarn workspaces foreach --all --exclude @ocap/monorepo --exclude @ocap/extension --parallel --interlaced --verbose run build:docs", "build:source": "ts-bridge --project tsconfig.build.json --verbose && yarn build:special", - "build:special": "yarn workspace @ocap/shims run build && yarn workspace @ocap/extension run build && yarn workspace @ocap/kernel-test run build:vats", + "build:special": "yarn workspace @metamask/kernel-shims run build && yarn workspace @ocap/extension run build && yarn workspace @ocap/kernel-test run build:vats", "bundle": "node ./scripts/bundle-vat.js", "changelog:update": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run changelog:update", "changelog:validate": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run changelog:validate", diff --git a/packages/cli/package.json b/packages/cli/package.json index 8c85105b7..6c48434b9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -36,11 +36,11 @@ "@endo/bundle-source": "^4.0.0", "@endo/init": "^1.1.6", "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-shims": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", "@metamask/snaps-utils": "^9.1.0", "@metamask/utils": "^11.4.0", - "@ocap/shims": "workspace:^", "@types/node": "^22.13.1", "chokidar": "^4.0.1", "glob": "^11.0.0", diff --git a/packages/cli/src/commands/serve.test.ts b/packages/cli/src/commands/serve.test.ts index f2f6fc4ea..8ca4787ec 100644 --- a/packages/cli/src/commands/serve.test.ts +++ b/packages/cli/src/commands/serve.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { makeCounter } from '@metamask/kernel-utils'; import { createServer } from 'http'; diff --git a/packages/cli/src/commands/watch.test.ts b/packages/cli/src/commands/watch.test.ts index 336d3367c..a631f79cb 100644 --- a/packages/cli/src/commands/watch.test.ts +++ b/packages/cli/src/commands/watch.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { Logger } from '@metamask/logger'; import { watch } from 'chokidar'; diff --git a/packages/cli/test/integration/serve.test.ts b/packages/cli/test/integration/serve.test.ts index 696d61d3a..d147c6a38 100644 --- a/packages/cli/test/integration/serve.test.ts +++ b/packages/cli/test/integration/serve.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import type { BundleSourceResult } from '@endo/bundle-source'; import { makeCounter, stringify } from '@metamask/kernel-utils'; import { isObject, hasProperty } from '@metamask/utils'; diff --git a/packages/cli/tsconfig.build.json b/packages/cli/tsconfig.build.json index a0abc72f8..37a5344f7 100644 --- a/packages/cli/tsconfig.build.json +++ b/packages/cli/tsconfig.build.json @@ -11,7 +11,7 @@ "references": [ { "path": "../logger/tsconfig.build.json" }, { "path": "../kernel-utils/tsconfig.build.json" }, - { "path": "../shims/tsconfig.build.json" } + { "path": "../kernel-shims/tsconfig.build.json" } ], "files": [], "include": ["./src"] diff --git a/packages/extension/package.json b/packages/extension/package.json index 9615ae3b3..ba0c73706 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -46,6 +46,7 @@ "@metamask/json-rpc-engine": "^10.0.3", "@metamask/kernel-errors": "workspace:^", "@metamask/kernel-rpc-methods": "workspace:^", + "@metamask/kernel-shims": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", @@ -55,7 +56,6 @@ "@metamask/streams": "workspace:^", "@metamask/superstruct": "^3.2.1", "@metamask/utils": "^11.4.0", - "@ocap/shims": "workspace:^", "nanoid": "^5.1.5", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/packages/extension/src/env/endoify.ts b/packages/extension/src/env/endoify.ts index 58ad152ae..907535962 100644 --- a/packages/extension/src/env/endoify.ts +++ b/packages/extension/src/env/endoify.ts @@ -1 +1 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; diff --git a/packages/extension/test/build/build-tests.mjs b/packages/extension/test/build/build-tests.mjs index 8c9e0d988..c13853cba 100644 --- a/packages/extension/test/build/build-tests.mjs +++ b/packages/extension/test/build/build-tests.mjs @@ -9,7 +9,7 @@ import { const untransformedFiles = [ { - sourcePath: path.resolve('../shims/dist/endoify.js'), + sourcePath: path.resolve('../kernel-shims/dist/endoify.js'), builtPath: path.resolve(buildDir, 'endoify.js'), }, { diff --git a/packages/extension/tsconfig.build.json b/packages/extension/tsconfig.build.json index ce2257eb1..99b6bc674 100644 --- a/packages/extension/tsconfig.build.json +++ b/packages/extension/tsconfig.build.json @@ -16,7 +16,7 @@ { "path": "../ocap-kernel/tsconfig.build.json" }, { "path": "../logger/tsconfig.build.json" }, { "path": "../kernel-rpc-methods/tsconfig.build.json" }, - { "path": "../shims/tsconfig.build.json" }, + { "path": "../kernel-shims/tsconfig.build.json" }, { "path": "../kernel-store/tsconfig.build.json" }, { "path": "../streams/tsconfig.build.json" }, { "path": "../kernel-utils/tsconfig.build.json" } diff --git a/packages/extension/tsconfig.json b/packages/extension/tsconfig.json index 617ac77de..c7311693f 100644 --- a/packages/extension/tsconfig.json +++ b/packages/extension/tsconfig.json @@ -23,7 +23,7 @@ { "path": "../ocap-kernel" }, { "path": "../logger" }, { "path": "../kernel-rpc-methods" }, - { "path": "../shims" }, + { "path": "../kernel-shims" }, { "path": "../kernel-store" }, { "path": "../streams" }, { "path": "../test-utils" }, diff --git a/packages/extension/vite.config.ts b/packages/extension/vite.config.ts index 6f92cb6ad..5b24d5e2b 100644 --- a/packages/extension/vite.config.ts +++ b/packages/extension/vite.config.ts @@ -27,7 +27,7 @@ const staticCopyTargets: readonly string[] = [ 'manifest.json', // External modules 'env/dev-console.js', - '../../shims/dist/endoify.js', + '../../kernel-shims/dist/endoify.js', // Trusted preludes ...new Set(Object.values(trustedPreludes)), ]; diff --git a/packages/kernel-errors/vitest.config.ts b/packages/kernel-errors/vitest.config.ts index a40eaa68b..e571a6fd7 100644 --- a/packages/kernel-errors/vitest.config.ts +++ b/packages/kernel-errors/vitest.config.ts @@ -11,7 +11,7 @@ export default defineConfig((args) => { defineProject({ test: { name: 'errors', - setupFiles: path.resolve(__dirname, '../shims/src/endoify.js'), + setupFiles: path.resolve(__dirname, '../kernel-shims/src/endoify.js'), }, }), ); diff --git a/packages/shims/CHANGELOG.md b/packages/kernel-shims/CHANGELOG.md similarity index 100% rename from packages/shims/CHANGELOG.md rename to packages/kernel-shims/CHANGELOG.md diff --git a/packages/kernel-shims/LICENSE b/packages/kernel-shims/LICENSE new file mode 100644 index 000000000..632caa3a6 --- /dev/null +++ b/packages/kernel-shims/LICENSE @@ -0,0 +1,18 @@ +Copyright ConsenSys Software Inc. 2025. All rights reserved. + +You acknowledge and agree that ConsenSys Software Inc. (“ConsenSys”) (or ConsenSys’s licensors) own all legal right, title and interest in and to the work, software, application, source code, documentation and any other documents in this repository (collectively, the “Program”), including any intellectual property rights which subsist in the Program (whether those rights happen to be registered or not, and wherever in the world those rights may exist), whether in source code or any other form. + +Subject to the limited license below, you may not (and you may not permit anyone else to) distribute, publish, copy, modify, merge, combine with another program, create derivative works of, reverse engineer, decompile or otherwise attempt to extract the source code of, the Program or any part thereof, except that you may contribute to this repository. + +You are granted a non-exclusive, non-transferable, non-sublicensable license to distribute, publish, copy, modify, merge, combine with another program or create derivative works of the Program (such resulting program, collectively, the “Resulting Program”) solely for Non-Commercial Use as long as you: + 1. give prominent notice (“Notice”) with each copy of the Resulting Program that the Program is used in the Resulting Program and that the Program is the copyright of ConsenSys; and + 2. subject the Resulting Program and any distribution, publication, copy, modification, merger therewith, combination with another program or derivative works thereof to the same Notice requirement and Non-Commercial Use restriction set forth herein. + +“Non-Commercial Use” means each use as described in clauses (1)-(3) below, as reasonably determined by ConsenSys in its sole discretion: + 1. personal use for research, personal study, private entertainment, hobby projects or amateur pursuits, in each case without any anticipated commercial application; + 2. use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution; or + 3. the number of monthly active users of the Resulting Program across all versions thereof and platforms globally do not exceed 10,000 at any time. + +You will not use any trade mark, service mark, trade name, logo of ConsenSys or any other company or organization in a way that is likely or intended to cause confusion about the owner or authorized user of such marks, names or logos. + +If you have any questions, comments or interest in pursuing any other use cases, please reach out to us at metamask.license@consensys.net. diff --git a/packages/kernel-shims/README.md b/packages/kernel-shims/README.md new file mode 100644 index 000000000..706e33e4c --- /dev/null +++ b/packages/kernel-shims/README.md @@ -0,0 +1,17 @@ +# `@metamask/kernel-shims` + +Ocap Kernel shims. + +Essentially, our particular flavor of SES `lockdown` etc. + +## Installation + +`yarn add @metamask/kernel-shims` + +or + +`npm install @metamask/kernel-shims` + +## Contributing + +This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/ocap-kernel#readme). diff --git a/packages/shims/package.json b/packages/kernel-shims/package.json similarity index 79% rename from packages/shims/package.json rename to packages/kernel-shims/package.json index 08ee75f03..f1a3c8111 100644 --- a/packages/shims/package.json +++ b/packages/kernel-shims/package.json @@ -1,27 +1,37 @@ { - "name": "@ocap/shims", + "name": "@metamask/kernel-shims", "version": "0.0.0", - "private": true, - "description": "Shims for ocap programming", + "description": "Ocap Kernel shims", + "keywords": [ + "MetaMask", + "object capabilities", + "ocap" + ], + "homepage": "https://github.com/MetaMask/ocap-kernel/tree/main/packages/kernel-shims#readme", + "bugs": { + "url": "https://github.com/MetaMask/ocap-kernel/issues" + }, "repository": { "type": "git", "url": "https://github.com/MetaMask/ocap-kernel.git" }, + "license": "SEE LICENSE IN LICENSE", "sideEffects": false, "type": "module", "exports": { "./endoify": "./dist/endoify.js", "./package.json": "./package.json" }, - "main": "./dist/index.cjs", - "module": "./dist/index.mjs", + "main": "./dist/endoify.js", + "module": "./dist/endoify.js", "files": [ "dist/" ], "scripts": { "build": "node scripts/bundle.js", "build:docs": "typedoc", - "changelog:validate": "../../scripts/validate-changelog.sh @ocap/shims", + "changelog:update": "../../scripts/update-changelog.sh @metamask/kernel-shims", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/kernel-shims", "clean": "rimraf --glob './*.tsbuildinfo' ./.eslintcache ./coverage ./dist", "lint": "yarn lint:eslint && yarn lint:misc --check && yarn constraints && yarn lint:dependencies", "lint:dependencies": "depcheck", @@ -70,5 +80,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } diff --git a/packages/shims/scripts/bundle.js b/packages/kernel-shims/scripts/bundle.js similarity index 100% rename from packages/shims/scripts/bundle.js rename to packages/kernel-shims/scripts/bundle.js diff --git a/packages/shims/src/endoify.js b/packages/kernel-shims/src/endoify.js similarity index 100% rename from packages/shims/src/endoify.js rename to packages/kernel-shims/src/endoify.js diff --git a/packages/shims/src/endoify.test.ts b/packages/kernel-shims/src/endoify.test.ts similarity index 100% rename from packages/shims/src/endoify.test.ts rename to packages/kernel-shims/src/endoify.test.ts diff --git a/packages/shims/tsconfig.build.json b/packages/kernel-shims/tsconfig.build.json similarity index 100% rename from packages/shims/tsconfig.build.json rename to packages/kernel-shims/tsconfig.build.json diff --git a/packages/shims/tsconfig.json b/packages/kernel-shims/tsconfig.json similarity index 100% rename from packages/shims/tsconfig.json rename to packages/kernel-shims/tsconfig.json diff --git a/packages/shims/typedoc.json b/packages/kernel-shims/typedoc.json similarity index 100% rename from packages/shims/typedoc.json rename to packages/kernel-shims/typedoc.json diff --git a/packages/shims/vitest.config.ts b/packages/kernel-shims/vitest.config.ts similarity index 100% rename from packages/shims/vitest.config.ts rename to packages/kernel-shims/vitest.config.ts diff --git a/packages/kernel-store/vitest.config.ts b/packages/kernel-store/vitest.config.ts index e051af3d4..a4a97ab83 100644 --- a/packages/kernel-store/vitest.config.ts +++ b/packages/kernel-store/vitest.config.ts @@ -11,7 +11,7 @@ export default defineConfig((args) => { defineProject({ test: { name: 'store', - setupFiles: path.resolve(__dirname, '../shims/src/endoify.js'), + setupFiles: path.resolve(__dirname, '../kernel-shims/src/endoify.js'), }, }), ); diff --git a/packages/kernel-test/package.json b/packages/kernel-test/package.json index 6d2909edd..fc3005538 100644 --- a/packages/kernel-test/package.json +++ b/packages/kernel-test/package.json @@ -53,13 +53,13 @@ "@endo/marshal": "^1.6.4", "@endo/patterns": "^1.5.0", "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-shims": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/ocap-kernel": "workspace:^", "@metamask/streams": "workspace:^", "@metamask/utils": "^11.4.0", - "@ocap/nodejs": "workspace:^", - "@ocap/shims": "workspace:^" + "@ocap/nodejs": "workspace:^" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", diff --git a/packages/kernel-test/src/exo.test.ts b/packages/kernel-test/src/exo.test.ts index c7134fdfe..a9004f64a 100644 --- a/packages/kernel-test/src/exo.test.ts +++ b/packages/kernel-test/src/exo.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import type { KernelDatabase } from '@metamask/kernel-store'; import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; diff --git a/packages/kernel-test/src/garbage-collection.test.ts b/packages/kernel-test/src/garbage-collection.test.ts index 341f65774..606fffe89 100644 --- a/packages/kernel-test/src/garbage-collection.test.ts +++ b/packages/kernel-test/src/garbage-collection.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import type { KernelDatabase } from '@metamask/kernel-store'; import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; diff --git a/packages/kernel-test/src/liveslots.test.ts b/packages/kernel-test/src/liveslots.test.ts index e1acc3664..38171b58c 100644 --- a/packages/kernel-test/src/liveslots.test.ts +++ b/packages/kernel-test/src/liveslots.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; import { Kernel, kunser } from '@metamask/ocap-kernel'; import type { ClusterConfig } from '@metamask/ocap-kernel'; diff --git a/packages/kernel-test/src/resume.test.ts b/packages/kernel-test/src/resume.test.ts index eb2a81e12..e1d9d149f 100644 --- a/packages/kernel-test/src/resume.test.ts +++ b/packages/kernel-test/src/resume.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; import { waitUntilQuiescent } from '@metamask/kernel-utils'; import { describe, expect, it } from 'vitest'; diff --git a/packages/kernel-test/src/supervisor.test.ts b/packages/kernel-test/src/supervisor.test.ts index 786c34bca..c055f42fc 100644 --- a/packages/kernel-test/src/supervisor.test.ts +++ b/packages/kernel-test/src/supervisor.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { delay } from '@metamask/kernel-utils'; import type { JsonRpcMessage } from '@metamask/kernel-utils'; import type { VatConfig } from '@metamask/ocap-kernel'; diff --git a/packages/kernel-test/src/vatstore.test.ts b/packages/kernel-test/src/vatstore.test.ts index 8d9b3f55a..94666a3d2 100644 --- a/packages/kernel-test/src/vatstore.test.ts +++ b/packages/kernel-test/src/vatstore.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import type { VatStore, VatCheckpoint } from '@metamask/kernel-store'; import { makeSQLKernelDatabase } from '@metamask/kernel-store/sqlite/nodejs'; import type { ClusterConfig } from '@metamask/ocap-kernel'; diff --git a/packages/nodejs/package.json b/packages/nodejs/package.json index f9bf3594d..7e8e16c59 100644 --- a/packages/nodejs/package.json +++ b/packages/nodejs/package.json @@ -39,13 +39,13 @@ }, "dependencies": { "@endo/promise-kit": "^1.1.10", + "@metamask/kernel-shims": "workspace:^", "@metamask/kernel-store": "workspace:^", "@metamask/kernel-utils": "workspace:^", "@metamask/logger": "workspace:^", "@metamask/ocap-kernel": "workspace:^", "@metamask/streams": "workspace:^", "@metamask/utils": "^11.4.0", - "@ocap/shims": "workspace:^", "ses": "^1.12.0" }, "devDependencies": { diff --git a/packages/nodejs/src/env/endoify.ts b/packages/nodejs/src/env/endoify.ts index 58ad152ae..907535962 100644 --- a/packages/nodejs/src/env/endoify.ts +++ b/packages/nodejs/src/env/endoify.ts @@ -1 +1 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; diff --git a/packages/nodejs/src/kernel/VatWorkerManager.test.ts b/packages/nodejs/src/kernel/VatWorkerManager.test.ts index ec782ebde..3032994e1 100644 --- a/packages/nodejs/src/kernel/VatWorkerManager.test.ts +++ b/packages/nodejs/src/kernel/VatWorkerManager.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { makeCounter } from '@metamask/kernel-utils'; import type { VatId } from '@metamask/ocap-kernel'; diff --git a/packages/nodejs/src/kernel/make-kernel.test.ts b/packages/nodejs/src/kernel/make-kernel.test.ts index 8676e2cad..972e6c835 100644 --- a/packages/nodejs/src/kernel/make-kernel.test.ts +++ b/packages/nodejs/src/kernel/make-kernel.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { Kernel } from '@metamask/ocap-kernel'; import { diff --git a/packages/nodejs/src/vat/vat-worker.ts b/packages/nodejs/src/vat/vat-worker.ts index aac7cab3f..a2bcf730d 100644 --- a/packages/nodejs/src/vat/vat-worker.ts +++ b/packages/nodejs/src/vat/vat-worker.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { Logger } from '@metamask/logger'; import type { VatId } from '@metamask/ocap-kernel'; diff --git a/packages/nodejs/test/e2e/VatWorkerManager.test.ts b/packages/nodejs/test/e2e/VatWorkerManager.test.ts index 1f84a5337..95d538c55 100644 --- a/packages/nodejs/test/e2e/VatWorkerManager.test.ts +++ b/packages/nodejs/test/e2e/VatWorkerManager.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { makeCounter } from '@metamask/kernel-utils'; import type { VatId } from '@metamask/ocap-kernel'; diff --git a/packages/nodejs/test/e2e/kernel-worker.test.ts b/packages/nodejs/test/e2e/kernel-worker.test.ts index 8393679a8..27d65512f 100644 --- a/packages/nodejs/test/e2e/kernel-worker.test.ts +++ b/packages/nodejs/test/e2e/kernel-worker.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { Kernel } from '@metamask/ocap-kernel'; import type { VatConfig, VatId } from '@metamask/ocap-kernel'; diff --git a/packages/nodejs/test/e2e/vat-worker.test.ts b/packages/nodejs/test/e2e/vat-worker.test.ts index aa9b80176..e3cfe8730 100644 --- a/packages/nodejs/test/e2e/vat-worker.test.ts +++ b/packages/nodejs/test/e2e/vat-worker.test.ts @@ -1,4 +1,4 @@ -import '@ocap/shims/endoify'; +import '@metamask/kernel-shims/endoify'; import { makeCounter } from '@metamask/kernel-utils'; import type { VatId } from '@metamask/ocap-kernel'; diff --git a/packages/ocap-kernel/vitest.config.ts b/packages/ocap-kernel/vitest.config.ts index 7441c8986..4d6787e6c 100644 --- a/packages/ocap-kernel/vitest.config.ts +++ b/packages/ocap-kernel/vitest.config.ts @@ -11,7 +11,7 @@ export default defineConfig((args) => { defineProject({ test: { name: 'kernel', - setupFiles: path.resolve(__dirname, '../shims/src/endoify.js'), + setupFiles: path.resolve(__dirname, '../kernel-shims/src/endoify.js'), }, }), ); diff --git a/packages/shims/README.md b/packages/shims/README.md deleted file mode 100644 index 33e98c8f2..000000000 --- a/packages/shims/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# `@ocap/shims` - -Shims for ocap programming that we want to import without transforming, such as `lockdown` and `eventual-send`. - -## Contributing - -This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/ocap-kernel#readme). diff --git a/packages/streams/vitest.config.ts b/packages/streams/vitest.config.ts index 66905e2bb..c44cd1884 100644 --- a/packages/streams/vitest.config.ts +++ b/packages/streams/vitest.config.ts @@ -18,7 +18,7 @@ export default defineConfig((args) => { setupFiles: ['../test-utils/src/env/mock-endoify.ts'], } : { - setupFiles: '../shims/src/endoify.js', + setupFiles: '../kernel-shims/src/endoify.js', browser: { enabled: true, provider: 'playwright', diff --git a/tsconfig.json b/tsconfig.json index 1fa6abc95..13ab70057 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,7 +22,7 @@ { "path": "./packages/logger" }, { "path": "./packages/nodejs" }, { "path": "./packages/kernel-rpc-methods" }, - { "path": "./packages/shims" }, + { "path": "./packages/kernel-shims" }, { "path": "./packages/kernel-store" }, { "path": "./packages/streams" }, { "path": "./packages/test-utils" }, diff --git a/vitest.config.ts b/vitest.config.ts index 49b70d247..12331fe79 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -39,8 +39,11 @@ export default defineConfig({ ], alias: [ { - find: '@ocap/shims/endoify', - replacement: path.join(__dirname, './packages/shims/src/endoify.js'), + find: '@metamask/kernel-shims/endoify', + replacement: path.join( + __dirname, + './packages/kernel-shims/src/endoify.js', + ), customResolver: (id) => ({ external: true, id }), }, ], @@ -112,7 +115,7 @@ export default defineConfig({ branches: 100, lines: 100, }, - 'packages/shims/**': { + 'packages/kernel-shims/**': { statements: 0, functions: 0, branches: 0, diff --git a/yarn.config.cjs b/yarn.config.cjs index f8b049ed3..83ee77fcb 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -24,6 +24,8 @@ const noBuild = ['create-package', 'test-utils']; const noTests = ['test-utils']; // Packages that do not export a `package.json` file const noPackageJson = ['extension']; +// Packages that have weird exports +const exportsExceptions = ['kernel-shims']; /** * Aliases for the Yarn type definitions, to make the code more readable. @@ -112,7 +114,7 @@ module.exports = defineConfig({ expectWorkspaceLicense(workspace); } - if (!isPrivate) { + if (!isPrivate && !exportsExceptions.includes(workspaceBasename)) { // The entrypoints for all published packages must be the same. expectWorkspaceField(workspace, 'module', './dist/index.mjs'); expectWorkspaceField(workspace, 'main', './dist/index.cjs'); diff --git a/yarn.lock b/yarn.lock index 362afac5b..4b01c8500 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2036,6 +2036,42 @@ __metadata: languageName: unknown linkType: soft +"@metamask/kernel-shims@workspace:^, @metamask/kernel-shims@workspace:packages/kernel-shims": + version: 0.0.0-use.local + resolution: "@metamask/kernel-shims@workspace:packages/kernel-shims" + dependencies: + "@endo/bundle-source": "npm:^4.0.0" + "@endo/eventual-send": "npm:^1.3.1" + "@endo/lockdown": "npm:^1.0.15" + "@metamask/auto-changelog": "npm:^5.0.1" + "@metamask/eslint-config": "npm:^14.0.0" + "@metamask/eslint-config-nodejs": "npm:^14.0.0" + "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@ocap/cli": "workspace:^" + "@ocap/test-utils": "workspace:^" + "@typescript-eslint/eslint-plugin": "npm:^8.29.0" + "@typescript-eslint/parser": "npm:^8.29.0" + "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/eslint-plugin": "npm:^1.1.39" + depcheck: "npm:^1.4.7" + eslint: "npm:^9.23.0" + eslint-config-prettier: "npm:^10.1.1" + eslint-import-resolver-typescript: "npm:^4.3.1" + eslint-plugin-import-x: "npm:^4.10.0" + eslint-plugin-jsdoc: "npm:^50.6.9" + eslint-plugin-n: "npm:^17.17.0" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-promise: "npm:^7.2.1" + prettier: "npm:^3.5.3" + rimraf: "npm:^6.0.1" + ses: "npm:^1.12.0" + typescript: "npm:~5.8.2" + typescript-eslint: "npm:^8.29.0" + vite: "npm:^6.2.5" + vitest: "npm:^3.1.1" + languageName: unknown + linkType: soft + "@metamask/kernel-store@workspace:^, @metamask/kernel-store@workspace:packages/kernel-store": version: 0.0.0-use.local resolution: "@metamask/kernel-store@workspace:packages/kernel-store" @@ -2752,11 +2788,11 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-shims": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" "@metamask/snaps-utils": "npm:^9.1.0" "@metamask/utils": "npm:^11.4.0" - "@ocap/shims": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -2848,6 +2884,7 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.0.3" "@metamask/kernel-errors": "workspace:^" "@metamask/kernel-rpc-methods": "workspace:^" + "@metamask/kernel-shims": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" @@ -2858,7 +2895,6 @@ __metadata: "@metamask/superstruct": "npm:^3.2.1" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/shims": "workspace:^" "@ocap/test-utils": "workspace:^" "@playwright/test": "npm:^1.51.1" "@testing-library/dom": "npm:^10.4.0" @@ -2919,6 +2955,7 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-shims": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/ocap-kernel": "workspace:^" @@ -2926,7 +2963,6 @@ __metadata: "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" "@ocap/nodejs": "workspace:^" - "@ocap/shims": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" @@ -3018,6 +3054,7 @@ __metadata: "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" + "@metamask/kernel-shims": "workspace:^" "@metamask/kernel-store": "workspace:^" "@metamask/kernel-utils": "workspace:^" "@metamask/logger": "workspace:^" @@ -3025,7 +3062,6 @@ __metadata: "@metamask/streams": "workspace:^" "@metamask/utils": "npm:^11.4.0" "@ocap/cli": "workspace:^" - "@ocap/shims": "workspace:^" "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" @@ -3055,42 +3091,6 @@ __metadata: languageName: unknown linkType: soft -"@ocap/shims@workspace:^, @ocap/shims@workspace:packages/shims": - version: 0.0.0-use.local - resolution: "@ocap/shims@workspace:packages/shims" - dependencies: - "@endo/bundle-source": "npm:^4.0.0" - "@endo/eventual-send": "npm:^1.3.1" - "@endo/lockdown": "npm:^1.0.15" - "@metamask/auto-changelog": "npm:^5.0.1" - "@metamask/eslint-config": "npm:^14.0.0" - "@metamask/eslint-config-nodejs": "npm:^14.0.0" - "@metamask/eslint-config-typescript": "npm:^14.0.0" - "@ocap/cli": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/eslint-plugin": "npm:^1.1.39" - depcheck: "npm:^1.4.7" - eslint: "npm:^9.23.0" - eslint-config-prettier: "npm:^10.1.1" - eslint-import-resolver-typescript: "npm:^4.3.1" - eslint-plugin-import-x: "npm:^4.10.0" - eslint-plugin-jsdoc: "npm:^50.6.9" - eslint-plugin-n: "npm:^17.17.0" - eslint-plugin-prettier: "npm:^5.2.6" - eslint-plugin-promise: "npm:^7.2.1" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - vite: "npm:^6.2.5" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - "@ocap/test-utils@workspace:^, @ocap/test-utils@workspace:packages/test-utils": version: 0.0.0-use.local resolution: "@ocap/test-utils@workspace:packages/test-utils"