From b09cde814d82ee8a2280affd74b048848f33710f Mon Sep 17 00:00:00 2001 From: Bingbing Date: Tue, 2 Jun 2026 17:49:10 +0800 Subject: [PATCH] refactor: extract insomnia-data into workspace package (#10010) Move insomnia-data models, services, database code, and common utilities into a dedicated workspace package. Update consumers to import from the new package entrypoints and declare workspace dependencies for the extracted package. --- AGENTS.md | 3 +- DEVELOPMENT.md | 2 +- eslint.config.mjs | 7 +-- package-lock.json | 23 +++++++- package.json | 1 + .../src => }/insomnia-data/README.md | 0 .../src => insomnia-data}/__mocks__/uuid.ts | 0 .../__tests__/git-credentials.test.ts | 0 .../__tests__/grpc-request-meta.test.ts | 0 .../__tests__/grpc-request.test.ts | 0 .../insomnia-data/__tests__/index.test.ts | 0 .../__tests__/proto-file.test.ts | 0 .../__tests__/request-meta.test.ts | 0 .../insomnia-data/__tests__/request.test.ts | 0 .../insomnia-data/common-src/constants.ts | 0 .../insomnia-data/common-src/hotkeys.ts | 0 .../insomnia-data/common-src/index.ts | 0 .../insomnia-data/common-src/invariant.ts | 0 .../insomnia-data/common-src/keyboard-keys.ts | 0 .../src => }/insomnia-data/common-src/misc.ts | 0 .../insomnia-data/common-src/ndjson.test.ts | 0 .../insomnia-data/common-src/ndjson.ts | 0 .../insomnia-data/common-src/platform.ts | 7 +++ .../insomnia-data/common-src/preview-mode.ts | 0 .../common-src/querystring.test.ts | 0 .../insomnia-data/common-src/querystring.ts | 0 .../insomnia-data/common-src/settings.ts | 0 .../insomnia-data/common-src/strings.ts | 0 .../insomnia-data/common-src/tsconfig.json | 8 +++ .../src => }/insomnia-data/common-src/type.ts | 0 .../node-src/database/database-nedb.ts | 0 .../node-src/database/database.test.ts | 0 .../database/init-model/cookie-jar.ts | 0 .../node-src/database/init-model/index.ts | 0 .../node-src/database/init-model/request.ts | 0 .../database/init-model/response.test.ts | 0 .../node-src/database/init-model/response.ts | 0 .../node-src/database/init-model/settings.ts | 0 .../database/init-model/workspace.test.ts | 0 .../node-src/database/init-model/workspace.ts | 0 .../node-src/database/repair-database.ts | 0 .../src => }/insomnia-data/node-src/index.ts | 0 .../node-src/services/api-spec.ts | 0 .../node-src/services/ca-certificate.ts | 0 .../node-src/services/client-certificate.ts | 0 .../node-src/services/cloud-credential.ts | 0 .../node-src/services/cookie-jar.ts | 0 .../node-src/services/environment.ts | 0 .../node-src/services/git-credentials.ts | 0 .../node-src/services/git-repository.ts | 0 .../node-src/services/grpc-request-meta.ts | 0 .../node-src/services/grpc-request.ts | 0 .../node-src/services/helpers/index.ts | 0 .../helpers/query-all-workspace-urls.test.ts | 0 .../helpers/query-all-workspace-urls.ts | 0 .../services/helpers/request-operations.ts | 0 .../services/helpers/response-operations.ts | 0 .../insomnia-data/node-src/services/index.ts | 0 .../node-src/services/mcp-payload.ts | 0 .../node-src/services/mcp-request.ts | 0 .../node-src/services/mcp-response.ts | 0 .../node-src/services/mock-route.ts | 0 .../node-src/services/mock-server.ts | 0 .../node-src/services/o-auth-2-token.ts | 0 .../node-src/services/organization.ts | 0 .../node-src/services/plugin-data.ts | 0 .../node-src/services/project-lint-ruleset.ts | 0 .../node-src/services/project.ts | 0 .../node-src/services/proto-directory.ts | 0 .../node-src/services/proto-file.ts | 0 .../node-src/services/request-group-meta.ts | 0 .../node-src/services/request-group.ts | 0 .../node-src/services/request-meta.ts | 0 .../node-src/services/request-version.ts | 0 .../node-src/services/request.ts | 0 .../node-src/services/response.ts | 0 .../node-src/services/runner-test-result.ts | 0 .../node-src/services/settings.ts | 0 .../node-src/services/socket-io-payload.ts | 0 .../services/socket-io-request-meta.ts | 0 .../node-src/services/socket-io-request.ts | 0 .../node-src/services/socket-io-response.ts | 0 .../insomnia-data/node-src/services/stats.ts | 0 .../node-src/services/unit-test-result.ts | 0 .../node-src/services/unit-test-suite.ts | 0 .../node-src/services/unit-test.ts | 0 .../node-src/services/user-session.ts | 0 .../node-src/services/websocket-payload.ts | 0 .../services/websocket-request-meta.ts | 0 .../node-src/services/websocket-request.ts | 0 .../node-src/services/websocket-response.ts | 0 .../node-src/services/workspace-meta.ts | 0 .../node-src/services/workspace.ts | 0 packages/insomnia-data/node-src/tsconfig.json | 8 +++ .../insomnia-data/node-src/types.d.ts | 0 packages/insomnia-data/package.json | 49 +++++++++++++++ packages/insomnia-data/setup-vitest.ts | 13 ++++ .../insomnia-data/src/database/index.ts | 0 .../insomnia-data/src/database/types.ts | 0 .../src => }/insomnia-data/src/index.ts | 0 .../insomnia-data/src/models/api-spec.ts | 0 .../insomnia-data/src/models/base-types.ts | 0 .../src/models/ca-certificate.ts | 0 .../src/models/client-certificate.ts | 0 .../src/models/cloud-credential.ts | 0 .../insomnia-data/src/models/cookie-jar.ts | 0 .../insomnia-data/src/models/db-models.ts | 0 .../insomnia-data/src/models/environment.ts | 0 .../src/models/git-credentials.ts | 0 .../src/models/git-repository.ts | 0 .../src/models/grpc-request-meta.ts | 0 .../insomnia-data/src/models/grpc-request.ts | 0 .../insomnia-data/src/models/index.test.ts | 0 .../insomnia-data/src/models/index.ts | 0 .../insomnia-data/src/models/mcp-payload.ts | 0 .../insomnia-data/src/models/mcp-request.ts | 0 .../insomnia-data/src/models/mcp-response.ts | 0 .../insomnia-data/src/models/mock-route.ts | 0 .../insomnia-data/src/models/mock-server.ts | 0 .../src/models/o-auth-2-token.ts | 0 .../insomnia-data/src/models/organization.ts | 0 .../insomnia-data/src/models/plugin-data.ts | 0 .../src/models/project-lint-ruleset.ts | 0 .../insomnia-data/src/models/project.test.ts | 0 .../insomnia-data/src/models/project.ts | 0 .../src/models/proto-directory.ts | 0 .../insomnia-data/src/models/proto-file.ts | 0 .../src/models/request-group-meta.ts | 0 .../insomnia-data/src/models/request-group.ts | 0 .../insomnia-data/src/models/request-meta.ts | 0 .../src/models/request-version.ts | 0 .../insomnia-data/src/models/request.ts | 0 .../insomnia-data/src/models/response.ts | 0 .../src/models/runner-test-result.ts | 0 .../insomnia-data/src/models/settings.ts | 0 .../src/models/socket-io-payload.ts | 0 .../src/models/socket-io-request-meta.ts | 0 .../src/models/socket-io-request.ts | 0 .../src/models/socket-io-response.ts | 0 .../insomnia-data/src/models/stats.ts | 0 .../insomnia-data/src/models/types.ts | 2 +- .../src/models/unit-test-result.ts | 59 +++++++++++++++++++ .../src/models/unit-test-suite.ts | 0 .../insomnia-data/src/models/unit-test.ts | 0 .../insomnia-data/src/models/user-session.ts | 0 .../utils/replace-ids-in-fields.test.ts | 0 .../src/models/utils/replace-ids-in-fields.ts | 0 .../src/models/websocket-payload.ts | 0 .../src/models/websocket-request-meta.ts | 0 .../src/models/websocket-request.ts | 0 .../src/models/websocket-response.ts | 0 .../src/models/workspace-meta.ts | 0 .../insomnia-data/src/models/workspace.ts | 0 .../insomnia-data/src/services/index.test.ts | 2 +- .../insomnia-data/src/services/index.ts | 0 packages/insomnia-data/src/tsconfig.json | 8 +++ packages/insomnia-data/tsconfig.base.json | 22 +++++++ packages/insomnia-data/tsconfig.test.json | 8 +++ packages/insomnia-data/vitest.config.ts | 5 ++ packages/insomnia-inso/tsconfig.json | 4 +- packages/insomnia-inso/vitest.config.ts | 1 - .../tsconfig.json | 4 +- .../vitest.config.ts | 1 - packages/insomnia-testing/src/run/entities.ts | 34 +---------- packages/insomnia-testing/tsconfig.json | 13 ++-- packages/insomnia/package.json | 1 - packages/insomnia/setup-vitest.ts | 3 +- packages/insomnia/src/insomnia-data/common.ts | 1 - packages/insomnia/src/insomnia-data/index.ts | 1 - packages/insomnia/src/insomnia-data/node.ts | 1 - .../src/models/unit-test-result.ts | 27 --------- .../src/konnect/__tests__/sync.test.ts | 3 +- packages/insomnia/tsconfig.json | 4 +- packages/insomnia/vite.config.ts | 1 - packages/insomnia/vitest.config.ts | 1 - 175 files changed, 232 insertions(+), 95 deletions(-) rename packages/{insomnia/src => }/insomnia-data/README.md (100%) rename packages/{insomnia/src => insomnia-data}/__mocks__/uuid.ts (100%) rename packages/{insomnia/src => }/insomnia-data/__tests__/git-credentials.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/__tests__/grpc-request-meta.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/__tests__/grpc-request.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/__tests__/index.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/__tests__/proto-file.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/__tests__/request-meta.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/__tests__/request.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/constants.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/hotkeys.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/invariant.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/keyboard-keys.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/misc.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/ndjson.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/ndjson.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/platform.ts (87%) rename packages/{insomnia/src => }/insomnia-data/common-src/preview-mode.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/querystring.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/querystring.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/settings.ts (100%) rename packages/{insomnia/src => }/insomnia-data/common-src/strings.ts (100%) create mode 100644 packages/insomnia-data/common-src/tsconfig.json rename packages/{insomnia/src => }/insomnia-data/common-src/type.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/database-nedb.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/database.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/cookie-jar.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/response.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/settings.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/workspace.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/init-model/workspace.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/database/repair-database.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/api-spec.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/ca-certificate.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/client-certificate.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/cloud-credential.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/cookie-jar.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/environment.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/git-credentials.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/git-repository.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/grpc-request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/grpc-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/helpers/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/helpers/query-all-workspace-urls.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/helpers/query-all-workspace-urls.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/helpers/request-operations.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/helpers/response-operations.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/mcp-payload.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/mcp-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/mcp-response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/mock-route.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/mock-server.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/o-auth-2-token.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/organization.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/plugin-data.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/project-lint-ruleset.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/project.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/proto-directory.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/proto-file.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/request-group-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/request-group.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/request-version.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/runner-test-result.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/settings.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/socket-io-payload.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/socket-io-request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/socket-io-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/socket-io-response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/stats.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/unit-test-result.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/unit-test-suite.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/unit-test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/user-session.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/websocket-payload.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/websocket-request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/websocket-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/websocket-response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/workspace-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/node-src/services/workspace.ts (100%) create mode 100644 packages/insomnia-data/node-src/tsconfig.json rename packages/{insomnia/src => }/insomnia-data/node-src/types.d.ts (100%) create mode 100644 packages/insomnia-data/package.json create mode 100644 packages/insomnia-data/setup-vitest.ts rename packages/{insomnia/src => }/insomnia-data/src/database/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/database/types.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/api-spec.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/base-types.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/ca-certificate.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/client-certificate.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/cloud-credential.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/cookie-jar.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/db-models.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/environment.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/git-credentials.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/git-repository.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/grpc-request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/grpc-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/index.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/index.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/mcp-payload.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/mcp-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/mcp-response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/mock-route.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/mock-server.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/o-auth-2-token.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/organization.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/plugin-data.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/project-lint-ruleset.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/project.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/project.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/proto-directory.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/proto-file.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/request-group-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/request-group.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/request-version.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/runner-test-result.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/settings.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/socket-io-payload.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/socket-io-request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/socket-io-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/socket-io-response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/stats.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/types.ts (98%) create mode 100644 packages/insomnia-data/src/models/unit-test-result.ts rename packages/{insomnia/src => }/insomnia-data/src/models/unit-test-suite.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/unit-test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/user-session.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/utils/replace-ids-in-fields.test.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/utils/replace-ids-in-fields.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/websocket-payload.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/websocket-request-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/websocket-request.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/websocket-response.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/workspace-meta.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/models/workspace.ts (100%) rename packages/{insomnia/src => }/insomnia-data/src/services/index.test.ts (97%) rename packages/{insomnia/src => }/insomnia-data/src/services/index.ts (100%) create mode 100644 packages/insomnia-data/src/tsconfig.json create mode 100644 packages/insomnia-data/tsconfig.base.json create mode 100644 packages/insomnia-data/tsconfig.test.json create mode 100644 packages/insomnia-data/vitest.config.ts delete mode 100644 packages/insomnia/src/insomnia-data/common.ts delete mode 100644 packages/insomnia/src/insomnia-data/index.ts delete mode 100644 packages/insomnia/src/insomnia-data/node.ts delete mode 100644 packages/insomnia/src/insomnia-data/src/models/unit-test-result.ts diff --git a/AGENTS.md b/AGENTS.md index 73b0ef64ae..d501ae715c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -58,8 +58,6 @@ npm -v `insomnia/` ← Main Electron app `src/` `common/` ← Shared utils, settings types - `models/` ← Data model definitions - `insomnia-data/` ← Model defaults, init(), NeDB db implementation, business logic `routes/` ← React Router files (clientLoader/clientAction) `ui/` ← React components, hooks, `insomnia-fetch.ts` `main/` ← Electron IPC handlers, `preload.ts` @@ -67,6 +65,7 @@ npm -v `sync/` ← Git/VCS sync `network/` ← Request execution engine `templating/` ← Nunjucks rendering (Web Worker) + `insomnia-data/` ← Data models, services, NeDB implementation, shared data utilities `insomnia-api/` ← Cloud API client `insomnia-inso/` ← CLI tool `insomnia-testing/` ← Test framework diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 7ef1d7102a..d7b5105f4e 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -22,6 +22,7 @@ There are a few more technologies and tools worth mentioning: Insomnia uses [`npm workspaces`](https://docs.npmjs.com/cli/v9/using-npm/workspaces?v=true) to manage multiple npm packages within a single repository. There are currently the following package locations: - `/packages` contains related packages that are consumed by `insomnia` or externally. +- `/packages/insomnia-data` contains shared data models, model services, database adapters, and common data utilities used by the app and CLI. Insomnia Inso CLI is built using a series of steps @@ -61,7 +62,6 @@ There are a few notable directories inside it: - `/src/ui` React components and styling. - `/src/common` Utilities used across both main and render processes. - `/src/plugins` Logic around installation and usage of plugins. -- `/src/insomnia-data` Data models, services and database for managing application state. - `/src/network` Sending requests and performing auth (e.g. OAuth 2). - `/src/templating` Nunjucks and rendering related code. - `/src/sync` and `/src/account` Team sync and account stuff. diff --git a/eslint.config.mjs b/eslint.config.mjs index 3427939654..629bd1efef 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -23,16 +23,11 @@ const generalRestrictedImportPatterns = [ group: ['./**/insomnia-data', './**/insomnia-data/**', '../**/insomnia-data', '../**/insomnia-data/**'], message: "Please use 'insomnia-data' instead of relative paths", }, - // Only allow insomnia-data and insomnia-data/node + // Only allow supported insomnia-data entrypoints { regex: '^insomnia-data/(?!node($|/)|common($|/)).+', message: "Only 'insomnia-data', 'insomnia-data/node' and 'insomnia-data/common' are allowed", }, - // Only allow insomnia-data, not allow ~/insomnia-data anymore - { - regex: '^~/insomnia-data(/.*)?$', - message: "Please use 'insomnia-data' instead of '~/insomnia-data'", - }, ]; const rendererNodeMigrationOffenders = [ 'packages/insomnia/src/common/misc.ts', diff --git a/package-lock.json b/package-lock.json index 49bf63d4b0..c033f9f763 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "workspaces": [ "packages/insomnia-testing", "packages/insomnia", + "packages/insomnia-data", "packages/insomnia-analytics", "packages/insomnia-api", "packages/insomnia-inso", @@ -18399,6 +18400,10 @@ "resolved": "packages/insomnia-api", "link": true }, + "node_modules/insomnia-data": { + "resolved": "packages/insomnia-data", + "link": true + }, "node_modules/insomnia-inso": { "resolved": "packages/insomnia-inso", "link": true @@ -29163,7 +29168,6 @@ "@rjsf/core": "6.0.0-beta.15", "@rjsf/utils": "6.0.0-beta.15", "@rjsf/validator-ajv8": "6.0.0-beta.15", - "@seald-io/nedb": "^4.1.1", "@sentry/electron": "^6.5.0", "@stoplight/spectral-core": "^1.22.0", "@stoplight/spectral-formats": "^1.8.2", @@ -29330,6 +29334,23 @@ "@getinsomnia/insomnia-v3-fetch": "^1.0.1" } }, + "packages/insomnia-data": { + "version": "12.5.1-alpha.0", + "license": "Apache-2.0", + "dependencies": { + "@seald-io/nedb": "^4.1.1", + "deep-equal": "2.2.3", + "graphql": "^16.10.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@getinsomnia/node-libcurl": "3.2.2", + "@modelcontextprotocol/sdk": "^1.17.5", + "@types/deep-equal": "^1.0.4", + "mocha": "^11.7.5", + "type-fest": "^4.40.0" + } + }, "packages/insomnia-inso": { "version": "12.5.1-alpha.0", "license": "Apache-2.0", diff --git a/package.json b/package.json index 24861f27ee..4eadfc49f8 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "workspaces": [ "packages/insomnia-testing", "packages/insomnia", + "packages/insomnia-data", "packages/insomnia-analytics", "packages/insomnia-api", "packages/insomnia-inso", diff --git a/packages/insomnia/src/insomnia-data/README.md b/packages/insomnia-data/README.md similarity index 100% rename from packages/insomnia/src/insomnia-data/README.md rename to packages/insomnia-data/README.md diff --git a/packages/insomnia/src/__mocks__/uuid.ts b/packages/insomnia-data/__mocks__/uuid.ts similarity index 100% rename from packages/insomnia/src/__mocks__/uuid.ts rename to packages/insomnia-data/__mocks__/uuid.ts diff --git a/packages/insomnia/src/insomnia-data/__tests__/git-credentials.test.ts b/packages/insomnia-data/__tests__/git-credentials.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/__tests__/git-credentials.test.ts rename to packages/insomnia-data/__tests__/git-credentials.test.ts diff --git a/packages/insomnia/src/insomnia-data/__tests__/grpc-request-meta.test.ts b/packages/insomnia-data/__tests__/grpc-request-meta.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/__tests__/grpc-request-meta.test.ts rename to packages/insomnia-data/__tests__/grpc-request-meta.test.ts diff --git a/packages/insomnia/src/insomnia-data/__tests__/grpc-request.test.ts b/packages/insomnia-data/__tests__/grpc-request.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/__tests__/grpc-request.test.ts rename to packages/insomnia-data/__tests__/grpc-request.test.ts diff --git a/packages/insomnia/src/insomnia-data/__tests__/index.test.ts b/packages/insomnia-data/__tests__/index.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/__tests__/index.test.ts rename to packages/insomnia-data/__tests__/index.test.ts diff --git a/packages/insomnia/src/insomnia-data/__tests__/proto-file.test.ts b/packages/insomnia-data/__tests__/proto-file.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/__tests__/proto-file.test.ts rename to packages/insomnia-data/__tests__/proto-file.test.ts diff --git a/packages/insomnia/src/insomnia-data/__tests__/request-meta.test.ts b/packages/insomnia-data/__tests__/request-meta.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/__tests__/request-meta.test.ts rename to packages/insomnia-data/__tests__/request-meta.test.ts diff --git a/packages/insomnia/src/insomnia-data/__tests__/request.test.ts b/packages/insomnia-data/__tests__/request.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/__tests__/request.test.ts rename to packages/insomnia-data/__tests__/request.test.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/constants.ts b/packages/insomnia-data/common-src/constants.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/constants.ts rename to packages/insomnia-data/common-src/constants.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/hotkeys.ts b/packages/insomnia-data/common-src/hotkeys.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/hotkeys.ts rename to packages/insomnia-data/common-src/hotkeys.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/index.ts b/packages/insomnia-data/common-src/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/index.ts rename to packages/insomnia-data/common-src/index.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/invariant.ts b/packages/insomnia-data/common-src/invariant.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/invariant.ts rename to packages/insomnia-data/common-src/invariant.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/keyboard-keys.ts b/packages/insomnia-data/common-src/keyboard-keys.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/keyboard-keys.ts rename to packages/insomnia-data/common-src/keyboard-keys.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/misc.ts b/packages/insomnia-data/common-src/misc.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/misc.ts rename to packages/insomnia-data/common-src/misc.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/ndjson.test.ts b/packages/insomnia-data/common-src/ndjson.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/ndjson.test.ts rename to packages/insomnia-data/common-src/ndjson.test.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/ndjson.ts b/packages/insomnia-data/common-src/ndjson.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/ndjson.ts rename to packages/insomnia-data/common-src/ndjson.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/platform.ts b/packages/insomnia-data/common-src/platform.ts similarity index 87% rename from packages/insomnia/src/insomnia-data/common-src/platform.ts rename to packages/insomnia-data/common-src/platform.ts index dea29997ac..421d882c70 100644 --- a/packages/insomnia/src/insomnia-data/common-src/platform.ts +++ b/packages/insomnia-data/common-src/platform.ts @@ -4,8 +4,15 @@ interface INodeProcess { platform: string; } +declare const window: { + app?: { + process: INodeProcess; + }; +}; + let nodeProcess: INodeProcess | undefined; if ( + // eslint-disable-next-line unicorn/no-typeof-undefined typeof window !== 'undefined' && window.app?.process !== undefined && typeof window.app.process.platform === 'string' diff --git a/packages/insomnia/src/insomnia-data/common-src/preview-mode.ts b/packages/insomnia-data/common-src/preview-mode.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/preview-mode.ts rename to packages/insomnia-data/common-src/preview-mode.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/querystring.test.ts b/packages/insomnia-data/common-src/querystring.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/querystring.test.ts rename to packages/insomnia-data/common-src/querystring.test.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/querystring.ts b/packages/insomnia-data/common-src/querystring.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/querystring.ts rename to packages/insomnia-data/common-src/querystring.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/settings.ts b/packages/insomnia-data/common-src/settings.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/settings.ts rename to packages/insomnia-data/common-src/settings.ts diff --git a/packages/insomnia/src/insomnia-data/common-src/strings.ts b/packages/insomnia-data/common-src/strings.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/strings.ts rename to packages/insomnia-data/common-src/strings.ts diff --git a/packages/insomnia-data/common-src/tsconfig.json b/packages/insomnia-data/common-src/tsconfig.json new file mode 100644 index 0000000000..564332d319 --- /dev/null +++ b/packages/insomnia-data/common-src/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "lib": ["ES2023", "WebWorker"], + "types": [] + }, + "include": ["./**/*.ts"] +} diff --git a/packages/insomnia/src/insomnia-data/common-src/type.ts b/packages/insomnia-data/common-src/type.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/common-src/type.ts rename to packages/insomnia-data/common-src/type.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/database-nedb.ts b/packages/insomnia-data/node-src/database/database-nedb.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/database-nedb.ts rename to packages/insomnia-data/node-src/database/database-nedb.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/database.test.ts b/packages/insomnia-data/node-src/database/database.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/database.test.ts rename to packages/insomnia-data/node-src/database/database.test.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/cookie-jar.ts b/packages/insomnia-data/node-src/database/init-model/cookie-jar.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/cookie-jar.ts rename to packages/insomnia-data/node-src/database/init-model/cookie-jar.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/index.ts b/packages/insomnia-data/node-src/database/init-model/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/index.ts rename to packages/insomnia-data/node-src/database/init-model/index.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/request.ts b/packages/insomnia-data/node-src/database/init-model/request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/request.ts rename to packages/insomnia-data/node-src/database/init-model/request.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/response.test.ts b/packages/insomnia-data/node-src/database/init-model/response.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/response.test.ts rename to packages/insomnia-data/node-src/database/init-model/response.test.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/response.ts b/packages/insomnia-data/node-src/database/init-model/response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/response.ts rename to packages/insomnia-data/node-src/database/init-model/response.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/settings.ts b/packages/insomnia-data/node-src/database/init-model/settings.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/settings.ts rename to packages/insomnia-data/node-src/database/init-model/settings.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/workspace.test.ts b/packages/insomnia-data/node-src/database/init-model/workspace.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/workspace.test.ts rename to packages/insomnia-data/node-src/database/init-model/workspace.test.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/init-model/workspace.ts b/packages/insomnia-data/node-src/database/init-model/workspace.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/init-model/workspace.ts rename to packages/insomnia-data/node-src/database/init-model/workspace.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/database/repair-database.ts b/packages/insomnia-data/node-src/database/repair-database.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/database/repair-database.ts rename to packages/insomnia-data/node-src/database/repair-database.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/index.ts b/packages/insomnia-data/node-src/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/index.ts rename to packages/insomnia-data/node-src/index.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/api-spec.ts b/packages/insomnia-data/node-src/services/api-spec.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/api-spec.ts rename to packages/insomnia-data/node-src/services/api-spec.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/ca-certificate.ts b/packages/insomnia-data/node-src/services/ca-certificate.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/ca-certificate.ts rename to packages/insomnia-data/node-src/services/ca-certificate.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/client-certificate.ts b/packages/insomnia-data/node-src/services/client-certificate.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/client-certificate.ts rename to packages/insomnia-data/node-src/services/client-certificate.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/cloud-credential.ts b/packages/insomnia-data/node-src/services/cloud-credential.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/cloud-credential.ts rename to packages/insomnia-data/node-src/services/cloud-credential.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/cookie-jar.ts b/packages/insomnia-data/node-src/services/cookie-jar.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/cookie-jar.ts rename to packages/insomnia-data/node-src/services/cookie-jar.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/environment.ts b/packages/insomnia-data/node-src/services/environment.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/environment.ts rename to packages/insomnia-data/node-src/services/environment.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/git-credentials.ts b/packages/insomnia-data/node-src/services/git-credentials.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/git-credentials.ts rename to packages/insomnia-data/node-src/services/git-credentials.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/git-repository.ts b/packages/insomnia-data/node-src/services/git-repository.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/git-repository.ts rename to packages/insomnia-data/node-src/services/git-repository.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/grpc-request-meta.ts b/packages/insomnia-data/node-src/services/grpc-request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/grpc-request-meta.ts rename to packages/insomnia-data/node-src/services/grpc-request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/grpc-request.ts b/packages/insomnia-data/node-src/services/grpc-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/grpc-request.ts rename to packages/insomnia-data/node-src/services/grpc-request.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/helpers/index.ts b/packages/insomnia-data/node-src/services/helpers/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/helpers/index.ts rename to packages/insomnia-data/node-src/services/helpers/index.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/helpers/query-all-workspace-urls.test.ts b/packages/insomnia-data/node-src/services/helpers/query-all-workspace-urls.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/helpers/query-all-workspace-urls.test.ts rename to packages/insomnia-data/node-src/services/helpers/query-all-workspace-urls.test.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/helpers/query-all-workspace-urls.ts b/packages/insomnia-data/node-src/services/helpers/query-all-workspace-urls.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/helpers/query-all-workspace-urls.ts rename to packages/insomnia-data/node-src/services/helpers/query-all-workspace-urls.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/helpers/request-operations.ts b/packages/insomnia-data/node-src/services/helpers/request-operations.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/helpers/request-operations.ts rename to packages/insomnia-data/node-src/services/helpers/request-operations.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/helpers/response-operations.ts b/packages/insomnia-data/node-src/services/helpers/response-operations.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/helpers/response-operations.ts rename to packages/insomnia-data/node-src/services/helpers/response-operations.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/index.ts b/packages/insomnia-data/node-src/services/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/index.ts rename to packages/insomnia-data/node-src/services/index.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/mcp-payload.ts b/packages/insomnia-data/node-src/services/mcp-payload.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/mcp-payload.ts rename to packages/insomnia-data/node-src/services/mcp-payload.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/mcp-request.ts b/packages/insomnia-data/node-src/services/mcp-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/mcp-request.ts rename to packages/insomnia-data/node-src/services/mcp-request.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/mcp-response.ts b/packages/insomnia-data/node-src/services/mcp-response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/mcp-response.ts rename to packages/insomnia-data/node-src/services/mcp-response.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/mock-route.ts b/packages/insomnia-data/node-src/services/mock-route.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/mock-route.ts rename to packages/insomnia-data/node-src/services/mock-route.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/mock-server.ts b/packages/insomnia-data/node-src/services/mock-server.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/mock-server.ts rename to packages/insomnia-data/node-src/services/mock-server.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/o-auth-2-token.ts b/packages/insomnia-data/node-src/services/o-auth-2-token.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/o-auth-2-token.ts rename to packages/insomnia-data/node-src/services/o-auth-2-token.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/organization.ts b/packages/insomnia-data/node-src/services/organization.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/organization.ts rename to packages/insomnia-data/node-src/services/organization.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/plugin-data.ts b/packages/insomnia-data/node-src/services/plugin-data.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/plugin-data.ts rename to packages/insomnia-data/node-src/services/plugin-data.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/project-lint-ruleset.ts b/packages/insomnia-data/node-src/services/project-lint-ruleset.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/project-lint-ruleset.ts rename to packages/insomnia-data/node-src/services/project-lint-ruleset.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/project.ts b/packages/insomnia-data/node-src/services/project.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/project.ts rename to packages/insomnia-data/node-src/services/project.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/proto-directory.ts b/packages/insomnia-data/node-src/services/proto-directory.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/proto-directory.ts rename to packages/insomnia-data/node-src/services/proto-directory.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/proto-file.ts b/packages/insomnia-data/node-src/services/proto-file.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/proto-file.ts rename to packages/insomnia-data/node-src/services/proto-file.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/request-group-meta.ts b/packages/insomnia-data/node-src/services/request-group-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/request-group-meta.ts rename to packages/insomnia-data/node-src/services/request-group-meta.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/request-group.ts b/packages/insomnia-data/node-src/services/request-group.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/request-group.ts rename to packages/insomnia-data/node-src/services/request-group.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/request-meta.ts b/packages/insomnia-data/node-src/services/request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/request-meta.ts rename to packages/insomnia-data/node-src/services/request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/request-version.ts b/packages/insomnia-data/node-src/services/request-version.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/request-version.ts rename to packages/insomnia-data/node-src/services/request-version.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/request.ts b/packages/insomnia-data/node-src/services/request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/request.ts rename to packages/insomnia-data/node-src/services/request.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/response.ts b/packages/insomnia-data/node-src/services/response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/response.ts rename to packages/insomnia-data/node-src/services/response.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/runner-test-result.ts b/packages/insomnia-data/node-src/services/runner-test-result.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/runner-test-result.ts rename to packages/insomnia-data/node-src/services/runner-test-result.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/settings.ts b/packages/insomnia-data/node-src/services/settings.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/settings.ts rename to packages/insomnia-data/node-src/services/settings.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/socket-io-payload.ts b/packages/insomnia-data/node-src/services/socket-io-payload.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/socket-io-payload.ts rename to packages/insomnia-data/node-src/services/socket-io-payload.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/socket-io-request-meta.ts b/packages/insomnia-data/node-src/services/socket-io-request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/socket-io-request-meta.ts rename to packages/insomnia-data/node-src/services/socket-io-request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/socket-io-request.ts b/packages/insomnia-data/node-src/services/socket-io-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/socket-io-request.ts rename to packages/insomnia-data/node-src/services/socket-io-request.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/socket-io-response.ts b/packages/insomnia-data/node-src/services/socket-io-response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/socket-io-response.ts rename to packages/insomnia-data/node-src/services/socket-io-response.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/stats.ts b/packages/insomnia-data/node-src/services/stats.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/stats.ts rename to packages/insomnia-data/node-src/services/stats.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/unit-test-result.ts b/packages/insomnia-data/node-src/services/unit-test-result.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/unit-test-result.ts rename to packages/insomnia-data/node-src/services/unit-test-result.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/unit-test-suite.ts b/packages/insomnia-data/node-src/services/unit-test-suite.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/unit-test-suite.ts rename to packages/insomnia-data/node-src/services/unit-test-suite.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/unit-test.ts b/packages/insomnia-data/node-src/services/unit-test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/unit-test.ts rename to packages/insomnia-data/node-src/services/unit-test.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/user-session.ts b/packages/insomnia-data/node-src/services/user-session.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/user-session.ts rename to packages/insomnia-data/node-src/services/user-session.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/websocket-payload.ts b/packages/insomnia-data/node-src/services/websocket-payload.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/websocket-payload.ts rename to packages/insomnia-data/node-src/services/websocket-payload.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/websocket-request-meta.ts b/packages/insomnia-data/node-src/services/websocket-request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/websocket-request-meta.ts rename to packages/insomnia-data/node-src/services/websocket-request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/websocket-request.ts b/packages/insomnia-data/node-src/services/websocket-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/websocket-request.ts rename to packages/insomnia-data/node-src/services/websocket-request.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/websocket-response.ts b/packages/insomnia-data/node-src/services/websocket-response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/websocket-response.ts rename to packages/insomnia-data/node-src/services/websocket-response.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/workspace-meta.ts b/packages/insomnia-data/node-src/services/workspace-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/workspace-meta.ts rename to packages/insomnia-data/node-src/services/workspace-meta.ts diff --git a/packages/insomnia/src/insomnia-data/node-src/services/workspace.ts b/packages/insomnia-data/node-src/services/workspace.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/services/workspace.ts rename to packages/insomnia-data/node-src/services/workspace.ts diff --git a/packages/insomnia-data/node-src/tsconfig.json b/packages/insomnia-data/node-src/tsconfig.json new file mode 100644 index 0000000000..86df5edd32 --- /dev/null +++ b/packages/insomnia-data/node-src/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "lib": ["ES2023", "WebWorker"], + "types": ["node"] + }, + "include": ["./**/*.ts"] +} diff --git a/packages/insomnia/src/insomnia-data/node-src/types.d.ts b/packages/insomnia-data/node-src/types.d.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/node-src/types.d.ts rename to packages/insomnia-data/node-src/types.d.ts diff --git a/packages/insomnia-data/package.json b/packages/insomnia-data/package.json new file mode 100644 index 0000000000..3cd6964e92 --- /dev/null +++ b/packages/insomnia-data/package.json @@ -0,0 +1,49 @@ +{ + "private": true, + "name": "insomnia-data", + "license": "Apache-2.0", + "version": "12.5.1-alpha.0", + "author": "Kong ", + "description": "Insomnia data functionalities", + "repository": { + "type": "git", + "url": "git+https://github.com/Kong/insomnia.git", + "directory": "packages/insomnia-data" + }, + "bugs": { + "url": "https://github.com/kong/insomnia/issues" + }, + "homepage": "https://github.com/Kong/insomnia#readme", + "exports": { + ".": { + "import": "./src/index.ts", + "types": "./src/index.ts" + }, + "./node": { + "import": "./node-src/index.ts", + "types": "./node-src/index.ts" + }, + "./common": { + "import": "./common-src/index.ts", + "types": "./common-src/index.ts" + } + }, + "scripts": { + "lint": "eslint . --ext .ts,.tsx --cache", + "type-check": "tsc -p src/tsconfig.json && tsc -p common-src/tsconfig.json && tsc -p node-src/tsconfig.json && tsc -p tsconfig.test.json", + "test": "vitest run" + }, + "dependencies": { + "@seald-io/nedb": "^4.1.1", + "deep-equal": "2.2.3", + "graphql": "^16.10.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@getinsomnia/node-libcurl": "3.2.2", + "@modelcontextprotocol/sdk": "^1.17.5", + "@types/deep-equal": "^1.0.4", + "mocha": "^11.7.5", + "type-fest": "^4.40.0" + } +} diff --git a/packages/insomnia-data/setup-vitest.ts b/packages/insomnia-data/setup-vitest.ts new file mode 100644 index 0000000000..9fca452f2f --- /dev/null +++ b/packages/insomnia-data/setup-vitest.ts @@ -0,0 +1,13 @@ +import { initDatabase, initServices } from 'insomnia-data'; +import { createNedbDatabase, servicesNodeImpl } from 'insomnia-data/node'; +import { vi } from 'vitest'; + +const database = createNedbDatabase(); +await initDatabase(database, { inMemoryOnly: true }, true); +await initServices(servicesNodeImpl); + +import { v4Mock } from './__mocks__/uuid'; + +vi.mock('uuid', () => ({ + v4: () => v4Mock(), +})); diff --git a/packages/insomnia/src/insomnia-data/src/database/index.ts b/packages/insomnia-data/src/database/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/database/index.ts rename to packages/insomnia-data/src/database/index.ts diff --git a/packages/insomnia/src/insomnia-data/src/database/types.ts b/packages/insomnia-data/src/database/types.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/database/types.ts rename to packages/insomnia-data/src/database/types.ts diff --git a/packages/insomnia/src/insomnia-data/src/index.ts b/packages/insomnia-data/src/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/index.ts rename to packages/insomnia-data/src/index.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/api-spec.ts b/packages/insomnia-data/src/models/api-spec.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/api-spec.ts rename to packages/insomnia-data/src/models/api-spec.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/base-types.ts b/packages/insomnia-data/src/models/base-types.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/base-types.ts rename to packages/insomnia-data/src/models/base-types.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/ca-certificate.ts b/packages/insomnia-data/src/models/ca-certificate.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/ca-certificate.ts rename to packages/insomnia-data/src/models/ca-certificate.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/client-certificate.ts b/packages/insomnia-data/src/models/client-certificate.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/client-certificate.ts rename to packages/insomnia-data/src/models/client-certificate.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/cloud-credential.ts b/packages/insomnia-data/src/models/cloud-credential.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/cloud-credential.ts rename to packages/insomnia-data/src/models/cloud-credential.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/cookie-jar.ts b/packages/insomnia-data/src/models/cookie-jar.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/cookie-jar.ts rename to packages/insomnia-data/src/models/cookie-jar.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/db-models.ts b/packages/insomnia-data/src/models/db-models.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/db-models.ts rename to packages/insomnia-data/src/models/db-models.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/environment.ts b/packages/insomnia-data/src/models/environment.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/environment.ts rename to packages/insomnia-data/src/models/environment.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/git-credentials.ts b/packages/insomnia-data/src/models/git-credentials.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/git-credentials.ts rename to packages/insomnia-data/src/models/git-credentials.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/git-repository.ts b/packages/insomnia-data/src/models/git-repository.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/git-repository.ts rename to packages/insomnia-data/src/models/git-repository.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/grpc-request-meta.ts b/packages/insomnia-data/src/models/grpc-request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/grpc-request-meta.ts rename to packages/insomnia-data/src/models/grpc-request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/grpc-request.ts b/packages/insomnia-data/src/models/grpc-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/grpc-request.ts rename to packages/insomnia-data/src/models/grpc-request.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/index.test.ts b/packages/insomnia-data/src/models/index.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/index.test.ts rename to packages/insomnia-data/src/models/index.test.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/index.ts b/packages/insomnia-data/src/models/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/index.ts rename to packages/insomnia-data/src/models/index.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/mcp-payload.ts b/packages/insomnia-data/src/models/mcp-payload.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/mcp-payload.ts rename to packages/insomnia-data/src/models/mcp-payload.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/mcp-request.ts b/packages/insomnia-data/src/models/mcp-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/mcp-request.ts rename to packages/insomnia-data/src/models/mcp-request.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/mcp-response.ts b/packages/insomnia-data/src/models/mcp-response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/mcp-response.ts rename to packages/insomnia-data/src/models/mcp-response.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/mock-route.ts b/packages/insomnia-data/src/models/mock-route.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/mock-route.ts rename to packages/insomnia-data/src/models/mock-route.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/mock-server.ts b/packages/insomnia-data/src/models/mock-server.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/mock-server.ts rename to packages/insomnia-data/src/models/mock-server.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/o-auth-2-token.ts b/packages/insomnia-data/src/models/o-auth-2-token.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/o-auth-2-token.ts rename to packages/insomnia-data/src/models/o-auth-2-token.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/organization.ts b/packages/insomnia-data/src/models/organization.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/organization.ts rename to packages/insomnia-data/src/models/organization.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/plugin-data.ts b/packages/insomnia-data/src/models/plugin-data.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/plugin-data.ts rename to packages/insomnia-data/src/models/plugin-data.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/project-lint-ruleset.ts b/packages/insomnia-data/src/models/project-lint-ruleset.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/project-lint-ruleset.ts rename to packages/insomnia-data/src/models/project-lint-ruleset.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/project.test.ts b/packages/insomnia-data/src/models/project.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/project.test.ts rename to packages/insomnia-data/src/models/project.test.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/project.ts b/packages/insomnia-data/src/models/project.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/project.ts rename to packages/insomnia-data/src/models/project.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/proto-directory.ts b/packages/insomnia-data/src/models/proto-directory.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/proto-directory.ts rename to packages/insomnia-data/src/models/proto-directory.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/proto-file.ts b/packages/insomnia-data/src/models/proto-file.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/proto-file.ts rename to packages/insomnia-data/src/models/proto-file.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/request-group-meta.ts b/packages/insomnia-data/src/models/request-group-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/request-group-meta.ts rename to packages/insomnia-data/src/models/request-group-meta.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/request-group.ts b/packages/insomnia-data/src/models/request-group.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/request-group.ts rename to packages/insomnia-data/src/models/request-group.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/request-meta.ts b/packages/insomnia-data/src/models/request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/request-meta.ts rename to packages/insomnia-data/src/models/request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/request-version.ts b/packages/insomnia-data/src/models/request-version.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/request-version.ts rename to packages/insomnia-data/src/models/request-version.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/request.ts b/packages/insomnia-data/src/models/request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/request.ts rename to packages/insomnia-data/src/models/request.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/response.ts b/packages/insomnia-data/src/models/response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/response.ts rename to packages/insomnia-data/src/models/response.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/runner-test-result.ts b/packages/insomnia-data/src/models/runner-test-result.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/runner-test-result.ts rename to packages/insomnia-data/src/models/runner-test-result.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/settings.ts b/packages/insomnia-data/src/models/settings.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/settings.ts rename to packages/insomnia-data/src/models/settings.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/socket-io-payload.ts b/packages/insomnia-data/src/models/socket-io-payload.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/socket-io-payload.ts rename to packages/insomnia-data/src/models/socket-io-payload.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/socket-io-request-meta.ts b/packages/insomnia-data/src/models/socket-io-request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/socket-io-request-meta.ts rename to packages/insomnia-data/src/models/socket-io-request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/socket-io-request.ts b/packages/insomnia-data/src/models/socket-io-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/socket-io-request.ts rename to packages/insomnia-data/src/models/socket-io-request.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/socket-io-response.ts b/packages/insomnia-data/src/models/socket-io-response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/socket-io-response.ts rename to packages/insomnia-data/src/models/socket-io-response.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/stats.ts b/packages/insomnia-data/src/models/stats.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/stats.ts rename to packages/insomnia-data/src/models/stats.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/types.ts b/packages/insomnia-data/src/models/types.ts similarity index 98% rename from packages/insomnia/src/insomnia-data/src/models/types.ts rename to packages/insomnia-data/src/models/types.ts index 4c977bb7f2..007ea3b59b 100644 --- a/packages/insomnia/src/insomnia-data/src/models/types.ts +++ b/packages/insomnia-data/src/models/types.ts @@ -91,7 +91,7 @@ export type { WorkspaceMeta } from './workspace-meta'; export type { MockRoute } from './mock-route'; export type { MockServer } from './mock-server'; export type { UnitTest } from './unit-test'; -export type { UnitTestResult } from './unit-test-result'; +export type { UnitTestResult, TestResult, TestResults } from './unit-test-result'; export type { UnitTestSuite } from './unit-test-suite'; export type { SocketIOPayload } from './socket-io-payload'; export type { BaseSocketIORequest, SocketIOEventListener, SocketIORequest } from './socket-io-request'; diff --git a/packages/insomnia-data/src/models/unit-test-result.ts b/packages/insomnia-data/src/models/unit-test-result.ts new file mode 100644 index 0000000000..618d051d3c --- /dev/null +++ b/packages/insomnia-data/src/models/unit-test-result.ts @@ -0,0 +1,59 @@ +import type { Stats } from 'mocha'; + +import type { BaseModel } from './base-types'; + +export const name = 'Unit Test Result'; + +export const type = 'UnitTestResult'; + +export const prefix = 'utr'; + +export const canDuplicate = false; + +export const canSync = false; + +interface TestErr { + generatedMessage: boolean; + name: string; + code: string; + actual: string; + expected: string; + operator: string; +} + +interface NodeErr { + message: string; + stack: string; +} + +export interface TestResult { + id: string; + title: string; + fullTitle: string; + file?: string; + duration?: number; + currentRetry: number; + err: TestErr | NodeErr | {}; +} + +export interface TestResults { + failures: TestResult[]; + passes: TestResult[]; + pending: TestResult[]; + stats: Stats; + tests: TestResult[]; +} + +export interface BaseUnitTestResult { + results: TestResults; +} + +export type UnitTestResult = BaseModel & BaseUnitTestResult; + +export const isUnitTestResult = (model: Pick): model is UnitTestResult => model.type === type; + +export function init() { + return { + results: null, + }; +} diff --git a/packages/insomnia/src/insomnia-data/src/models/unit-test-suite.ts b/packages/insomnia-data/src/models/unit-test-suite.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/unit-test-suite.ts rename to packages/insomnia-data/src/models/unit-test-suite.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/unit-test.ts b/packages/insomnia-data/src/models/unit-test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/unit-test.ts rename to packages/insomnia-data/src/models/unit-test.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/user-session.ts b/packages/insomnia-data/src/models/user-session.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/user-session.ts rename to packages/insomnia-data/src/models/user-session.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/utils/replace-ids-in-fields.test.ts b/packages/insomnia-data/src/models/utils/replace-ids-in-fields.test.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/utils/replace-ids-in-fields.test.ts rename to packages/insomnia-data/src/models/utils/replace-ids-in-fields.test.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/utils/replace-ids-in-fields.ts b/packages/insomnia-data/src/models/utils/replace-ids-in-fields.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/utils/replace-ids-in-fields.ts rename to packages/insomnia-data/src/models/utils/replace-ids-in-fields.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/websocket-payload.ts b/packages/insomnia-data/src/models/websocket-payload.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/websocket-payload.ts rename to packages/insomnia-data/src/models/websocket-payload.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/websocket-request-meta.ts b/packages/insomnia-data/src/models/websocket-request-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/websocket-request-meta.ts rename to packages/insomnia-data/src/models/websocket-request-meta.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/websocket-request.ts b/packages/insomnia-data/src/models/websocket-request.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/websocket-request.ts rename to packages/insomnia-data/src/models/websocket-request.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/websocket-response.ts b/packages/insomnia-data/src/models/websocket-response.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/websocket-response.ts rename to packages/insomnia-data/src/models/websocket-response.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/workspace-meta.ts b/packages/insomnia-data/src/models/workspace-meta.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/workspace-meta.ts rename to packages/insomnia-data/src/models/workspace-meta.ts diff --git a/packages/insomnia/src/insomnia-data/src/models/workspace.ts b/packages/insomnia-data/src/models/workspace.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/models/workspace.ts rename to packages/insomnia-data/src/models/workspace.ts diff --git a/packages/insomnia/src/insomnia-data/src/services/index.test.ts b/packages/insomnia-data/src/services/index.test.ts similarity index 97% rename from packages/insomnia/src/insomnia-data/src/services/index.test.ts rename to packages/insomnia-data/src/services/index.test.ts index a3062d72e1..4d1977c107 100644 --- a/packages/insomnia/src/insomnia-data/src/services/index.test.ts +++ b/packages/insomnia-data/src/services/index.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest'; -import type { Services } from '../../'; +import type { Services } from '../../src'; const loadServicesModule = async () => { vi.resetModules(); diff --git a/packages/insomnia/src/insomnia-data/src/services/index.ts b/packages/insomnia-data/src/services/index.ts similarity index 100% rename from packages/insomnia/src/insomnia-data/src/services/index.ts rename to packages/insomnia-data/src/services/index.ts diff --git a/packages/insomnia-data/src/tsconfig.json b/packages/insomnia-data/src/tsconfig.json new file mode 100644 index 0000000000..564332d319 --- /dev/null +++ b/packages/insomnia-data/src/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "lib": ["ES2023", "WebWorker"], + "types": [] + }, + "include": ["./**/*.ts"] +} diff --git a/packages/insomnia-data/tsconfig.base.json b/packages/insomnia-data/tsconfig.base.json new file mode 100644 index 0000000000..b7123f029c --- /dev/null +++ b/packages/insomnia-data/tsconfig.base.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "skipLibCheck": true, + "target": "es2022", + "allowJs": false, + "resolveJsonModule": true, + "moduleResolution": "bundler", + "isolatedModules": true, + "noEmit": true, + "module": "ESNext", + "sourceMap": true, + "strict": true, + "noImplicitReturns": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "useUnknownInCatchVariables": false, + "verbatimModuleSyntax": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/packages/insomnia-data/tsconfig.test.json b/packages/insomnia-data/tsconfig.test.json new file mode 100644 index 0000000000..04d4b7538a --- /dev/null +++ b/packages/insomnia-data/tsconfig.test.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "lib": ["ES2023", "DOM"], + "types": ["node"] + }, + "include": ["__tests__/**/*.ts", "setup-vitest.ts", "vitest.config.ts"] +} diff --git a/packages/insomnia-data/vitest.config.ts b/packages/insomnia-data/vitest.config.ts new file mode 100644 index 0000000000..7e7b5b6601 --- /dev/null +++ b/packages/insomnia-data/vitest.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { setupFiles: ['./setup-vitest.ts'], environment: 'node' }, +}); diff --git a/packages/insomnia-inso/tsconfig.json b/packages/insomnia-inso/tsconfig.json index 94c1e74035..442bd1d506 100644 --- a/packages/insomnia-inso/tsconfig.json +++ b/packages/insomnia-inso/tsconfig.json @@ -10,9 +10,7 @@ "isolatedModules": true, "noEmit": true, "paths": { - "~/*": ["../insomnia/src/*"], - "insomnia-data": ["../insomnia/src/insomnia-data"], - "insomnia-data/*": ["../insomnia/src/insomnia-data/*"] + "~/*": ["../insomnia/src/*"] }, /* Transpiling Options */ "module": "ESNext", diff --git a/packages/insomnia-inso/vitest.config.ts b/packages/insomnia-inso/vitest.config.ts index 018f55da36..5ed0674629 100644 --- a/packages/insomnia-inso/vitest.config.ts +++ b/packages/insomnia-inso/vitest.config.ts @@ -8,7 +8,6 @@ export default defineConfig({ '~/templating/render-adapter': new URL('../insomnia/src/templating/render-adapter.node.ts', import.meta.url) .pathname, '~/': new URL('../insomnia/src/', import.meta.url).pathname, - 'insomnia-data': new URL('../insomnia/src/insomnia-data', import.meta.url).pathname, }, env: { DEFAULT_APP_NAME: process.env.DEFAULT_APP_NAME || 'insomnia-app', diff --git a/packages/insomnia-scripting-environment/tsconfig.json b/packages/insomnia-scripting-environment/tsconfig.json index 04db35b2ab..183fa0f10f 100644 --- a/packages/insomnia-scripting-environment/tsconfig.json +++ b/packages/insomnia-scripting-environment/tsconfig.json @@ -11,9 +11,7 @@ "isolatedModules": true, "noEmit": true, "paths": { - "~/*": ["../insomnia/src/*"], - "insomnia-data": ["../insomnia/src/insomnia-data"], - "insomnia-data/*": ["../insomnia/src/insomnia-data/*"] + "~/*": ["../insomnia/src/*"] }, /* Strictness */ "strict": true, diff --git a/packages/insomnia-scripting-environment/vitest.config.ts b/packages/insomnia-scripting-environment/vitest.config.ts index d09638d02b..856fe38585 100644 --- a/packages/insomnia-scripting-environment/vitest.config.ts +++ b/packages/insomnia-scripting-environment/vitest.config.ts @@ -5,7 +5,6 @@ export default defineConfig({ hideSkippedTests: true, alias: { '~/': new URL('../insomnia/src/', import.meta.url).pathname, - 'insomnia-data': new URL('../insomnia/src/insomnia-data', import.meta.url).pathname, }, }, }); diff --git a/packages/insomnia-testing/src/run/entities.ts b/packages/insomnia-testing/src/run/entities.ts index f9b0e565a1..3f5a350dc7 100644 --- a/packages/insomnia-testing/src/run/entities.ts +++ b/packages/insomnia-testing/src/run/entities.ts @@ -1,33 +1 @@ -import type { Stats } from 'mocha'; - -interface TestErr { - generatedMessage: boolean; - name: string; - code: string; - actual: string; - expected: string; - operator: string; -} - -interface NodeErr { - message: string; - stack: string; -} - -export interface TestResult { - id: string; - title: string; - fullTitle: string; - file?: string; - duration?: number; - currentRetry: number; - err: TestErr | NodeErr | {}; -} - -export interface TestResults { - failures: TestResult[]; - passes: TestResult[]; - pending: TestResult[]; - stats: Stats; - tests: TestResult[]; -} +export type { TestResult, TestResults } from 'insomnia-data'; diff --git a/packages/insomnia-testing/tsconfig.json b/packages/insomnia-testing/tsconfig.json index 75657383e2..04de96e172 100644 --- a/packages/insomnia-testing/tsconfig.json +++ b/packages/insomnia-testing/tsconfig.json @@ -6,17 +6,22 @@ "target": "es2022", "allowJs": true, "resolveJsonModule": true, - "moduleDetection": "force", + "moduleResolution": "bundler", "isolatedModules": true, "verbatimModuleSyntax": true, + "noImplicitReturns": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "useUnknownInCatchVariables": false, + "forceConsistentCasingInFileNames": true, /* Strictness */ "strict": true, - "noUncheckedIndexedAccess": true, "noImplicitOverride": true, /* If NOT transpiling with TypeScript: */ - "module": "preserve", + "module": "ESNext", "noEmit": true, /* If your code runs in the DOM: */ - "lib": ["es2022"] + "lib": ["es2022", "WebWorker"] } } diff --git a/packages/insomnia/package.json b/packages/insomnia/package.json index 88fe463362..3d397f365e 100644 --- a/packages/insomnia/package.json +++ b/packages/insomnia/package.json @@ -63,7 +63,6 @@ "@rjsf/core": "6.0.0-beta.15", "@rjsf/utils": "6.0.0-beta.15", "@rjsf/validator-ajv8": "6.0.0-beta.15", - "@seald-io/nedb": "^4.1.1", "@sentry/electron": "^6.5.0", "@stoplight/spectral-core": "^1.22.0", "@stoplight/spectral-formats": "^1.8.2", diff --git a/packages/insomnia/setup-vitest.ts b/packages/insomnia/setup-vitest.ts index 115e97e3e6..5c0732d121 100644 --- a/packages/insomnia/setup-vitest.ts +++ b/packages/insomnia/setup-vitest.ts @@ -2,9 +2,10 @@ import { initDatabase, initServices } from 'insomnia-data'; import { servicesNodeImpl } from 'insomnia-data/node'; import { vi } from 'vitest'; +// eslint-disable-next-line no-restricted-imports +import { v4Mock } from '../insomnia-data/__mocks__/uuid'; import { nodeLibcurlMock } from './src/__mocks__/@getinsomnia/node-libcurl'; import { electronMock } from './src/__mocks__/electron'; -import { v4Mock } from './src/__mocks__/uuid'; import { mainDatabase } from './src/main/database.main'; await initDatabase(mainDatabase, { inMemoryOnly: true }, true); diff --git a/packages/insomnia/src/insomnia-data/common.ts b/packages/insomnia/src/insomnia-data/common.ts deleted file mode 100644 index 24e06001c0..0000000000 --- a/packages/insomnia/src/insomnia-data/common.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './common-src'; diff --git a/packages/insomnia/src/insomnia-data/index.ts b/packages/insomnia/src/insomnia-data/index.ts deleted file mode 100644 index 8420b1093f..0000000000 --- a/packages/insomnia/src/insomnia-data/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './src'; diff --git a/packages/insomnia/src/insomnia-data/node.ts b/packages/insomnia/src/insomnia-data/node.ts deleted file mode 100644 index 35e5cd3d5c..0000000000 --- a/packages/insomnia/src/insomnia-data/node.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './node-src'; diff --git a/packages/insomnia/src/insomnia-data/src/models/unit-test-result.ts b/packages/insomnia/src/insomnia-data/src/models/unit-test-result.ts deleted file mode 100644 index 1108a1b3f1..0000000000 --- a/packages/insomnia/src/insomnia-data/src/models/unit-test-result.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { TestResults } from 'insomnia-testing'; - -import type { BaseModel } from './base-types'; - -export const name = 'Unit Test Result'; - -export const type = 'UnitTestResult'; - -export const prefix = 'utr'; - -export const canDuplicate = false; - -export const canSync = false; - -export interface BaseUnitTestResult { - results: TestResults; -} - -export type UnitTestResult = BaseModel & BaseUnitTestResult; - -export const isUnitTestResult = (model: Pick): model is UnitTestResult => model.type === type; - -export function init() { - return { - results: null, - }; -} diff --git a/packages/insomnia/src/konnect/__tests__/sync.test.ts b/packages/insomnia/src/konnect/__tests__/sync.test.ts index 3ae1f98845..f841bcbcd7 100644 --- a/packages/insomnia/src/konnect/__tests__/sync.test.ts +++ b/packages/insomnia/src/konnect/__tests__/sync.test.ts @@ -8,7 +8,8 @@ import { initDatabase, models, services as insoservices } from 'insomnia-data'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { resetV4Counter } from '../../__mocks__/uuid'; +// eslint-disable-next-line no-restricted-imports +import { resetV4Counter } from '../../../../insomnia-data/__mocks__/uuid'; import { database as db } from '../../common/database'; import { mainDatabase } from '../../main/database.main'; import type { KonnectControlPlane, KonnectRoute, KonnectService } from '../api'; diff --git a/packages/insomnia/tsconfig.json b/packages/insomnia/tsconfig.json index 8f864356aa..ef564fe874 100644 --- a/packages/insomnia/tsconfig.json +++ b/packages/insomnia/tsconfig.json @@ -16,9 +16,7 @@ "baseUrl": ".", "rootDirs": [".", "./.react-router/types"], "paths": { - "~/*": ["./src/*"], - "insomnia-data": ["./src/insomnia-data"], - "insomnia-data/*": ["./src/insomnia-data/*"] + "~/*": ["./src/*"] }, /* Runs in the DOM */ "lib": ["ES2023", "DOM.Iterable", "DOM"], diff --git a/packages/insomnia/vite.config.ts b/packages/insomnia/vite.config.ts index af100e83f2..f4b57fc945 100644 --- a/packages/insomnia/vite.config.ts +++ b/packages/insomnia/vite.config.ts @@ -58,7 +58,6 @@ export default defineConfig(({ mode }) => { '~/network/network-adapter': path.resolve(__dirname, './src/network/network-adapter.renderer'), '~/templating/render-adapter': path.resolve(__dirname, './src/templating/render-adapter.renderer'), '~': path.resolve(__dirname, './src'), - 'insomnia-data': path.resolve(__dirname, './src/insomnia-data'), // Shim Node's `path` module for browser-safe dependencies (e.g. mime-types uses path.extname). 'path': path.resolve(__dirname, './src/path-shim.ts'), }, diff --git a/packages/insomnia/vitest.config.ts b/packages/insomnia/vitest.config.ts index 97a05792a2..5309c74196 100644 --- a/packages/insomnia/vitest.config.ts +++ b/packages/insomnia/vitest.config.ts @@ -14,7 +14,6 @@ export default defineConfig({ '~/network/network-adapter': path.resolve(__dirname, './src/network/network-adapter.renderer'), '~/templating/render-adapter': path.resolve(__dirname, './src/templating/render-adapter.node'), '~': path.resolve(__dirname, './src'), - 'insomnia-data': path.resolve(__dirname, './src/insomnia-data'), 'electron/main': 'electron', }, server: {