diff --git a/package-lock.json b/package-lock.json index fb1039688b..015610dc6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ "packages/insomnia-send-request", "packages/insomnia", "packages/insomnia-inso", - "packages/insomnia-smoke-test" + "packages/insomnia-smoke-test", + "packages/insomnia-sdk" ], "devDependencies": { "@jest/globals": "^29.7.0", @@ -12917,6 +12918,10 @@ "resolved": "packages/insomnia-inso", "link": true }, + "node_modules/insomnia-sdk": { + "resolved": "packages/insomnia-sdk", + "link": true + }, "node_modules/insomnia-send-request": { "resolved": "packages/insomnia-send-request", "link": true @@ -22927,6 +22932,11 @@ "@esbuild/win32-x64": "0.20.2" } }, + "packages/insomnia-sdk": { + "version": "0.1.0", + "license": "Apache-2.0", + "devDependencies": {} + }, "packages/insomnia-send-request": { "version": "9.0.0-beta.3", "license": "Apache-2.0", diff --git a/package.json b/package.json index 2b12614615..2443800f17 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "packages/insomnia-send-request", "packages/insomnia", "packages/insomnia-inso", - "packages/insomnia-smoke-test" + "packages/insomnia-smoke-test", + "packages/insomnia-sdk" ], "scripts": { "dev": "npm start --workspace=packages/insomnia", diff --git a/packages/insomnia-sdk/jest.config.js b/packages/insomnia-sdk/jest.config.js new file mode 100644 index 0000000000..0660b74f22 --- /dev/null +++ b/packages/insomnia-sdk/jest.config.js @@ -0,0 +1,11 @@ +/** @type { import('@jest/types').Config.InitialOptions } */ + +module.exports = { + preset: '../../jest-preset.js', + globals: { + 'ts-jest': { + isolatedModules: true, + tsconfig: '../../tsconfig.base.json', + }, + }, +}; diff --git a/packages/insomnia-sdk/package.json b/packages/insomnia-sdk/package.json new file mode 100644 index 0000000000..e328b7914b --- /dev/null +++ b/packages/insomnia-sdk/package.json @@ -0,0 +1,23 @@ +{ + "private": true, + "name": "insomnia-sdk", + "version": "0.1.0", + "description": "", + "main": "src/objects/index.ts", + "types": "src/objects/index.ts", + "devDependencies": {}, + "scripts": { + "test": "jest" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Kong/insomnia.git", + "directory": "packages/insomnia-testing" + }, + "author": "Kong ", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/Kong/insomnia/issues" + }, + "homepage": "https://github.com/Kong/insomnia#readme" +} diff --git a/packages/insomnia/src/sdk/objects/__tests__/auth.test.ts b/packages/insomnia-sdk/src/objects/__tests__/auth.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/auth.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/auth.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/certificates.test.ts b/packages/insomnia-sdk/src/objects/__tests__/certificates.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/certificates.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/certificates.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/cookies.test.ts b/packages/insomnia-sdk/src/objects/__tests__/cookies.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/cookies.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/cookies.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/headers.test.ts b/packages/insomnia-sdk/src/objects/__tests__/headers.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/headers.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/headers.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/properties.test.ts b/packages/insomnia-sdk/src/objects/__tests__/properties.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/properties.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/properties.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/proxy-configs.test.ts b/packages/insomnia-sdk/src/objects/__tests__/proxy-configs.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/proxy-configs.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/proxy-configs.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/request.test.ts b/packages/insomnia-sdk/src/objects/__tests__/request.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/request.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/request.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/response.test.ts b/packages/insomnia-sdk/src/objects/__tests__/response.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/response.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/response.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/urls.test.ts b/packages/insomnia-sdk/src/objects/__tests__/urls.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/urls.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/urls.test.ts diff --git a/packages/insomnia/src/sdk/objects/__tests__/variables.test.ts b/packages/insomnia-sdk/src/objects/__tests__/variables.test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/__tests__/variables.test.ts rename to packages/insomnia-sdk/src/objects/__tests__/variables.test.ts diff --git a/packages/insomnia/src/sdk/objects/auth.ts b/packages/insomnia-sdk/src/objects/auth.ts similarity index 99% rename from packages/insomnia/src/sdk/objects/auth.ts rename to packages/insomnia-sdk/src/objects/auth.ts index eb3ca1076b..a7d0998879 100644 --- a/packages/insomnia/src/sdk/objects/auth.ts +++ b/packages/insomnia-sdk/src/objects/auth.ts @@ -1,5 +1,6 @@ -import type { OAuth2ResponseType, RequestAuthentication } from '../../models/request'; -import { OAuth1SignatureMethod } from '../../network/o-auth-1/constants'; +import type { OAuth2ResponseType, RequestAuthentication } from 'insomnia/src/models/request'; +import { OAuth1SignatureMethod } from 'insomnia/src/network/o-auth-1/constants'; + import { Property } from './properties'; import { Variable, VariableList } from './variables'; diff --git a/packages/insomnia/src/sdk/objects/certificates.ts b/packages/insomnia-sdk/src/objects/certificates.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/certificates.ts rename to packages/insomnia-sdk/src/objects/certificates.ts diff --git a/packages/insomnia/src/sdk/objects/index.ts b/packages/insomnia-sdk/src/objects/collection.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/index.ts rename to packages/insomnia-sdk/src/objects/collection.ts diff --git a/packages/insomnia/src/sdk/objects/cookies.ts b/packages/insomnia-sdk/src/objects/cookies.ts similarity index 99% rename from packages/insomnia/src/sdk/objects/cookies.ts rename to packages/insomnia-sdk/src/objects/cookies.ts index 40757d52dc..43bae5dd31 100644 --- a/packages/insomnia/src/sdk/objects/cookies.ts +++ b/packages/insomnia-sdk/src/objects/cookies.ts @@ -1,7 +1,7 @@ +import { Cookie as InsomniaCookie, CookieJar as InsomniaCookieJar } from 'insomnia/src/models/cookie-jar'; import { Cookie as ToughCookie } from 'tough-cookie'; import { v4 as uuidv4 } from 'uuid'; -import { Cookie as InsomniaCookie, CookieJar as InsomniaCookieJar } from '../../../src/models/cookie-jar'; import { Property, PropertyList } from './properties'; export interface CookieOptions { diff --git a/packages/insomnia/src/sdk/objects/environments.ts b/packages/insomnia-sdk/src/objects/environments.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/environments.ts rename to packages/insomnia-sdk/src/objects/environments.ts diff --git a/packages/insomnia/src/sdk/objects/headers.ts b/packages/insomnia-sdk/src/objects/headers.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/headers.ts rename to packages/insomnia-sdk/src/objects/headers.ts diff --git a/packages/insomnia-sdk/src/objects/index.ts b/packages/insomnia-sdk/src/objects/index.ts new file mode 100644 index 0000000000..55ab05630f --- /dev/null +++ b/packages/insomnia-sdk/src/objects/index.ts @@ -0,0 +1,7 @@ +export * as Collection from './collection'; +export * from './interfaces'; +export * from './insomnia'; +export * from './request'; +export * from './environments'; +export * from './urls'; +export * from './cookies'; diff --git a/packages/insomnia/src/sdk/objects/insomnia.ts b/packages/insomnia-sdk/src/objects/insomnia.ts similarity index 97% rename from packages/insomnia/src/sdk/objects/insomnia.ts rename to packages/insomnia-sdk/src/objects/insomnia.ts index e215a7a0d9..3029a89775 100644 --- a/packages/insomnia/src/sdk/objects/insomnia.ts +++ b/packages/insomnia-sdk/src/objects/insomnia.ts @@ -1,8 +1,8 @@ import { expect } from 'chai'; +import { ClientCertificate } from 'insomnia/src/models/client-certificate'; +import { RequestHeader } from 'insomnia/src/models/request'; +import { Settings } from 'insomnia/src/models/settings'; -import { ClientCertificate } from '../../models/client-certificate'; -import { RequestHeader } from '../../models/request'; -import { Settings } from '../../models/settings'; import { toPreRequestAuth } from './auth'; import { CookieObject } from './cookies'; import { Environment, Variables } from './environments'; diff --git a/packages/insomnia/src/sdk/objects/interfaces.ts b/packages/insomnia-sdk/src/objects/interfaces.ts similarity index 55% rename from packages/insomnia/src/sdk/objects/interfaces.ts rename to packages/insomnia-sdk/src/objects/interfaces.ts index b98b2a478b..94cd54ac77 100644 --- a/packages/insomnia/src/sdk/objects/interfaces.ts +++ b/packages/insomnia-sdk/src/objects/interfaces.ts @@ -1,7 +1,7 @@ -import { ClientCertificate } from '../../models/client-certificate'; -import { CookieJar as InsomniaCookieJar } from '../../models/cookie-jar'; -import type { Request } from '../../models/request'; -import { Settings } from '../../models/settings'; +import { CookieJar as InsomniaCookieJar } from 'insomnia/src//models/cookie-jar'; +import { ClientCertificate } from 'insomnia/src/models/client-certificate'; +import type { Request } from 'insomnia/src/models/request'; +import { Settings } from 'insomnia/src/models/settings'; export interface RequestContext { request: Request; diff --git a/packages/insomnia/src/sdk/objects/interpolator.ts b/packages/insomnia-sdk/src/objects/interpolator.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/interpolator.ts rename to packages/insomnia-sdk/src/objects/interpolator.ts diff --git a/packages/insomnia/src/sdk/objects/properties.ts b/packages/insomnia-sdk/src/objects/properties.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/properties.ts rename to packages/insomnia-sdk/src/objects/properties.ts diff --git a/packages/insomnia/src/sdk/objects/proxy-configs.ts b/packages/insomnia-sdk/src/objects/proxy-configs.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/proxy-configs.ts rename to packages/insomnia-sdk/src/objects/proxy-configs.ts diff --git a/packages/insomnia/src/sdk/objects/request.ts b/packages/insomnia-sdk/src/objects/request.ts similarity index 98% rename from packages/insomnia/src/sdk/objects/request.ts rename to packages/insomnia-sdk/src/objects/request.ts index 52bbb380c6..decca83f1e 100644 --- a/packages/insomnia/src/sdk/objects/request.ts +++ b/packages/insomnia-sdk/src/objects/request.ts @@ -1,8 +1,7 @@ -import { init as initClientCertificate } from '../../../src/models/client-certificate'; -import { Request as InsomniaRequest, RequestBody as InsomniaRequestBody, RequestPathParameter } from '../..//models/request'; -import { ClientCertificate } from '../../models/client-certificate'; -import { RequestBodyParameter } from '../../models/request'; -import { Settings } from '../../models/settings'; +import { Settings } from 'insomnia/src//models/settings'; +import { ClientCertificate, init as initClientCertificate } from 'insomnia/src/models/client-certificate'; +import { Request as InsomniaRequest, RequestBody as InsomniaRequestBody, RequestBodyParameter, RequestPathParameter } from 'insomnia/src/models/request'; + import { AuthOptions, AuthOptionTypes, fromPreRequestAuth, RequestAuth } from './auth'; import { CertificateOptions } from './certificates'; import { Certificate } from './certificates'; diff --git a/packages/insomnia/src/sdk/objects/response.ts b/packages/insomnia-sdk/src/objects/response.ts similarity index 98% rename from packages/insomnia/src/sdk/objects/response.ts rename to packages/insomnia-sdk/src/objects/response.ts index f553af828a..877be3f093 100644 --- a/packages/insomnia/src/sdk/objects/response.ts +++ b/packages/insomnia-sdk/src/objects/response.ts @@ -1,4 +1,5 @@ -import { RESPONSE_CODE_REASONS } from '../../common/constants'; +import { RESPONSE_CODE_REASONS } from 'insomnia/src/common/constants'; + import { Cookie, CookieOptions } from './cookies'; import { CookieList } from './cookies'; import { Header, HeaderDefinition, HeaderList } from './headers'; diff --git a/packages/insomnia/src/sdk/objects/send-request.ts b/packages/insomnia-sdk/src/objects/send-request.ts similarity index 98% rename from packages/insomnia/src/sdk/objects/send-request.ts rename to packages/insomnia-sdk/src/objects/send-request.ts index 6df5ef5a3c..580a08e1cd 100644 --- a/packages/insomnia/src/sdk/objects/send-request.ts +++ b/packages/insomnia-sdk/src/objects/send-request.ts @@ -1,8 +1,8 @@ +import type { CurlRequestOutput } from 'insomnia/src/main/network/libcurl-promise'; +import type { Settings } from 'insomnia/src/models/settings'; import { Cookie } from 'tough-cookie'; import { v4 as uuidv4 } from 'uuid'; -import type { CurlRequestOutput } from '../../main/network/libcurl-promise'; -import type { Settings } from '../../models/settings'; import { RequestAuth } from './auth'; import { fromPreRequestAuth } from './auth'; import type { CookieOptions } from './cookies'; diff --git a/packages/insomnia/src/sdk/objects/test.ts b/packages/insomnia-sdk/src/objects/test.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/test.ts rename to packages/insomnia-sdk/src/objects/test.ts diff --git a/packages/insomnia/src/sdk/objects/urls.ts b/packages/insomnia-sdk/src/objects/urls.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/urls.ts rename to packages/insomnia-sdk/src/objects/urls.ts diff --git a/packages/insomnia/src/sdk/objects/variables.ts b/packages/insomnia-sdk/src/objects/variables.ts similarity index 100% rename from packages/insomnia/src/sdk/objects/variables.ts rename to packages/insomnia-sdk/src/objects/variables.ts diff --git a/packages/insomnia/esbuild.main.ts b/packages/insomnia/esbuild.main.ts index 72d30b9adb..8f5fcd341f 100644 --- a/packages/insomnia/esbuild.main.ts +++ b/packages/insomnia/esbuild.main.ts @@ -54,6 +54,9 @@ export default async function build(options: Options) { sourcemap: true, format: 'cjs', external: ['electron'], + loader: { + '.node': 'copy', + }, }); const main = esbuild.build({ entryPoints: ['./src/main.development.ts'], diff --git a/packages/insomnia/src/hidden-window-preload.ts b/packages/insomnia/src/hidden-window-preload.ts index f01b611485..557d3fccf2 100644 --- a/packages/insomnia/src/hidden-window-preload.ts +++ b/packages/insomnia/src/hidden-window-preload.ts @@ -1,8 +1,7 @@ import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron'; +import { Collection as CollectionModule, RequestContext } from 'insomnia-sdk'; import type { Compression } from './models/response'; -import * as CollectionModule from './sdk/objects'; -import type { RequestContext } from './sdk/objects/interfaces'; export interface HiddenBrowserWindowToMainBridgeAPI { requireInterceptor: (module: string) => any; diff --git a/packages/insomnia/src/hidden-window.ts b/packages/insomnia/src/hidden-window.ts index 4ce5016519..5297483f27 100644 --- a/packages/insomnia/src/hidden-window.ts +++ b/packages/insomnia/src/hidden-window.ts @@ -1,12 +1,12 @@ import * as fs from 'node:fs'; +import { initInsomniaObject, InsomniaObject } from 'insomnia-sdk'; +import { RequestContext } from 'insomnia-sdk'; +import { mergeClientCertificates, mergeRequests, mergeSettings } from 'insomnia-sdk'; +import { mergeCookieJar } from 'insomnia-sdk'; import * as _ from 'lodash'; import { invariant } from '../src/utils/invariant'; -import { mergeCookieJar } from './sdk/objects/cookies'; -import { initInsomniaObject, InsomniaObject } from './sdk/objects/insomnia'; -import { RequestContext } from './sdk/objects/interfaces'; -import { mergeClientCertificates, mergeRequests, mergeSettings } from './sdk/objects/request'; export interface HiddenBrowserWindowBridgeAPI { runPreRequestScript: (options: { script: string; context: RequestContext }) => Promise; diff --git a/packages/insomnia/src/network/cancellation.ts b/packages/insomnia/src/network/cancellation.ts index ffe5c3fdf7..8f0f0e7318 100644 --- a/packages/insomnia/src/network/cancellation.ts +++ b/packages/insomnia/src/network/cancellation.ts @@ -1,7 +1,8 @@ +import { RequestContext } from 'insomnia-sdk'; + import type { CurlRequestOptions, CurlRequestOutput } from '../main/network/libcurl-promise'; import { CookieJar } from '../models/cookie-jar'; import { Request } from '../models/request'; -import { RequestContext } from '../sdk/objects/interfaces'; const cancelRequestFunctionMap = new Map void>(); diff --git a/packages/insomnia/src/ui/components/editors/pre-request-script-editor.tsx b/packages/insomnia/src/ui/components/editors/pre-request-script-editor.tsx index 55620627a5..3770ce9e6f 100644 --- a/packages/insomnia/src/ui/components/editors/pre-request-script-editor.tsx +++ b/packages/insomnia/src/ui/components/editors/pre-request-script-editor.tsx @@ -1,12 +1,8 @@ import { Snippet } from 'codemirror'; +import { CookieObject, Environment, InsomniaObject, Request as ScriptRequest, Url, Variables } from 'insomnia-sdk'; import React, { FC, Fragment, useRef } from 'react'; import { Settings } from '../../../models/settings'; -import { CookieObject } from '../../../sdk/objects/cookies'; -import { Environment, Variables } from '../../../sdk/objects/environments'; -import { InsomniaObject } from '../../../sdk/objects/insomnia'; -import { Request as ScriptRequest } from '../../../sdk/objects/request'; -import { Url } from '../../../sdk/objects/urls'; import { Dropdown, DropdownButton, DropdownItem, DropdownSection, ItemContent } from '../base/dropdown'; import { CodeEditor, CodeEditorHandle } from '../codemirror/code-editor';