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..d1a6b011f 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, @@ -167,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': [ @@ -199,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 ecd6d55ab..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", @@ -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>@metamask/streams": true, "eslint-plugin-import-x>unrs-resolver": false } }, 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..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/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/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/serve.test.ts b/packages/cli/src/commands/serve.test.ts index 56ee4c6aa..8ca4787ec 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 '@metamask/kernel-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/src/commands/watch.test.ts b/packages/cli/src/commands/watch.test.ts index 5004e8123..a631f79cb 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 '@metamask/kernel-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/cli/test/integration/serve.test.ts b/packages/cli/test/integration/serve.test.ts index 4bf59efa3..d147c6a38 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 '@metamask/kernel-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..37a5344f7 100644 --- a/packages/cli/tsconfig.build.json +++ b/packages/cli/tsconfig.build.json @@ -10,8 +10,8 @@ }, "references": [ { "path": "../logger/tsconfig.build.json" }, - { "path": "../utils/tsconfig.build.json" }, - { "path": "../shims/tsconfig.build.json" } + { "path": "../kernel-utils/tsconfig.build.json" }, + { "path": "../kernel-shims/tsconfig.build.json" } ], "files": [], "include": ["./src"] 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/extension/package.json b/packages/extension/package.json index a1532f1d7..ba0c73706 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-errors": "workspace:^", + "@metamask/kernel-rpc-methods": "workspace:^", + "@metamask/kernel-shims": "workspace:^", + "@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/streams": "workspace:^", "@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..1253f5e4a 100644 --- a/packages/extension/src/background.ts +++ b/packages/extension/src/background.ts @@ -1,11 +1,11 @@ +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'; +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 { 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/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/src/iframe.ts b/packages/extension/src/iframe.ts index 3377bd0bf..a204057fe 100644 --- a/packages/extension/src/iframe.ts +++ b/packages/extension/src/iframe.ts @@ -1,11 +1,11 @@ -import { VatSupervisor } from '@ocap/kernel'; -import { Logger } from '@ocap/logger'; +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 { MessagePortDuplexStream, receiveMessagePort, -} from '@ocap/streams/browser'; -import type { JsonRpcMessage } from '@ocap/utils'; -import { isJsonRpcMessage } from '@ocap/utils'; +} 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 d849685f7..914224819 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.test.ts @@ -1,16 +1,16 @@ +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 { 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'; 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 5be16c8d4..e77512507 100644 --- a/packages/extension/src/kernel-integration/VatWorkerClient.ts +++ b/packages/extension/src/kernel-integration/VatWorkerClient.ts @@ -1,20 +1,20 @@ -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'; +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'; +import type { VatWorkerManager, VatId, VatConfig } from '@metamask/ocap-kernel'; +import { vatWorkerServiceMethodSpecs } from '@metamask/ocap-kernel/rpc'; +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'; -import type { JsonRpcCall, JsonRpcMessage } from '@ocap/utils'; -import { isJsonRpcMessage, stringify } from '@ocap/utils'; +} from '@metamask/streams/browser'; +import { isJsonRpcResponse } from '@metamask/utils'; +import type { JsonRpcId, JsonRpcResponse } from '@metamask/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..ea0d0cb10 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.test.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.test.ts @@ -1,18 +1,21 @@ +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 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..dc3a3ad62 100644 --- a/packages/extension/src/kernel-integration/VatWorkerServer.ts +++ b/packages/extension/src/kernel-integration/VatWorkerServer.ts @@ -1,4 +1,18 @@ +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'; +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, @@ -6,17 +20,6 @@ import type { JsonRpcRequest, 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'; -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/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..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 { 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..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 { 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/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.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..ee0dd82f5 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 type { MethodSpec, Handler } from '@metamask/kernel-rpc-methods'; +import { EmptyJsonArray } from '@metamask/kernel-utils'; import { ClusterConfigStruct, VatConfigStruct, VatIdStruct, -} from '@ocap/kernel'; -import type { Kernel } from '@ocap/kernel'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; -import { EmptyJsonArray } from '@ocap/utils'; +} 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'; 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..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 { VatConfigStruct } from '@ocap/kernel'; -import type { Kernel, VatConfig } from '@ocap/kernel'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const launchVatSpec: MethodSpec< 'launchVat', 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..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 { 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..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 { VatIdStruct } from '@ocap/kernel'; -import type { Kernel, VatId } from '@ocap/kernel'; -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.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..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,12 +1,12 @@ +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'; +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< 'sendVatCommand', 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..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 { 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..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 { Kernel, VatId } from '@ocap/kernel'; -import { VatIdStruct } from '@ocap/kernel'; -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.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..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 { ClusterConfig } from '@ocap/kernel'; -import { ClusterConfigStruct } from '@ocap/kernel'; -import type { MethodSpec, Handler } from '@ocap/rpc-methods'; export const updateClusterConfigSpec: MethodSpec< 'updateClusterConfig', diff --git a/packages/extension/src/kernel-integration/iframe-vat-worker.ts b/packages/extension/src/kernel-integration/iframe-vat-worker.ts index 28b227806..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 { VatId, VatConfig } from '@ocap/kernel'; -import { Logger } from '@ocap/logger'; -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 239af0f59..99e1ae9b5 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 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 { 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 { PostMessageTarget } from '@metamask/streams/browser'; import { MessagePortDuplexStream, receiveMessagePort, -} from '@ocap/streams/browser'; -import { fetchValidatedJson, isJsonRpcCall } from '@ocap/utils'; -import type { JsonRpcCall } from '@ocap/utils'; +} 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/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/middleware/panel-message.test.ts b/packages/extension/src/kernel-integration/middleware/panel-message.test.ts index e5fa9716b..1d0a336dd 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'; @@ -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 9228f9414..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 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..15238a318 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 { Logger } from '@metamask/logger'; +import type { PostMessageTarget } from '@metamask/streams/browser'; 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 { @@ -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 5b2e7a509..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 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..8847fc336 100644 --- a/packages/extension/src/offscreen.ts +++ b/packages/extension/src/offscreen.ts @@ -1,15 +1,15 @@ -import { isJsonRpcResponse } from '@metamask/utils'; -import type { JsonRpcResponse } from '@metamask/utils'; -import { Logger } from '@ocap/logger'; -import type { DuplexStream } from '@ocap/streams'; +import { delay, isJsonRpcCall } from '@metamask/kernel-utils'; +import type { JsonRpcCall } from '@metamask/kernel-utils'; +import { Logger } from '@metamask/logger'; +import type { DuplexStream } from '@metamask/streams'; import { initializeMessageChannel, ChromeRuntimeDuplexStream, MessagePortDuplexStream, -} from '@ocap/streams/browser'; -import type { PostMessageTarget } from '@ocap/streams/browser'; -import { delay, isJsonRpcCall } from '@ocap/utils'; -import type { JsonRpcCall } from '@ocap/utils'; +} 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/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/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/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/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/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 322c0c449..99b6bc674 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-rpc-methods/tsconfig.build.json" }, + { "path": "../kernel-shims/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..c7311693f 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-rpc-methods" }, + { "path": "../kernel-shims" }, + { "path": "../kernel-store" }, { "path": "../streams" }, { "path": "../test-utils" }, - { "path": "../utils" } + { "path": "../kernel-utils" } ], "include": [ "../../vitest.config.ts", 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/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 77% rename from packages/errors/tsconfig.build.json rename to packages/kernel-errors/tsconfig.build.json index 577295696..85fa65ecb 100644 --- a/packages/errors/tsconfig.build.json +++ b/packages/kernel-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/utils/tsconfig.json b/packages/kernel-errors/tsconfig.json similarity index 77% rename from packages/utils/tsconfig.json rename to packages/kernel-errors/tsconfig.json index 3f63ca630..e08723abe 100644 --- a/packages/utils/tsconfig.json +++ b/packages/kernel-errors/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["ES2022"], "types": ["ses", "vitest"] }, - "references": [{ "path": "../errors" }, { "path": "../test-utils" }], + "references": [{ "path": "../test-utils" }, { "path": "../kernel-utils" }], "include": [ "../../vitest.config.ts", "./src", 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 82% rename from packages/errors/vitest.config.ts rename to packages/kernel-errors/vitest.config.ts index a40eaa68b..e571a6fd7 100644 --- a/packages/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/kernel/CHANGELOG.md b/packages/kernel-rpc-methods/CHANGELOG.md similarity index 100% rename from packages/kernel/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/kernel-rpc-methods/README.md b/packages/kernel-rpc-methods/README.md new file mode 100644 index 000000000..364d8de50 --- /dev/null +++ b/packages/kernel-rpc-methods/README.md @@ -0,0 +1,15 @@ +# `@metamask/kernel-rpc-methods` + +Utilities for implementing Ocap Kernel JSON-RPC methods. + +## Installation + +`yarn add @metamask/kernel-rpc-methods` + +or + +`npm install @metamask/kernel-rpc-methods` + +## 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/rpc-methods/package.json b/packages/kernel-rpc-methods/package.json similarity index 80% rename from packages/rpc-methods/package.json rename to packages/kernel-rpc-methods/package.json index db173ca5e..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", @@ -47,11 +57,11 @@ }, "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:^", - "@ocap/utils": "workspace:^" + "@metamask/utils": "^11.4.0" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", @@ -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 98% rename from packages/rpc-methods/src/RpcClient.test.ts rename to packages/kernel-rpc-methods/src/RpcClient.test.ts index a3d40cd21..c60cd8085 100644 --- a/packages/rpc-methods/src/RpcClient.test.ts +++ b/packages/kernel-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/kernel-rpc-methods/src/RpcClient.ts similarity index 96% rename from packages/rpc-methods/src/RpcClient.ts rename to packages/kernel-rpc-methods/src/RpcClient.ts index 7dbb9f665..b82a32cde 100644 --- a/packages/rpc-methods/src/RpcClient.ts +++ b/packages/kernel-rpc-methods/src/RpcClient.ts @@ -1,4 +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 { @@ -6,9 +9,6 @@ import type { JsonRpcRequest, 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/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 84% rename from packages/rpc-methods/tsconfig.build.json rename to packages/kernel-rpc-methods/tsconfig.build.json index 565643766..dff0f908f 100644 --- a/packages/rpc-methods/tsconfig.build.json +++ b/packages/kernel-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/kernel-rpc-methods/tsconfig.json similarity index 91% rename from packages/rpc-methods/tsconfig.json rename to packages/kernel-rpc-methods/tsconfig.json index 70af05fa6..0278fa827 100644 --- a/packages/rpc-methods/tsconfig.json +++ b/packages/kernel-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/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/rpc-methods/CHANGELOG.md b/packages/kernel-shims/CHANGELOG.md similarity index 100% rename from packages/rpc-methods/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/kernel/typedoc.json b/packages/kernel-shims/typedoc.json similarity index 100% rename from packages/kernel/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/shims/CHANGELOG.md b/packages/kernel-store/CHANGELOG.md similarity index 100% rename from packages/shims/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 86% rename from packages/store/package.json rename to packages/kernel-store/package.json index bc3db762b..8b4b1e742 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", @@ -66,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" @@ -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 99% rename from packages/store/src/sqlite/nodejs.ts rename to packages/kernel-store/src/sqlite/nodejs.ts index b7f7a95d0..456173913 100644 --- a/packages/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/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 99% rename from packages/store/src/sqlite/wasm.ts rename to packages/kernel-store/src/sqlite/wasm.ts index 1e2c7cb79..d407e417a 100644 --- a/packages/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/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 82% rename from packages/store/vitest.config.ts rename to packages/kernel-store/vitest.config.ts index e051af3d4..a4a97ab83 100644 --- a/packages/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 6ca98d1ae..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/kernel": "workspace:^", - "@ocap/nodejs": "workspace:^", - "@ocap/shims": "workspace:^", - "@ocap/store": "workspace:^", - "@ocap/streams": "workspace:^", - "@ocap/utils": "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 0ac41058a..a9004f64a 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 '@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'; +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..606fffe89 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 '@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'; +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..38171b58c 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 '@metamask/kernel-shims/endoify'; +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..e1d9d149f 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 '@metamask/kernel-shims/endoify'; +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..c055f42fc 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 '@metamask/kernel-shims/endoify'; +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..5dda1ebbe 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 { NodeWorkerDuplexStream } from '@metamask/streams'; 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..94666a3d2 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 '@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'; 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 81% rename from packages/utils/package.json rename to packages/kernel-utils/package.json index 0cc91d19c..385ad69b4 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", @@ -54,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", @@ -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 98% rename from packages/utils/src/stringify.test.ts rename to packages/kernel-utils/src/stringify.test.ts index b1a65f7bf..07f44d382 100644 --- a/packages/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/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/errors/tsconfig.json b/packages/kernel-utils/tsconfig.json similarity index 76% rename from packages/errors/tsconfig.json rename to packages/kernel-utils/tsconfig.json index a8c318e40..9439a181f 100644 --- a/packages/errors/tsconfig.json +++ b/packages/kernel-utils/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["ES2022"], "types": ["ses", "vitest"] }, - "references": [{ "path": "../test-utils" }, { "path": "../utils" }], + "references": [{ "path": "../kernel-errors" }, { "path": "../test-utils" }], "include": [ "../../vitest.config.ts", "./src", 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/kernel/README.md b/packages/kernel/README.md deleted file mode 100644 index fd1a5cbfc..000000000 --- a/packages/kernel/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# `@ocap/kernel` - -OCap kernel core components - -## 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/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..ef20c49d6 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": { + "@metamask/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/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 8519468aa..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/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/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 137fdad79..3032994e1 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 '@metamask/kernel-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'; @@ -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 6cc36107a..2abbb2aa1 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 { 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 { 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 '@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.test.ts b/packages/nodejs/src/kernel/make-kernel.test.ts index 53bce936a..972e6c835 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 '@metamask/kernel-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..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 { Kernel } from '@ocap/kernel'; -import { makeSQLKernelDatabase } from '@ocap/store/sqlite/nodejs'; -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 9d6c77828..1bb5ecb51 100644 --- a/packages/nodejs/src/vat/streams.ts +++ b/packages/nodejs/src/vat/streams.ts @@ -1,6 +1,6 @@ -import { NodeWorkerDuplexStream } from '@ocap/streams'; -import { isJsonRpcMessage } from '@ocap/utils'; -import type { JsonRpcMessage } from '@ocap/utils'; +import { isJsonRpcMessage } from '@metamask/kernel-utils'; +import type { JsonRpcMessage } from '@metamask/kernel-utils'; +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/src/vat/vat-worker.ts b/packages/nodejs/src/vat/vat-worker.ts index 5a5339c8d..a2bcf730d 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 '@metamask/kernel-shims/endoify'; -import type { VatId } from '@ocap/kernel'; -import { VatSupervisor } from '@ocap/kernel'; -import { Logger } from '@ocap/logger'; +import { Logger } from '@metamask/logger'; +import type { VatId } from '@metamask/ocap-kernel'; +import { VatSupervisor } from '@metamask/ocap-kernel'; 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..95d538c55 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 '@metamask/kernel-shims/endoify'; -import type { VatId } from '@ocap/kernel'; -import { NodeWorkerDuplexStream } from '@ocap/streams'; -import { makeCounter } from '@ocap/utils'; +import { makeCounter } from '@metamask/kernel-utils'; +import type { VatId } from '@metamask/ocap-kernel'; +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/nodejs/test/e2e/kernel-worker.test.ts b/packages/nodejs/test/e2e/kernel-worker.test.ts index 59e09f8e8..27d65512f 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 '@metamask/kernel-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..e3cfe8730 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 '@metamask/kernel-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/rpc-methods/README.md b/packages/ocap-kernel/README.md similarity index 60% rename from packages/rpc-methods/README.md rename to packages/ocap-kernel/README.md index 188b469e8..473a5e2ea 100644 --- a/packages/rpc-methods/README.md +++ b/packages/ocap-kernel/README.md @@ -1,14 +1,14 @@ -# `@ocap/rpc-methods` +# `@metamask/ocap-kernel` -Utilities for implementing JSON-RPC methods +Ocap Kernel core components. ## Installation -`yarn add @ocap/rpc-methods` +`yarn add @metamask/ocap-kernel` or -`npm install @ocap/rpc-methods` +`npm install @metamask/ocap-kernel` ## Contributing diff --git a/packages/kernel/package.json b/packages/ocap-kernel/package.json similarity index 78% rename from packages/kernel/package.json rename to packages/ocap-kernel/package.json index 22c55d7ff..147012e15 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-errors": "workspace:^", + "@metamask/kernel-rpc-methods": "workspace:^", + "@metamask/kernel-store": "workspace:^", + "@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/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 98% rename from packages/kernel/src/Kernel.test.ts rename to packages/ocap-kernel/src/Kernel.test.ts index 8601f738d..5cbfd3b90 100644 --- a/packages/kernel/src/Kernel.test.ts +++ b/packages/ocap-kernel/src/Kernel.test.ts @@ -1,9 +1,9 @@ +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 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 97% rename from packages/kernel/src/Kernel.ts rename to packages/ocap-kernel/src/Kernel.ts index 394c9ee11..1a7752c28 100644 --- a/packages/kernel/src/Kernel.ts +++ b/packages/ocap-kernel/src/Kernel.ts @@ -1,18 +1,21 @@ import type { CapData } from '@endo/marshal'; -import { serializeError } from '@metamask/rpc-errors'; -import { hasProperty } from '@metamask/utils'; -import type { JsonRpcResponse } from '@metamask/utils'; import { StreamReadError, 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 { KernelDatabase } from '@ocap/store'; -import type { DuplexStream } from '@ocap/streams'; -import type { JsonRpcCall } from '@ocap/utils'; +} 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'; +import { serializeError } from '@metamask/rpc-errors'; +import type { DuplexStream } from '@metamask/streams'; +import { hasProperty } from '@metamask/utils'; +import type { JsonRpcResponse } from '@metamask/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 95% rename from packages/kernel/src/VatHandle.test.ts rename to packages/ocap-kernel/src/VatHandle.test.ts index 82d0cc069..ec4091ffa 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 { 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 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 95% rename from packages/kernel/src/VatHandle.ts rename to packages/ocap-kernel/src/VatHandle.ts index 19f468274..349947cf2 100644 --- a/packages/kernel/src/VatHandle.ts +++ b/packages/ocap-kernel/src/VatHandle.ts @@ -2,15 +2,18 @@ import type { VatOneResolution, 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 { 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 95% rename from packages/kernel/src/VatSupervisor.ts rename to packages/ocap-kernel/src/VatSupervisor.ts index c6086cb1a..e65cea95c 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 { 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 { 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 99% rename from packages/kernel/src/VatSyscall.test.ts rename to packages/ocap-kernel/src/VatSyscall.test.ts index 2392a62ef..652dc3a5d 100644 --- a/packages/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/kernel/src/VatSyscall.ts b/packages/ocap-kernel/src/VatSyscall.ts similarity index 99% rename from packages/kernel/src/VatSyscall.ts rename to packages/ocap-kernel/src/VatSyscall.ts index 646a46490..c8a4bf407 100644 --- a/packages/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/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 93% rename from packages/kernel/src/rpc/kernel/index.ts rename to packages/ocap-kernel/src/rpc/kernel/index.ts index 4b2b223fd..c989c13b8 100644 --- a/packages/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/kernel/src/rpc/vat-syscall/index.ts b/packages/ocap-kernel/src/rpc/vat-syscall/index.ts similarity index 82% rename from packages/kernel/src/rpc/vat-syscall/index.ts rename to packages/ocap-kernel/src/rpc/vat-syscall/index.ts index 7551bfa4b..b333ea37e 100644 --- a/packages/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/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 97% rename from packages/kernel/src/rpc/vat-syscall/vat-syscall.ts rename to packages/ocap-kernel/src/rpc/vat-syscall/vat-syscall.ts index 7b667f82d..1106c2962 100644 --- a/packages/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/kernel/src/rpc/vat-worker-service/index.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/index.ts similarity index 91% rename from packages/kernel/src/rpc/vat-worker-service/index.ts rename to packages/ocap-kernel/src/rpc/vat-worker-service/index.ts index e6e99bb7f..eb1dc37f7 100644 --- a/packages/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/kernel/src/rpc/vat-worker-service/launch.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts similarity index 87% rename from packages/kernel/src/rpc/vat-worker-service/launch.ts rename to packages/ocap-kernel/src/rpc/vat-worker-service/launch.ts index 5c5f65e13..65f052d32 100644 --- a/packages/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/kernel/src/rpc/vat-worker-service/terminate.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts similarity index 83% rename from packages/kernel/src/rpc/vat-worker-service/terminate.ts rename to packages/ocap-kernel/src/rpc/vat-worker-service/terminate.ts index 5bbc1dd2a..117850ac0 100644 --- a/packages/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/kernel/src/rpc/vat-worker-service/terminateAll.ts b/packages/ocap-kernel/src/rpc/vat-worker-service/terminateAll.ts similarity index 67% 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..fdf5f794b 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 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'; -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 94% rename from packages/kernel/src/rpc/vat/deliver.ts rename to packages/ocap-kernel/src/rpc/vat/deliver.ts index 4e94c363e..1893430ff 100644 --- a/packages/kernel/src/rpc/vat/deliver.ts +++ b/packages/ocap-kernel/src/rpc/vat/deliver.ts @@ -1,3 +1,5 @@ +import type { Handler, MethodSpec } from '@metamask/kernel-rpc-methods'; +import type { VatCheckpoint } from '@metamask/kernel-store'; import { tuple, literal, @@ -8,8 +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 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 95% rename from packages/kernel/src/rpc/vat/index.ts rename to packages/ocap-kernel/src/rpc/vat/index.ts index c66bfab8f..319e10e13 100644 --- a/packages/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/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 89% rename from packages/kernel/src/rpc/vat/initVat.ts rename to packages/ocap-kernel/src/rpc/vat/initVat.ts index d5e304d0d..2e76f02fd 100644 --- a/packages/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 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 78% rename from packages/kernel/src/rpc/vat/ping.ts rename to packages/ocap-kernel/src/rpc/vat/ping.ts index 0f0ff3555..8b4373858 100644 --- a/packages/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'; -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 98% rename from packages/kernel/src/types.ts rename to packages/ocap-kernel/src/types.ts index 4f317c8f4..6372cc0d0 100644 --- a/packages/kernel/src/types.ts +++ b/packages/ocap-kernel/src/types.ts @@ -4,6 +4,8 @@ import type { VatSyscallSend, } 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, @@ -20,8 +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 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 56% rename from packages/kernel/tsconfig.build.json rename to packages/ocap-kernel/tsconfig.build.json index dab88e388..07297b5a7 100644 --- a/packages/kernel/tsconfig.build.json +++ b/packages/ocap-kernel/tsconfig.build.json @@ -8,11 +8,11 @@ "types": ["ses"] }, "references": [ - { "path": "../errors/tsconfig.build.json" }, - { "path": "../rpc-methods/tsconfig.build.json" }, + { "path": "../kernel-errors/tsconfig.build.json" }, + { "path": "../kernel-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 66% rename from packages/kernel/tsconfig.json rename to packages/ocap-kernel/tsconfig.json index 7e6af317d..27e3b4cd8 100644 --- a/packages/kernel/tsconfig.json +++ b/packages/ocap-kernel/tsconfig.json @@ -4,12 +4,12 @@ "baseUrl": "./" }, "references": [ - { "path": "../errors" }, + { "path": "../kernel-errors" }, { "path": "../logger" }, - { "path": "../rpc-methods" }, - { "path": "../store" }, + { "path": "../kernel-rpc-methods" }, + { "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/shims/typedoc.json b/packages/ocap-kernel/typedoc.json similarity index 100% rename from packages/shims/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 82% rename from packages/kernel/vitest.config.ts rename to packages/ocap-kernel/vitest.config.ts index 7441c8986..4d6787e6c 100644 --- a/packages/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/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 5313ea6fc..1234652d8 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", @@ -59,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:^", - "@ocap/utils": "workspace:^" + "@metamask/utils": "^11.4.0" }, "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", @@ -102,5 +112,9 @@ }, "engines": { "node": "^20 || >=22" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" } } 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..049390189 100644 --- a/packages/streams/src/utils.ts +++ b/packages/streams/src/utils.ts @@ -1,4 +1,10 @@ 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'; import { @@ -7,8 +13,6 @@ import { object, 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..c1d26c3e0 100644 --- a/packages/streams/tsconfig.build.json +++ b/packages/streams/tsconfig.build.json @@ -8,8 +8,8 @@ "types": ["ses"] }, "references": [ - { "path": "../utils/tsconfig.build.json" }, - { "path": "../errors/tsconfig.build.json" } + { "path": "../kernel-utils/tsconfig.build.json" }, + { "path": "../kernel-errors/tsconfig.build.json" } ], "include": ["./src"] } diff --git a/packages/streams/tsconfig.json b/packages/streams/tsconfig.json index 68c0de5fe..42e061bc7 100644 --- a/packages/streams/tsconfig.json +++ b/packages/streams/tsconfig.json @@ -6,9 +6,9 @@ "types": ["ses", "vitest", "@vitest/browser/providers/playwright"] }, "references": [ - { "path": "../errors" }, + { "path": "../kernel-errors" }, { "path": "../test-utils" }, - { "path": "../utils" } + { "path": "../kernel-utils" } ], "include": [ "../../vitest.config.ts", 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/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..779df5993 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -3,14 +3,14 @@ "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/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-rpc-methods/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..13ab70057 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,17 +15,17 @@ "references": [ { "path": "./packages/cli" }, { "path": "./packages/create-package" }, - { "path": "./packages/errors" }, + { "path": "./packages/kernel-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-rpc-methods" }, + { "path": "./packages/kernel-shims" }, + { "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..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 }), }, ], @@ -88,16 +91,16 @@ export default defineConfig({ branches: 77.4, lines: 82.5, }, - 'packages/kernel/**': { + 'packages/ocap-kernel/**': { statements: 90.43, functions: 92.18, branches: 79.89, lines: 90.41, }, 'packages/logger/**': { - statements: 100, - functions: 100, - branches: 100, + statements: 97.29, + functions: 92.3, + branches: 95.45, lines: 100, }, 'packages/nodejs/**': { @@ -106,19 +109,19 @@ export default defineConfig({ branches: 63.63, lines: 72.91, }, - 'packages/rpc-methods/**': { + 'packages/kernel-rpc-methods/**': { statements: 100, functions: 100, branches: 100, lines: 100, }, - 'packages/shims/**': { + 'packages/kernel-shims/**': { statements: 0, functions: 0, branches: 0, lines: 0, }, - 'packages/store/**': { + 'packages/kernel-store/**': { statements: 92.44, functions: 91.17, branches: 84.78, @@ -130,7 +133,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..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. @@ -73,7 +75,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 +110,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. + 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'); - // 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 +154,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 +429,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 +504,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..4b01c8500 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1955,6 +1955,207 @@ __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-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-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" + 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/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/kernel-errors": "workspace:^" + "@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" + "@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" @@ -1968,6 +2169,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" + "@metamask/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" @@ -1988,31 +2226,82 @@ __metadata: languageName: node linkType: hard -"@metamask/permission-controller@npm:^11.0.6": - version: 11.0.6 - resolution: "@metamask/permission-controller@npm:11.0.6" +"@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: - "@metamask/base-controller": "npm:^8.0.0" - "@metamask/controller-utils": "npm:^11.5.0" - "@metamask/json-rpc-engine": "npm:^10.0.3" + "@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-errors": "workspace:^" + "@metamask/kernel-rpc-methods": "workspace:^" + "@metamask/kernel-store": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/utils": "npm:^11.1.0" - "@types/deep-freeze-strict": "npm:^1.1.0" - deep-freeze-strict: "npm:^1.1.1" - immer: "npm:^9.0.6" - nanoid: "npm:^3.3.8" - peerDependencies: - "@metamask/approval-controller": ^7.0.0 - checksum: 10/d1497033738a2c4d84cf5d884e4eea65593d08539cc0592429db101852d11c46fd9a0a7ae1649daee2f01148a15bcdfda77ce4e300a3a9e2c7955dcca6142f9f - languageName: node - linkType: hard - -"@metamask/providers@npm:^21.0.0": - version: 21.0.0 - resolution: "@metamask/providers@npm:21.0.0" - dependencies: - "@metamask/json-rpc-engine": "npm:^10.0.2" - "@metamask/json-rpc-middleware-stream": "npm:^8.0.6" + "@metamask/streams": "workspace:^" + "@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" + "@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" + dependencies: + "@metamask/base-controller": "npm:^8.0.0" + "@metamask/controller-utils": "npm:^11.5.0" + "@metamask/json-rpc-engine": "npm:^10.0.3" + "@metamask/rpc-errors": "npm:^7.0.2" + "@metamask/utils": "npm:^11.1.0" + "@types/deep-freeze-strict": "npm:^1.1.0" + deep-freeze-strict: "npm:^1.1.1" + immer: "npm:^9.0.6" + nanoid: "npm:^3.3.8" + peerDependencies: + "@metamask/approval-controller": ^7.0.0 + checksum: 10/d1497033738a2c4d84cf5d884e4eea65593d08539cc0592429db101852d11c46fd9a0a7ae1649daee2f01148a15bcdfda77ce4e300a3a9e2c7955dcca6142f9f + languageName: node + linkType: hard + +"@metamask/providers@npm:^21.0.0": + version: 21.0.0 + resolution: "@metamask/providers@npm:21.0.0" + dependencies: + "@metamask/json-rpc-engine": "npm:^10.0.2" + "@metamask/json-rpc-middleware-stream": "npm:^8.0.6" "@metamask/object-multiplex": "npm:^2.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/safe-event-emitter": "npm:^3.1.1" @@ -2119,6 +2408,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-errors": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@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" + "@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" @@ -2385,346 +2721,41 @@ __metadata: "@npmcli/package-json": "npm:^5.0.0" "@npmcli/promise-spawn": "npm:^7.0.0" node-gyp: "npm:^10.0.0" - proc-log: "npm:^4.0.0" - which: "npm:^4.0.0" - checksum: 10/256bd580f82b98db93e54065bf9bcc94946be4f2d668a062cf756cb8ea091f58ef7154b3d2450d79738081a150f25cc48f6075351911e672f24ffd34350f02f2 - languageName: node - linkType: hard - -"@ocap/brow-2-brow@workspace:packages/brow-2-brow": - version: 0.0.0-use.local - resolution: "@ocap/brow-2-brow@workspace:packages/brow-2-brow" - dependencies: - "@chainsafe/libp2p-noise": "npm:^16.1.3" - "@chainsafe/libp2p-yamux": "npm:^6.0.2" - "@libp2p/autonat": "npm:^2.0.30" - "@libp2p/bootstrap": "npm:^11.0.35" - "@libp2p/circuit-relay-v2": "npm:^3.2.11" - "@libp2p/crypto": "npm:^5.1.1" - "@libp2p/identify": "npm:^3.0.29" - "@libp2p/interface": "npm:^2.9.0" - "@libp2p/peer-id": "npm:^5.1.2" - "@libp2p/tcp": "npm:^10.1.10" - "@libp2p/webrtc": "npm:^5.2.12" - "@libp2p/websockets": "npm:^9.2.10" - "@libp2p/webtransport": "npm:^5.0.40" - "@multiformats/multiaddr": "npm:^12.3.0" - "@multiformats/multiaddr-matcher": "npm:^1.2.4" - "@ocap/test-utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@types/node": "npm:^22.13.1" - "@types/web": "npm:^0" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - depcheck: "npm:^1.4.7" - esbuild: "npm:^0.25.3" - 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" - it-byte-stream: "npm:^2.0.1" - libp2p: "npm:^2.8.5" - 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" - uint8arrays: "npm:^5.1.0" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - -"@ocap/cli@workspace:^, @ocap/cli@workspace:packages/cli": - version: 0.0.0-use.local - resolution: "@ocap/cli@workspace:packages/cli" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@endo/bundle-source": "npm:^4.0.0" - "@endo/init": "npm:^1.1.6" - "@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/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" - "@types/serve-handler": "npm:^6" - "@types/yargs": "npm:^17.0.33" - "@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" - chokidar: "npm:^4.0.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" - glob: "npm:^11.0.0" - jsdom: "npm:^26.0.0" - prettier: "npm:^3.5.3" - rimraf: "npm:^6.0.1" - serve-handler: "npm:^6.1.6" - 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" - yargs: "npm:^17.7.2" - bin: - ocap: ./dist/app.mjs - languageName: unknown - linkType: soft - -"@ocap/create-package@workspace:packages/create-package": - version: 0.0.0-use.local - resolution: "@ocap/create-package@workspace:packages/create-package" - 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/utils": "npm:^11.4.0" - "@ocap/test-utils": "workspace:^" - "@ts-bridge/cli": "npm:^0.6.3" - "@ts-bridge/shims": "npm:^0.1.1" - "@types/node": "npm:^22.13.1" - "@types/yargs": "npm:^17.0.33" - "@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" - execa: "npm:^9.5.2" - 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" - yargs: "npm:^17.7.2" - 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" - dependencies: - "@arethetypeswrong/cli": "npm:^0.17.4" - "@endo/eventual-send": "npm:^1.3.1" - "@endo/marshal": "npm:^1.6.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/json-rpc-engine": "npm:^10.0.3" - "@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" - "@testing-library/react": "npm:^16.3.0" - "@testing-library/user-event": "npm:^14.6.1" - "@types/chrome": "npm:^0.0.313" - "@types/react": "npm:^18.3.1" - "@types/react-dom": "npm:^18.3.1" - "@typescript-eslint/eslint-plugin": "npm:^8.29.0" - "@typescript-eslint/parser": "npm:^8.29.0" - "@typescript-eslint/utils": "npm:^8.29.0" - "@vitejs/plugin-react": "npm:^4.3.4" - "@vitest/eslint-plugin": "npm:^1.1.39" - cheerio: "npm:^1.0.0" - 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" - nanoid: "npm:^5.1.5" - playwright: "npm:^1.51.1" - prettier: "npm:^3.5.3" - react: "npm:^18.3.1" - react-dom: "npm:^18.3.1" - rimraf: "npm:^6.0.1" - rollup: "npm:^4.39.0" - rollup-plugin-sourcemaps2: "npm:^0.5.0" - ses: "npm:^1.12.0" - typedoc: "npm:^0.28.1" - typescript: "npm:~5.8.2" - typescript-eslint: "npm:^8.29.0" - typescript-plugin-css-modules: "npm:^5.1.0" - vite: "npm:^6.2.5" - vite-plugin-checker: "npm:^0.9.1" - vite-plugin-static-copy: "npm:^2.3.0" - vitest: "npm:^3.1.1" - languageName: unknown - linkType: soft - -"@ocap/kernel-test@workspace:packages/kernel-test": - version: 0.0.0-use.local - resolution: "@ocap/kernel-test@workspace:packages/kernel-test" - dependencies: - "@agoric/store": "npm:0.9.3-u19.0" - "@arethetypeswrong/cli": "npm:^0.17.4" - "@endo/eventual-send": "npm:^1.3.1" - "@endo/exo": "npm:^1.5.9" - "@endo/marshal": "npm:^1.6.4" - "@endo/patterns": "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/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" - "@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" - 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 + proc-log: "npm:^4.0.0" + which: "npm:^4.0.0" + checksum: 10/256bd580f82b98db93e54065bf9bcc94946be4f2d668a062cf756cb8ea091f58ef7154b3d2450d79738081a150f25cc48f6075351911e672f24ffd34350f02f2 + languageName: node + linkType: hard -"@ocap/kernel@workspace:^, @ocap/kernel@workspace:packages/kernel": +"@ocap/brow-2-brow@workspace:packages/brow-2-brow": version: 0.0.0-use.local - resolution: "@ocap/kernel@workspace:packages/kernel" + resolution: "@ocap/brow-2-brow@workspace:packages/brow-2-brow" 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:^" + "@chainsafe/libp2p-noise": "npm:^16.1.3" + "@chainsafe/libp2p-yamux": "npm:^6.0.2" + "@libp2p/autonat": "npm:^2.0.30" + "@libp2p/bootstrap": "npm:^11.0.35" + "@libp2p/circuit-relay-v2": "npm:^3.2.11" + "@libp2p/crypto": "npm:^5.1.1" + "@libp2p/identify": "npm:^3.0.29" + "@libp2p/interface": "npm:^2.9.0" + "@libp2p/peer-id": "npm:^5.1.2" + "@libp2p/tcp": "npm:^10.1.10" + "@libp2p/webrtc": "npm:^5.2.12" + "@libp2p/websockets": "npm:^9.2.10" + "@libp2p/webtransport": "npm:^5.0.40" + "@multiformats/multiaddr": "npm:^12.3.0" + "@multiformats/multiaddr-matcher": "npm:^1.2.4" "@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" + "@types/node": "npm:^22.13.1" + "@types/web": "npm:^0" + "@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" + esbuild: "npm:^0.25.3" eslint: "npm:^9.23.0" eslint-config-prettier: "npm:^10.1.1" eslint-import-resolver-typescript: "npm:^4.3.1" @@ -2733,34 +2764,46 @@ __metadata: eslint-plugin-n: "npm:^17.17.0" eslint-plugin-prettier: "npm:^5.2.6" eslint-plugin-promise: "npm:^7.2.1" + it-byte-stream: "npm:^2.0.1" + libp2p: "npm:^2.8.5" 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" + uint8arrays: "npm:^5.1.0" vitest: "npm:^3.1.1" languageName: unknown linkType: soft -"@ocap/logger@workspace:^, @ocap/logger@workspace:packages/logger": +"@ocap/cli@workspace:^, @ocap/cli@workspace:packages/cli": version: 0.0.0-use.local - resolution: "@ocap/logger@workspace:packages/logger" + resolution: "@ocap/cli@workspace:packages/cli" dependencies: "@arethetypeswrong/cli": "npm:^0.17.4" + "@endo/bundle-source": "npm:^4.0.0" + "@endo/init": "npm:^1.1.6" + "@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" - "@ocap/streams": "workspace:^" + "@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/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" + "@types/node": "npm:^22.13.1" + "@types/serve-handler": "npm:^6" + "@types/yargs": "npm:^17.0.33" "@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" + chokidar: "npm:^4.0.1" depcheck: "npm:^1.4.7" eslint: "npm:^9.23.0" eslint-config-prettier: "npm:^10.1.1" @@ -2770,43 +2813,42 @@ __metadata: eslint-plugin-n: "npm:^17.17.0" eslint-plugin-prettier: "npm:^5.2.6" eslint-plugin-promise: "npm:^7.2.1" + glob: "npm:^11.0.0" + jsdom: "npm:^26.0.0" prettier: "npm:^3.5.3" rimraf: "npm:^6.0.1" + serve-handler: "npm:^6.1.6" 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" + yargs: "npm:^17.7.2" + bin: + ocap: ./dist/app.mjs languageName: unknown linkType: soft -"@ocap/monorepo@workspace:.": +"@ocap/create-package@workspace:packages/create-package": version: 0.0.0-use.local - resolution: "@ocap/monorepo@workspace:." + resolution: "@ocap/create-package@workspace:packages/create-package" dependencies: - "@agoric/internal": "npm:0.4.0-u18.1" "@arethetypeswrong/cli": "npm:^0.17.4" - "@lavamoat/allow-scripts": "npm:^3.3.2" - "@lavamoat/preinstall-always-fail": "npm:^2.1.0" "@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/eslint-config-vitest": "npm:^1.0.0" - "@ocap/cli": "workspace:^" + "@metamask/utils": "npm:^11.4.0" + "@ocap/test-utils": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" - "@types/lodash": "npm:^4.17.16" "@types/node": "npm:^22.13.1" - "@types/setimmediate": "npm:^1.0.4" - "@types/webextension-polyfill": "npm:^0" + "@types/yargs": "npm:^17.0.33" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" "@typescript-eslint/parser": "npm:^8.29.0" "@typescript-eslint/utils": "npm:^8.29.0" - "@vitest/coverage-istanbul": "npm:^3.1.1" "@vitest/eslint-plugin": "npm:^1.1.39" - "@yarnpkg/types": "npm:^4.0.1" depcheck: "npm:^1.4.7" eslint: "npm:^9.23.0" eslint-config-prettier: "npm:^10.1.1" @@ -2816,52 +2858,58 @@ __metadata: eslint-plugin-n: "npm:^17.17.0" eslint-plugin-prettier: "npm:^5.2.6" eslint-plugin-promise: "npm:^7.2.1" - eslint-plugin-react: "npm:^7.37.5" - eslint-plugin-react-hooks: "npm:^5.2.0" - globals: "npm:^16.0.0" - lint-staged: "npm:^15.5.0" - lodash: "npm:^4.17.21" + execa: "npm:^9.5.2" prettier: "npm:^3.5.3" - prettier-plugin-packagejson: "npm:^2.5.10" rimraf: "npm:^6.0.1" - semver: "npm:^7.7.1" - simple-git-hooks: "npm:^2.12.1" typedoc: "npm:^0.28.1" typescript: "npm:~5.8.2" typescript-eslint: "npm:^8.29.0" vite: "npm:^6.2.5" - vite-tsconfig-paths: "npm:^5.1.4" vitest: "npm:^3.1.1" - vitest-fetch-mock: "npm:^0.4.5" + yargs: "npm:^17.7.2" languageName: unknown linkType: soft -"@ocap/nodejs@workspace:^, @ocap/nodejs@workspace:packages/nodejs": +"@ocap/extension@workspace:packages/extension": version: 0.0.0-use.local - resolution: "@ocap/nodejs@workspace:packages/nodejs" + resolution: "@ocap/extension@workspace:packages/extension" dependencies: "@arethetypeswrong/cli": "npm:^0.17.4" - "@endo/promise-kit": "npm:^1.1.10" + "@endo/eventual-send": "npm:^1.3.1" + "@endo/marshal": "npm:^1.6.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/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:^" + "@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/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" + "@playwright/test": "npm:^1.51.1" + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/jest-dom": "npm:^6.6.3" + "@testing-library/react": "npm:^16.3.0" + "@testing-library/user-event": "npm:^14.6.1" + "@types/chrome": "npm:^0.0.313" + "@types/react": "npm:^18.3.1" + "@types/react-dom": "npm:^18.3.1" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" "@typescript-eslint/parser": "npm:^8.29.0" "@typescript-eslint/utils": "npm:^8.29.0" + "@vitejs/plugin-react": "npm:^4.3.4" "@vitest/eslint-plugin": "npm:^1.1.39" + cheerio: "npm:^1.0.0" depcheck: "npm:^1.4.7" eslint: "npm:^9.23.0" eslint-config-prettier: "npm:^10.1.1" @@ -2871,34 +2919,50 @@ __metadata: eslint-plugin-n: "npm:^17.17.0" eslint-plugin-prettier: "npm:^5.2.6" eslint-plugin-promise: "npm:^7.2.1" - node-gyp: "npm:^11.2.0" + jsdom: "npm:^26.0.0" + nanoid: "npm:^5.1.5" + playwright: "npm:^1.51.1" prettier: "npm:^3.5.3" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" rimraf: "npm:^6.0.1" + rollup: "npm:^4.39.0" + rollup-plugin-sourcemaps2: "npm:^0.5.0" ses: "npm:^1.12.0" typedoc: "npm:^0.28.1" typescript: "npm:~5.8.2" typescript-eslint: "npm:^8.29.0" + typescript-plugin-css-modules: "npm:^5.1.0" vite: "npm:^6.2.5" + vite-plugin-checker: "npm:^0.9.1" + vite-plugin-static-copy: "npm:^2.3.0" vitest: "npm:^3.1.1" languageName: unknown linkType: soft -"@ocap/rpc-methods@workspace:^, @ocap/rpc-methods@workspace:packages/rpc-methods": +"@ocap/kernel-test@workspace:packages/kernel-test": version: 0.0.0-use.local - resolution: "@ocap/rpc-methods@workspace:packages/rpc-methods" + resolution: "@ocap/kernel-test@workspace:packages/kernel-test" dependencies: + "@agoric/store": "npm:0.9.3-u19.0" "@arethetypeswrong/cli": "npm:^0.17.4" + "@endo/eventual-send": "npm:^1.3.1" + "@endo/exo": "npm:^1.5.9" + "@endo/marshal": "npm:^1.6.4" + "@endo/patterns": "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/kernel-shims": "workspace:^" + "@metamask/kernel-store": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@metamask/ocap-kernel": "workspace:^" + "@metamask/streams": "workspace:^" "@metamask/utils": "npm:^11.4.0" - "@ocap/logger": "workspace:^" - "@ocap/test-utils": "workspace:^" - "@ocap/utils": "workspace:^" + "@ocap/cli": "workspace:^" + "@ocap/nodejs": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" @@ -2914,6 +2978,7 @@ __metadata: 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" typedoc: "npm:^0.28.1" @@ -2924,62 +2989,32 @@ __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/store@workspace:^, @ocap/store@workspace:packages/store": +"@ocap/monorepo@workspace:.": version: 0.0.0-use.local - resolution: "@ocap/store@workspace:packages/store" + resolution: "@ocap/monorepo@workspace:." dependencies: + "@agoric/internal": "npm:0.4.0-u18.1" "@arethetypeswrong/cli": "npm:^0.17.4" + "@lavamoat/allow-scripts": "npm:^3.3.2" + "@lavamoat/preinstall-always-fail": "npm:^2.1.0" "@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" + "@metamask/eslint-config-vitest": "npm:^1.0.0" + "@ocap/cli": "workspace:^" "@ts-bridge/cli": "npm:^0.6.3" "@ts-bridge/shims": "npm:^0.1.1" - "@types/better-sqlite3": "npm:^7.6.12" + "@types/lodash": "npm:^4.17.16" + "@types/node": "npm:^22.13.1" + "@types/setimmediate": "npm:^1.0.4" + "@types/webextension-polyfill": "npm:^0" "@typescript-eslint/eslint-plugin": "npm:^8.29.0" "@typescript-eslint/parser": "npm:^8.29.0" "@typescript-eslint/utils": "npm:^8.29.0" + "@vitest/coverage-istanbul": "npm:^3.1.1" "@vitest/eslint-plugin": "npm:^1.1.39" - better-sqlite3: "npm:^11.9.1" + "@yarnpkg/types": "npm:^4.0.1" depcheck: "npm:^1.4.7" eslint: "npm:^9.23.0" eslint-config-prettier: "npm:^10.1.1" @@ -2989,43 +3024,52 @@ __metadata: eslint-plugin-n: "npm:^17.17.0" eslint-plugin-prettier: "npm:^5.2.6" eslint-plugin-promise: "npm:^7.2.1" + eslint-plugin-react: "npm:^7.37.5" + eslint-plugin-react-hooks: "npm:^5.2.0" + globals: "npm:^16.0.0" + lint-staged: "npm:^15.5.0" + lodash: "npm:^4.17.21" prettier: "npm:^3.5.3" + prettier-plugin-packagejson: "npm:^2.5.10" rimraf: "npm:^6.0.1" - ses: "npm:^1.12.0" + semver: "npm:^7.7.1" + simple-git-hooks: "npm:^2.12.1" typedoc: "npm:^0.28.1" typescript: "npm:~5.8.2" typescript-eslint: "npm:^8.29.0" vite: "npm:^6.2.5" + vite-tsconfig-paths: "npm:^5.1.4" vitest: "npm:^3.1.1" + vitest-fetch-mock: "npm:^0.4.5" languageName: unknown linkType: soft -"@ocap/streams@workspace:^, @ocap/streams@workspace:packages/streams": +"@ocap/nodejs@workspace:^, @ocap/nodejs@workspace:packages/nodejs": version: 0.0.0-use.local - resolution: "@ocap/streams@workspace:packages/streams" + resolution: "@ocap/nodejs@workspace:packages/nodejs" 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/superstruct": "npm:^3.2.1" + "@metamask/kernel-shims": "workspace:^" + "@metamask/kernel-store": "workspace:^" + "@metamask/kernel-utils": "workspace:^" + "@metamask/logger": "workspace:^" + "@metamask/ocap-kernel": "workspace:^" + "@metamask/streams": "workspace:^" "@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" + "@types/node": "npm:^22.13.1" "@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" @@ -3035,7 +3079,7 @@ __metadata: 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" + node-gyp: "npm:^11.2.0" prettier: "npm:^3.5.3" rimraf: "npm:^6.0.1" ses: "npm:^1.12.0" @@ -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"