From 6b39b7960cf6f635130c8487fae4ddd3ad44aa16 Mon Sep 17 00:00:00 2001 From: Stainless Bot Date: Sat, 24 Aug 2024 09:21:50 +0000 Subject: [PATCH 1/2] feat(api): OpenAPI spec update via Stainless API (#169) --- .devcontainer/Dockerfile | 0 .devcontainer/devcontainer.json | 0 .eslintrc.js | 0 .github/workflows/ci.yml | 0 .github/workflows/publish-npm.yml | 0 .github/workflows/release-doctor.yml | 0 .gitignore | 0 .prettierignore | 0 .prettierrc.json | 0 .release-please-manifest.json | 0 .stats.yml | 2 +- Brewfile | 0 CONTRIBUTING.md | 0 LICENSE | 0 README.md | 0 SECURITY.md | 0 api.md | 0 bin/check-release-environment | 0 bin/publish-npm | 0 examples/.keep | 0 jest.config.ts | 0 package.json | 0 release-please-config.json | 0 scripts/utils/check-version.cjs | 0 scripts/utils/fix-index-exports.cjs | 0 scripts/utils/make-dist-package-json.cjs | 0 scripts/utils/postprocess-files.cjs | 0 src/_shims/MultipartBody.ts | 0 src/_shims/README.md | 0 src/_shims/auto/runtime-bun.ts | 0 src/_shims/auto/runtime-deno.ts | 0 src/_shims/auto/runtime-node.ts | 0 src/_shims/auto/runtime.ts | 0 src/_shims/auto/types-deno.ts | 0 src/_shims/auto/types-node.ts | 0 src/_shims/auto/types.d.ts | 0 src/_shims/auto/types.js | 0 src/_shims/auto/types.mjs | 0 src/_shims/bun-runtime.ts | 0 src/_shims/index-deno.ts | 0 src/_shims/index.d.ts | 0 src/_shims/index.js | 0 src/_shims/index.mjs | 0 src/_shims/manual-types.d.ts | 0 src/_shims/manual-types.js | 0 src/_shims/manual-types.mjs | 0 src/_shims/node-runtime.ts | 0 src/_shims/node-types.d.ts | 0 src/_shims/node-types.js | 0 src/_shims/node-types.mjs | 0 src/_shims/registry.ts | 0 src/_shims/web-runtime.ts | 0 src/_shims/web-types.d.ts | 0 src/_shims/web-types.js | 0 src/_shims/web-types.mjs | 0 src/core.ts | 6 +- src/error.ts | 26 ++--- src/index.ts | 27 ++--- src/lib/.keep | 0 src/resource.ts | 0 src/resources/chat/chat.ts | 4 + src/resources/chat/completions.ts | 20 +++- src/resources/chat/index.ts | 0 src/resources/dataset/dataset.ts | 3 + src/resources/dataset/index.ts | 0 src/resources/dataset/item.ts | 20 +++- src/resources/index.ts | 6 +- src/resources/knowledgebase/file.ts | 31 ++---- src/resources/knowledgebase/index.ts | 9 +- src/resources/knowledgebase/item.ts | 8 +- src/resources/knowledgebase/knowledgebase.ts | 4 + src/shims/node.ts | 0 src/shims/web.ts | 0 src/uploads.ts | 5 +- src/version.ts | 2 +- tests/api-resources/chat/completions.test.ts | 43 +------- tests/api-resources/dataset/dataset.test.ts | 14 +-- tests/api-resources/dataset/item.test.ts | 45 +------- .../api-resources/knowledgebase/file.test.ts | 27 ++--- .../api-resources/knowledgebase/item.test.ts | 18 +--- .../knowledgebase/knowledgebase.test.ts | 13 +-- tests/form.test.ts | 0 tests/index.test.ts | 102 ++++++------------ tests/responses.test.ts | 0 tests/stringifyQuery.test.ts | 42 ++++---- tests/uploads.test.ts | 0 tsc-multi.json | 0 tsconfig.build.json | 0 tsconfig.deno.json | 0 tsconfig.dist-src.json | 0 tsconfig.json | 0 yarn.lock | 0 92 files changed, 169 insertions(+), 308 deletions(-) mode change 100644 => 100755 .devcontainer/Dockerfile mode change 100644 => 100755 .devcontainer/devcontainer.json mode change 100644 => 100755 .eslintrc.js mode change 100644 => 100755 .github/workflows/ci.yml mode change 100644 => 100755 .github/workflows/publish-npm.yml mode change 100644 => 100755 .github/workflows/release-doctor.yml mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .prettierignore mode change 100644 => 100755 .prettierrc.json mode change 100644 => 100755 .release-please-manifest.json mode change 100644 => 100755 .stats.yml mode change 100644 => 100755 Brewfile mode change 100644 => 100755 CONTRIBUTING.md mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 SECURITY.md mode change 100644 => 100755 api.md mode change 100644 => 100755 bin/check-release-environment mode change 100644 => 100755 bin/publish-npm mode change 100644 => 100755 examples/.keep mode change 100644 => 100755 jest.config.ts mode change 100644 => 100755 package.json mode change 100644 => 100755 release-please-config.json mode change 100644 => 100755 scripts/utils/check-version.cjs mode change 100644 => 100755 scripts/utils/fix-index-exports.cjs mode change 100644 => 100755 scripts/utils/make-dist-package-json.cjs mode change 100644 => 100755 scripts/utils/postprocess-files.cjs mode change 100644 => 100755 src/_shims/MultipartBody.ts mode change 100644 => 100755 src/_shims/README.md mode change 100644 => 100755 src/_shims/auto/runtime-bun.ts mode change 100644 => 100755 src/_shims/auto/runtime-deno.ts mode change 100644 => 100755 src/_shims/auto/runtime-node.ts mode change 100644 => 100755 src/_shims/auto/runtime.ts mode change 100644 => 100755 src/_shims/auto/types-deno.ts mode change 100644 => 100755 src/_shims/auto/types-node.ts mode change 100644 => 100755 src/_shims/auto/types.d.ts mode change 100644 => 100755 src/_shims/auto/types.js mode change 100644 => 100755 src/_shims/auto/types.mjs mode change 100644 => 100755 src/_shims/bun-runtime.ts mode change 100644 => 100755 src/_shims/index-deno.ts mode change 100644 => 100755 src/_shims/index.d.ts mode change 100644 => 100755 src/_shims/index.js mode change 100644 => 100755 src/_shims/index.mjs mode change 100644 => 100755 src/_shims/manual-types.d.ts mode change 100644 => 100755 src/_shims/manual-types.js mode change 100644 => 100755 src/_shims/manual-types.mjs mode change 100644 => 100755 src/_shims/node-runtime.ts mode change 100644 => 100755 src/_shims/node-types.d.ts mode change 100644 => 100755 src/_shims/node-types.js mode change 100644 => 100755 src/_shims/node-types.mjs mode change 100644 => 100755 src/_shims/registry.ts mode change 100644 => 100755 src/_shims/web-runtime.ts mode change 100644 => 100755 src/_shims/web-types.d.ts mode change 100644 => 100755 src/_shims/web-types.js mode change 100644 => 100755 src/_shims/web-types.mjs mode change 100644 => 100755 src/core.ts mode change 100644 => 100755 src/error.ts mode change 100644 => 100755 src/index.ts mode change 100644 => 100755 src/lib/.keep mode change 100644 => 100755 src/resource.ts mode change 100644 => 100755 src/resources/chat/chat.ts mode change 100644 => 100755 src/resources/chat/completions.ts mode change 100644 => 100755 src/resources/chat/index.ts mode change 100644 => 100755 src/resources/dataset/dataset.ts mode change 100644 => 100755 src/resources/dataset/index.ts mode change 100644 => 100755 src/resources/dataset/item.ts mode change 100644 => 100755 src/resources/index.ts mode change 100644 => 100755 src/resources/knowledgebase/file.ts mode change 100644 => 100755 src/resources/knowledgebase/index.ts mode change 100644 => 100755 src/resources/knowledgebase/item.ts mode change 100644 => 100755 src/resources/knowledgebase/knowledgebase.ts mode change 100644 => 100755 src/shims/node.ts mode change 100644 => 100755 src/shims/web.ts mode change 100644 => 100755 src/uploads.ts mode change 100644 => 100755 src/version.ts mode change 100644 => 100755 tests/api-resources/chat/completions.test.ts mode change 100644 => 100755 tests/api-resources/dataset/dataset.test.ts mode change 100644 => 100755 tests/api-resources/dataset/item.test.ts mode change 100644 => 100755 tests/api-resources/knowledgebase/file.test.ts mode change 100644 => 100755 tests/api-resources/knowledgebase/item.test.ts mode change 100644 => 100755 tests/api-resources/knowledgebase/knowledgebase.test.ts mode change 100644 => 100755 tests/form.test.ts mode change 100644 => 100755 tests/index.test.ts mode change 100644 => 100755 tests/responses.test.ts mode change 100644 => 100755 tests/stringifyQuery.test.ts mode change 100644 => 100755 tests/uploads.test.ts mode change 100644 => 100755 tsc-multi.json mode change 100644 => 100755 tsconfig.build.json mode change 100644 => 100755 tsconfig.deno.json mode change 100644 => 100755 tsconfig.dist-src.json mode change 100644 => 100755 tsconfig.json mode change 100644 => 100755 yarn.lock diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile old mode 100644 new mode 100755 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json old mode 100644 new mode 100755 diff --git a/.eslintrc.js b/.eslintrc.js old mode 100644 new mode 100755 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.prettierignore b/.prettierignore old mode 100644 new mode 100755 diff --git a/.prettierrc.json b/.prettierrc.json old mode 100644 new mode 100755 diff --git a/.release-please-manifest.json b/.release-please-manifest.json old mode 100644 new mode 100755 diff --git a/.stats.yml b/.stats.yml old mode 100644 new mode 100755 index 915deaf..48b7019 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/propulsionai%2Fpropulsionai-643ad4ee18ac8eb8b4357fea1bc99ff45fb39d7910ffad8bd3d6d1709f78f00d.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/propulsionai%2Fpropulsionai-b37faf6ec15e2d0fe4c48b085d8d9d159f146f9aec80513fb8c2077241d7eb4d.yml diff --git a/Brewfile b/Brewfile old mode 100644 new mode 100755 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/SECURITY.md b/SECURITY.md old mode 100644 new mode 100755 diff --git a/api.md b/api.md old mode 100644 new mode 100755 diff --git a/bin/check-release-environment b/bin/check-release-environment old mode 100644 new mode 100755 diff --git a/bin/publish-npm b/bin/publish-npm old mode 100644 new mode 100755 diff --git a/examples/.keep b/examples/.keep old mode 100644 new mode 100755 diff --git a/jest.config.ts b/jest.config.ts old mode 100644 new mode 100755 diff --git a/package.json b/package.json old mode 100644 new mode 100755 diff --git a/release-please-config.json b/release-please-config.json old mode 100644 new mode 100755 diff --git a/scripts/utils/check-version.cjs b/scripts/utils/check-version.cjs old mode 100644 new mode 100755 diff --git a/scripts/utils/fix-index-exports.cjs b/scripts/utils/fix-index-exports.cjs old mode 100644 new mode 100755 diff --git a/scripts/utils/make-dist-package-json.cjs b/scripts/utils/make-dist-package-json.cjs old mode 100644 new mode 100755 diff --git a/scripts/utils/postprocess-files.cjs b/scripts/utils/postprocess-files.cjs old mode 100644 new mode 100755 diff --git a/src/_shims/MultipartBody.ts b/src/_shims/MultipartBody.ts old mode 100644 new mode 100755 diff --git a/src/_shims/README.md b/src/_shims/README.md old mode 100644 new mode 100755 diff --git a/src/_shims/auto/runtime-bun.ts b/src/_shims/auto/runtime-bun.ts old mode 100644 new mode 100755 diff --git a/src/_shims/auto/runtime-deno.ts b/src/_shims/auto/runtime-deno.ts old mode 100644 new mode 100755 diff --git a/src/_shims/auto/runtime-node.ts b/src/_shims/auto/runtime-node.ts old mode 100644 new mode 100755 diff --git a/src/_shims/auto/runtime.ts b/src/_shims/auto/runtime.ts old mode 100644 new mode 100755 diff --git a/src/_shims/auto/types-deno.ts b/src/_shims/auto/types-deno.ts old mode 100644 new mode 100755 diff --git a/src/_shims/auto/types-node.ts b/src/_shims/auto/types-node.ts old mode 100644 new mode 100755 diff --git a/src/_shims/auto/types.d.ts b/src/_shims/auto/types.d.ts old mode 100644 new mode 100755 diff --git a/src/_shims/auto/types.js b/src/_shims/auto/types.js old mode 100644 new mode 100755 diff --git a/src/_shims/auto/types.mjs b/src/_shims/auto/types.mjs old mode 100644 new mode 100755 diff --git a/src/_shims/bun-runtime.ts b/src/_shims/bun-runtime.ts old mode 100644 new mode 100755 diff --git a/src/_shims/index-deno.ts b/src/_shims/index-deno.ts old mode 100644 new mode 100755 diff --git a/src/_shims/index.d.ts b/src/_shims/index.d.ts old mode 100644 new mode 100755 diff --git a/src/_shims/index.js b/src/_shims/index.js old mode 100644 new mode 100755 diff --git a/src/_shims/index.mjs b/src/_shims/index.mjs old mode 100644 new mode 100755 diff --git a/src/_shims/manual-types.d.ts b/src/_shims/manual-types.d.ts old mode 100644 new mode 100755 diff --git a/src/_shims/manual-types.js b/src/_shims/manual-types.js old mode 100644 new mode 100755 diff --git a/src/_shims/manual-types.mjs b/src/_shims/manual-types.mjs old mode 100644 new mode 100755 diff --git a/src/_shims/node-runtime.ts b/src/_shims/node-runtime.ts old mode 100644 new mode 100755 diff --git a/src/_shims/node-types.d.ts b/src/_shims/node-types.d.ts old mode 100644 new mode 100755 diff --git a/src/_shims/node-types.js b/src/_shims/node-types.js old mode 100644 new mode 100755 diff --git a/src/_shims/node-types.mjs b/src/_shims/node-types.mjs old mode 100644 new mode 100755 diff --git a/src/_shims/registry.ts b/src/_shims/registry.ts old mode 100644 new mode 100755 diff --git a/src/_shims/web-runtime.ts b/src/_shims/web-runtime.ts old mode 100644 new mode 100755 diff --git a/src/_shims/web-types.d.ts b/src/_shims/web-types.d.ts old mode 100644 new mode 100755 diff --git a/src/_shims/web-types.js b/src/_shims/web-types.js old mode 100644 new mode 100755 diff --git a/src/_shims/web-types.mjs b/src/_shims/web-types.mjs old mode 100644 new mode 100755 diff --git a/src/core.ts b/src/core.ts old mode 100644 new mode 100755 index 919a4e6..865005c --- a/src/core.ts +++ b/src/core.ts @@ -215,7 +215,7 @@ export abstract class APIClient { Accept: 'application/json', 'Content-Type': 'application/json', 'User-Agent': this.getUserAgent(), - ...getPlatformHeaders(), +...getPlatformHeaders(), ...this.authHeaders(opts), }; } @@ -770,6 +770,8 @@ export type RequestOptions< signal?: AbortSignal | undefined | null; idempotencyKey?: string; + + __binaryRequest?: boolean | undefined; __binaryResponse?: boolean | undefined; __streamClass?: typeof Stream; @@ -792,6 +794,8 @@ const requestOptionsKeys: KeysEnum = { signal: true, idempotencyKey: true, + + __binaryRequest: true, __binaryResponse: true, __streamClass: true, diff --git a/src/error.ts b/src/error.ts old mode 100644 new mode 100755 index 0b256fb..e3b6569 --- a/src/error.ts +++ b/src/error.ts @@ -2,19 +2,18 @@ import { castToError, Headers } from './core'; -export class PropulsionAIError extends Error {} +export class PropulsionAIError extends Error { +} export class APIError extends PropulsionAIError { readonly status: number | undefined; readonly headers: Headers | undefined; readonly error: Object | undefined; - constructor( - status: number | undefined, - error: Object | undefined, - message: string | undefined, - headers: Headers | undefined, - ) { + + ; + + constructor(status: number | undefined, error: Object | undefined, message: string | undefined, headers: Headers | undefined) { super(`${APIError.makeMessage(status, error, message)}`); this.status = status; this.headers = headers; @@ -24,8 +23,7 @@ export class APIError extends PropulsionAIError { private static makeMessage(status: number | undefined, error: any, message: string | undefined) { const msg = error?.message ? - typeof error.message === 'string' ? - error.message + typeof error.message === 'string' ? error.message : JSON.stringify(error.message) : error ? JSON.stringify(error) : message; @@ -42,12 +40,7 @@ export class APIError extends PropulsionAIError { return '(no status code or body)'; } - static generate( - status: number | undefined, - errorResponse: Object | undefined, - message: string | undefined, - headers: Headers | undefined, - ) { + static generate(status: number | undefined, errorResponse: Object | undefined, message: string | undefined, headers: Headers | undefined) { if (!status) { return new APIConnectionError({ cause: castToError(errorResponse) }); } @@ -143,4 +136,5 @@ export class RateLimitError extends APIError { override readonly status: 429 = 429; } -export class InternalServerError extends APIError {} +export class InternalServerError extends APIError { +} diff --git a/src/index.ts b/src/index.ts old mode 100644 new mode 100755 index b10cf45..a25ef81 --- a/src/index.ts +++ b/src/index.ts @@ -2,7 +2,8 @@ import * as Errors from './error'; import * as Uploads from './uploads'; -import { type Agent } from './_shims/index'; +import { isRequestOptions } from './core'; +import { type Agent, type RequestInit } from './_shims/index'; import * as Core from './core'; import * as API from './resources/index'; @@ -70,7 +71,7 @@ export interface ClientOptions { } /** - * API Client for interfacing with the PropulsionAI API. + * API Client for interfacing with the PropulsionAI API. */ export class PropulsionAI extends Core.APIClient { bearerToken: string; @@ -96,7 +97,7 @@ export class PropulsionAI extends Core.APIClient { }: ClientOptions = {}) { if (bearerToken === undefined) { throw new Errors.PropulsionAIError( - "The PROPULSIONAI_BEARER_TOKEN environment variable is missing or empty; either provide it, or instantiate the PropulsionAI client with an bearerToken option, like new PropulsionAI({ bearerToken: 'My Bearer Token' }).", + 'The PROPULSIONAI_BEARER_TOKEN environment variable is missing or empty; either provide it, or instantiate the PropulsionAI client with an bearerToken option, like new PropulsionAI({ bearerToken: \'My Bearer Token\' }).' ); } @@ -124,7 +125,7 @@ export class PropulsionAI extends Core.APIClient { knowledgebase: API.KnowledgebaseResource = new API.KnowledgebaseResource(this); protected override defaultQuery(): Core.DefaultQuery | undefined { - return this._options.defaultQuery; + return this._options.defaultQuery } protected override defaultHeaders(opts: Core.FinalRequestOptions): Core.Headers { @@ -139,7 +140,7 @@ export class PropulsionAI extends Core.APIClient { } static PropulsionAI = this; - static DEFAULT_TIMEOUT = 60000; // 1 minute + static DEFAULT_TIMEOUT = 60000 // 1 minute static PropulsionAIError = Errors.PropulsionAIError; static APIError = Errors.APIError; @@ -159,21 +160,7 @@ export class PropulsionAI extends Core.APIClient { static fileFromPath = Uploads.fileFromPath; } -export const { - PropulsionAIError, - APIError, - APIConnectionError, - APIConnectionTimeoutError, - APIUserAbortError, - NotFoundError, - ConflictError, - RateLimitError, - BadRequestError, - AuthenticationError, - InternalServerError, - PermissionDeniedError, - UnprocessableEntityError, -} = Errors; +export const { PropulsionAIError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, NotFoundError, ConflictError, RateLimitError, BadRequestError, AuthenticationError, InternalServerError, PermissionDeniedError, UnprocessableEntityError } = Errors export import toFile = Uploads.toFile; export import fileFromPath = Uploads.fileFromPath; diff --git a/src/lib/.keep b/src/lib/.keep old mode 100644 new mode 100755 diff --git a/src/resource.ts b/src/resource.ts old mode 100644 new mode 100755 diff --git a/src/resources/chat/chat.ts b/src/resources/chat/chat.ts old mode 100644 new mode 100755 index bb465bd..185fe39 --- a/src/resources/chat/chat.ts +++ b/src/resources/chat/chat.ts @@ -1,6 +1,10 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; +import { isRequestOptions } from '../../core'; +import { APIPromise } from '../../core'; +import * as Core from '../../core'; +import { Completions } from './completions'; import * as CompletionsAPI from './completions'; export class Chat extends APIResource { diff --git a/src/resources/chat/completions.ts b/src/resources/chat/completions.ts old mode 100644 new mode 100755 index b583e07..3c9b2d9 --- a/src/resources/chat/completions.ts +++ b/src/resources/chat/completions.ts @@ -1,6 +1,8 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; +import { isRequestOptions } from '../../core'; +import { APIPromise } from '../../core'; import * as Core from '../../core'; import * as CompletionsAPI from './completions'; import { Stream } from '../../streaming'; @@ -368,13 +370,29 @@ export interface CompletionCreateParamsBase { export namespace CompletionCreateParamsBase { export interface Message { - content?: string; + content?: string | Array; role?: 'system' | 'user' | 'assistant' | 'tool'; tool_call_id?: string; } + export namespace Message { + export interface UnionMember1 { + image_url?: UnionMember1.ImageURL; + + text?: string; + + type?: 'text' | 'image_url'; + } + + export namespace UnionMember1 { + export interface ImageURL { + url?: string; + } + } + } + export interface ChatCompletionNamedToolChoice { function: ChatCompletionNamedToolChoice.Function; diff --git a/src/resources/chat/index.ts b/src/resources/chat/index.ts old mode 100644 new mode 100755 diff --git a/src/resources/dataset/dataset.ts b/src/resources/dataset/dataset.ts old mode 100644 new mode 100755 index 8218e1a..d0f42ed --- a/src/resources/dataset/dataset.ts +++ b/src/resources/dataset/dataset.ts @@ -1,7 +1,10 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; +import { isRequestOptions } from '../../core'; +import { APIPromise } from '../../core'; import * as Core from '../../core'; +import { Item } from './item'; import * as DatasetAPI from './dataset'; import * as ItemAPI from './item'; diff --git a/src/resources/dataset/index.ts b/src/resources/dataset/index.ts old mode 100644 new mode 100755 diff --git a/src/resources/dataset/item.ts b/src/resources/dataset/item.ts old mode 100644 new mode 100755 index a8ce405..9a4821b --- a/src/resources/dataset/item.ts +++ b/src/resources/dataset/item.ts @@ -1,6 +1,8 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; +import { isRequestOptions } from '../../core'; +import { APIPromise } from '../../core'; import * as Core from '../../core'; import * as ItemAPI from './item'; @@ -52,11 +54,27 @@ export namespace ItemCreateParams { export namespace Data { export interface Message { - content?: string; + content?: string | Array; role?: 'system' | 'user' | 'assistant' | 'tool'; } + export namespace Message { + export interface UnionMember1 { + image_url?: UnionMember1.ImageURL; + + text?: string; + + type?: 'text' | 'image_url'; + } + + export namespace UnionMember1 { + export interface ImageURL { + url?: string; + } + } + } + export interface Tool { function: Tool.Function; diff --git a/src/resources/index.ts b/src/resources/index.ts old mode 100644 new mode 100755 index 4c40048..0b99c4c --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -1,8 +1,4 @@ export { Chat } from './chat/chat'; export { CompletionCreateResponse, CompletionCreateParams, Completions } from './chat/completions'; export { DatasetCreateResponse, DatasetCreateParams, Dataset } from './dataset/dataset'; -export { - Knowledgebase, - KnowledgebaseCreateParams, - KnowledgebaseResource, -} from './knowledgebase/knowledgebase'; +export { Knowledgebase, KnowledgebaseCreateParams, KnowledgebaseResource } from './knowledgebase/knowledgebase'; diff --git a/src/resources/knowledgebase/file.ts b/src/resources/knowledgebase/file.ts old mode 100644 new mode 100755 index 6d89e16..a4e39da --- a/src/resources/knowledgebase/file.ts +++ b/src/resources/knowledgebase/file.ts @@ -1,47 +1,32 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; +import { isRequestOptions } from '../../core'; +import { APIPromise } from '../../core'; import * as Core from '../../core'; import * as FileAPI from './file'; +import { type Uploadable, multipartFormRequestOptions } from '../../core'; export class FileResource extends APIResource { /** * Uploads a file to a knowledgebase. */ - create( - knowledgebaseCode: string, - body: FileCreateParams, - options?: Core.RequestOptions, - ): Core.APIPromise { - return this._client.post( - `/knowledgebase/${knowledgebaseCode}/file`, - Core.multipartFormRequestOptions({ body, ...options }), - ); + create(knowledgebaseCode: string, body: FileCreateParams, options?: Core.RequestOptions): Core.APIPromise { + return this._client.post(`/knowledgebase/${knowledgebaseCode}/file`, Core.multipartFormRequestOptions({ body, ...options })); } /** * Deletes a file from a knowledgebase. */ - delete( - knowledgebaseCode: string, - fileId: string, - options?: Core.RequestOptions, - ): Core.APIPromise { + delete(knowledgebaseCode: string, fileId: string, options?: Core.RequestOptions): Core.APIPromise { return this._client.delete(`/knowledgebase/${knowledgebaseCode}/file/${fileId}`, options); } /** * Uploads a file to a knowledgebase. */ - upload( - knowledgebaseCode: string, - body: FileUploadParams, - options?: Core.RequestOptions, - ): Core.APIPromise { - return this._client.post( - `/knowledgebase/${knowledgebaseCode}/file`, - Core.multipartFormRequestOptions({ body, ...options }), - ); + upload(knowledgebaseCode: string, body: FileUploadParams, options?: Core.RequestOptions): Core.APIPromise { + return this._client.post(`/knowledgebase/${knowledgebaseCode}/file`, Core.multipartFormRequestOptions({ body, ...options })); } } diff --git a/src/resources/knowledgebase/index.ts b/src/resources/knowledgebase/index.ts old mode 100644 new mode 100755 index bd8d79b..f3d4fc9 --- a/src/resources/knowledgebase/index.ts +++ b/src/resources/knowledgebase/index.ts @@ -1,12 +1,5 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -export { - File, - KnowledgebaseFileUploadResponse, - FileDeleteResponse, - FileCreateParams, - FileUploadParams, - FileResource, -} from './file'; +export { File, KnowledgebaseFileUploadResponse, FileDeleteResponse, FileCreateParams, FileUploadParams, FileResource } from './file'; export { Knowledgebase, KnowledgebaseCreateParams, KnowledgebaseResource } from './knowledgebase'; export { KnowledgebaseItemResponse, ItemCreateParams, Item } from './item'; diff --git a/src/resources/knowledgebase/item.ts b/src/resources/knowledgebase/item.ts old mode 100644 new mode 100755 index e4029d3..0a39368 --- a/src/resources/knowledgebase/item.ts +++ b/src/resources/knowledgebase/item.ts @@ -1,6 +1,8 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; +import { isRequestOptions } from '../../core'; +import { APIPromise } from '../../core'; import * as Core from '../../core'; import * as ItemAPI from './item'; @@ -8,11 +10,7 @@ export class Item extends APIResource { /** * Upload content to a knowledgebase. */ - create( - knowledgebaseCode: string, - body: ItemCreateParams, - options?: Core.RequestOptions, - ): Core.APIPromise { + create(knowledgebaseCode: string, body: ItemCreateParams, options?: Core.RequestOptions): Core.APIPromise { return this._client.post(`/knowledgebase/${knowledgebaseCode}/item`, { body, ...options }); } } diff --git a/src/resources/knowledgebase/knowledgebase.ts b/src/resources/knowledgebase/knowledgebase.ts old mode 100644 new mode 100755 index 9032c5b..b98e4c9 --- a/src/resources/knowledgebase/knowledgebase.ts +++ b/src/resources/knowledgebase/knowledgebase.ts @@ -1,7 +1,11 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; +import { isRequestOptions } from '../../core'; +import { APIPromise } from '../../core'; import * as Core from '../../core'; +import { FileResource } from './file'; +import { Item } from './item'; import * as KnowledgebaseAPI from './knowledgebase'; import * as FileAPI from './file'; import * as ItemAPI from './item'; diff --git a/src/shims/node.ts b/src/shims/node.ts old mode 100644 new mode 100755 diff --git a/src/shims/web.ts b/src/shims/web.ts old mode 100644 new mode 100755 diff --git a/src/uploads.ts b/src/uploads.ts old mode 100644 new mode 100755 index 081827c..977a364 --- a/src/uploads.ts +++ b/src/uploads.ts @@ -149,8 +149,9 @@ async function getBytes(value: ToFileInput): Promise> { } } else { throw new Error( - `Unexpected data type: ${typeof value}; constructor: ${value?.constructor - ?.name}; props: ${propsForError(value)}`, + `Unexpected data type: ${typeof value}; constructor: ${ + value?.constructor?.name + }; props: ${propsForError(value)}`, ); } diff --git a/src/version.ts b/src/version.ts old mode 100644 new mode 100755 index d77fad4..a2b3593 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.23.0'; // x-release-please-version +export const VERSION = '0.23.0';// x-release-please-version diff --git a/tests/api-resources/chat/completions.test.ts b/tests/api-resources/chat/completions.test.ts old mode 100644 new mode 100755 index 0e9b9f4..0b817e2 --- a/tests/api-resources/chat/completions.test.ts +++ b/tests/api-resources/chat/completions.test.ts @@ -1,19 +1,13 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import PropulsionAI from 'propulsionai'; +import PropulsionAI, { toFile } from 'propulsionai'; import { Response } from 'node-fetch'; -const client = new PropulsionAI({ - bearerToken: 'My Bearer Token', - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', -}); +const client = new PropulsionAI({ bearerToken: 'My Bearer Token', baseURL: process.env["TEST_API_BASE_URL"] ?? 'http://127.0.0.1:4010' }); describe('resource completions', () => { test('create: only required params', async () => { - const responsePromise = client.chat.completions.create({ - deployment: 'deployment', - messages: [{}, {}, {}], - }); + const responsePromise = client.chat.completions.create({ deployment: 'deployment', messages: [{}, {}, {}] }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -24,35 +18,6 @@ describe('resource completions', () => { }); test('create: required and optional params', async () => { - const response = await client.chat.completions.create({ - deployment: 'deployment', - messages: [ - { role: 'system', content: 'content' }, - { role: 'system', content: 'content' }, - { role: 'system', content: 'content' }, - ], - knowledgebases: ['string', 'string', 'string'], - max_tokens: 0, - n: 1, - stream: true, - task_id: 'task_id', - temperature: 0, - tool_choice: 'none', - tools: [ - { - type: 'function', - function: { description: 'description', name: 'name', parameters: { foo: 'bar' } }, - }, - { - type: 'function', - function: { description: 'description', name: 'name', parameters: { foo: 'bar' } }, - }, - { - type: 'function', - function: { description: 'description', name: 'name', parameters: { foo: 'bar' } }, - }, - ], - top_p: 0, - }); + const response = await client.chat.completions.create({ deployment: 'deployment', messages: [{ role: 'system', content: 'string' }, { role: 'system', content: 'string' }, { role: 'system', content: 'string' }], knowledgebases: ['string', 'string', 'string'], max_tokens: 0, n: 1, stream: true, task_id: 'task_id', temperature: 0, tool_choice: 'none', tools: [{ type: 'function', function: { description: 'description', name: 'name', parameters: { foo: 'bar' } } }, { type: 'function', function: { description: 'description', name: 'name', parameters: { foo: 'bar' } } }, { type: 'function', function: { description: 'description', name: 'name', parameters: { foo: 'bar' } } }], top_p: 0 }); }); }); diff --git a/tests/api-resources/dataset/dataset.test.ts b/tests/api-resources/dataset/dataset.test.ts old mode 100644 new mode 100755 index e07881a..56eada2 --- a/tests/api-resources/dataset/dataset.test.ts +++ b/tests/api-resources/dataset/dataset.test.ts @@ -1,12 +1,9 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import PropulsionAI from 'propulsionai'; +import PropulsionAI, { toFile } from 'propulsionai'; import { Response } from 'node-fetch'; -const client = new PropulsionAI({ - bearerToken: 'My Bearer Token', - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', -}); +const client = new PropulsionAI({ bearerToken: 'My Bearer Token', baseURL: process.env["TEST_API_BASE_URL"] ?? 'http://127.0.0.1:4010' }); describe('resource dataset', () => { test('create: only required params', async () => { @@ -21,11 +18,6 @@ describe('resource dataset', () => { }); test('create: required and optional params', async () => { - const response = await client.dataset.create({ - name: 'name', - description: 'description', - metadata: { foo: 'bar' }, - settings: { foo: 'bar' }, - }); + const response = await client.dataset.create({ name: 'name', description: 'description', metadata: { foo: 'bar' }, settings: { foo: 'bar' } }); }); }); diff --git a/tests/api-resources/dataset/item.test.ts b/tests/api-resources/dataset/item.test.ts old mode 100644 new mode 100755 index 100f24d..7cd7b4c --- a/tests/api-resources/dataset/item.test.ts +++ b/tests/api-resources/dataset/item.test.ts @@ -1,12 +1,9 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import PropulsionAI from 'propulsionai'; +import PropulsionAI, { toFile } from 'propulsionai'; import { Response } from 'node-fetch'; -const client = new PropulsionAI({ - bearerToken: 'My Bearer Token', - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', -}); +const client = new PropulsionAI({ bearerToken: 'My Bearer Token', baseURL: process.env["TEST_API_BASE_URL"] ?? 'http://127.0.0.1:4010' }); describe('resource item', () => { test('create: only required params', async () => { @@ -21,42 +18,6 @@ describe('resource item', () => { }); test('create: required and optional params', async () => { - const response = await client.dataset.item.create({ - data: { - query: 'query', - tools: [ - { - type: 'function', - function: { description: 'description', name: 'name', parameters: { foo: 'bar' } }, - }, - { - type: 'function', - function: { description: 'description', name: 'name', parameters: { foo: 'bar' } }, - }, - { - type: 'function', - function: { description: 'description', name: 'name', parameters: { foo: 'bar' } }, - }, - ], - chosen: 'chosen', - images: 'images', - prompt: 'prompt', - system: 'system', - history: [ - ['string', 'string', 'string'], - ['string', 'string', 'string'], - ['string', 'string', 'string'], - ], - kto_tag: 'kto_tag', - messages: [ - { role: 'system', content: 'content' }, - { role: 'system', content: 'content' }, - { role: 'system', content: 'content' }, - ], - rejected: 'rejected', - response: 'response', - }, - dataset_id: 0, - }); + const response = await client.dataset.item.create({ data: { query: 'query', tools: [{ type: 'function', function: { description: 'description', name: 'name', parameters: { foo: 'bar' } } }, { type: 'function', function: { description: 'description', name: 'name', parameters: { foo: 'bar' } } }, { type: 'function', function: { description: 'description', name: 'name', parameters: { foo: 'bar' } } }], chosen: 'chosen', images: 'images', prompt: 'prompt', system: 'system', history: [['string', 'string', 'string'], ['string', 'string', 'string'], ['string', 'string', 'string']], kto_tag: 'kto_tag', messages: [{ role: 'system', content: 'string' }, { role: 'system', content: 'string' }, { role: 'system', content: 'string' }], rejected: 'rejected', response: 'response' }, dataset_id: 0 }); }); }); diff --git a/tests/api-resources/knowledgebase/file.test.ts b/tests/api-resources/knowledgebase/file.test.ts old mode 100644 new mode 100755 index 9288b8b..11e3708 --- a/tests/api-resources/knowledgebase/file.test.ts +++ b/tests/api-resources/knowledgebase/file.test.ts @@ -3,16 +3,11 @@ import PropulsionAI, { toFile } from 'propulsionai'; import { Response } from 'node-fetch'; -const client = new PropulsionAI({ - bearerToken: 'My Bearer Token', - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', -}); +const client = new PropulsionAI({ bearerToken: 'My Bearer Token', baseURL: process.env["TEST_API_BASE_URL"] ?? 'http://127.0.0.1:4010' }); describe('resource file', () => { test('create: only required params', async () => { - const responsePromise = client.knowledgebase.file.create('knowledgebase_code', { - file: await toFile(Buffer.from('# my file contents'), 'README.md'), - }); + const responsePromise = client.knowledgebase.file.create('knowledgebase_code', { file: await toFile(Buffer.from('# my file contents'), 'README.md') }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -23,9 +18,7 @@ describe('resource file', () => { }); test('create: required and optional params', async () => { - const response = await client.knowledgebase.file.create('knowledgebase_code', { - file: await toFile(Buffer.from('# my file contents'), 'README.md'), - }); + const response = await client.knowledgebase.file.create('knowledgebase_code', { file: await toFile(Buffer.from('# my file contents'), 'README.md') }); }); test('delete', async () => { @@ -41,15 +34,13 @@ describe('resource file', () => { test('delete: request options instead of params are passed correctly', async () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error - await expect( - client.knowledgebase.file.delete('knowledgebase_code', 'file_id', { path: '/_stainless_unknown_path' }), - ).rejects.toThrow(PropulsionAI.NotFoundError); + await expect(client.knowledgebase.file.delete('knowledgebase_code', 'file_id', { path: '/_stainless_unknown_path' })) + .rejects + .toThrow(PropulsionAI.NotFoundError); }); test('upload: only required params', async () => { - const responsePromise = client.knowledgebase.file.upload('knowledgebase_code', { - file: await toFile(Buffer.from('# my file contents'), 'README.md'), - }); + const responsePromise = client.knowledgebase.file.upload('knowledgebase_code', { file: await toFile(Buffer.from('# my file contents'), 'README.md') }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -60,8 +51,6 @@ describe('resource file', () => { }); test('upload: required and optional params', async () => { - const response = await client.knowledgebase.file.upload('knowledgebase_code', { - file: await toFile(Buffer.from('# my file contents'), 'README.md'), - }); + const response = await client.knowledgebase.file.upload('knowledgebase_code', { file: await toFile(Buffer.from('# my file contents'), 'README.md') }); }); }); diff --git a/tests/api-resources/knowledgebase/item.test.ts b/tests/api-resources/knowledgebase/item.test.ts old mode 100644 new mode 100755 index 07f1e93..1658834 --- a/tests/api-resources/knowledgebase/item.test.ts +++ b/tests/api-resources/knowledgebase/item.test.ts @@ -1,19 +1,13 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import PropulsionAI from 'propulsionai'; +import PropulsionAI, { toFile } from 'propulsionai'; import { Response } from 'node-fetch'; -const client = new PropulsionAI({ - bearerToken: 'My Bearer Token', - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', -}); +const client = new PropulsionAI({ bearerToken: 'My Bearer Token', baseURL: process.env["TEST_API_BASE_URL"] ?? 'http://127.0.0.1:4010' }); describe('resource item', () => { test('create: only required params', async () => { - const responsePromise = client.knowledgebase.item.create('knowledgebase_code', { - content: 'content', - source: 'source', - }); + const responsePromise = client.knowledgebase.item.create('knowledgebase_code', { content: 'content', source: 'source' }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -24,10 +18,6 @@ describe('resource item', () => { }); test('create: required and optional params', async () => { - const response = await client.knowledgebase.item.create('knowledgebase_code', { - content: 'content', - source: 'source', - metadata: {}, - }); + const response = await client.knowledgebase.item.create('knowledgebase_code', { content: 'content', source: 'source', metadata: {} }); }); }); diff --git a/tests/api-resources/knowledgebase/knowledgebase.test.ts b/tests/api-resources/knowledgebase/knowledgebase.test.ts old mode 100644 new mode 100755 index 3d8f4ab..7a0c103 --- a/tests/api-resources/knowledgebase/knowledgebase.test.ts +++ b/tests/api-resources/knowledgebase/knowledgebase.test.ts @@ -1,12 +1,9 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import PropulsionAI from 'propulsionai'; +import PropulsionAI, { toFile } from 'propulsionai'; import { Response } from 'node-fetch'; -const client = new PropulsionAI({ - bearerToken: 'My Bearer Token', - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', -}); +const client = new PropulsionAI({ bearerToken: 'My Bearer Token', baseURL: process.env["TEST_API_BASE_URL"] ?? 'http://127.0.0.1:4010' }); describe('resource knowledgebase', () => { test('create: only required params', async () => { @@ -21,10 +18,6 @@ describe('resource knowledgebase', () => { }); test('create: required and optional params', async () => { - const response = await client.knowledgebase.create({ - name: 'name', - tags: 'tags', - description: 'description', - }); + const response = await client.knowledgebase.create({ name: 'name', tags: 'tags', description: 'description' }); }); }); diff --git a/tests/form.test.ts b/tests/form.test.ts old mode 100644 new mode 100755 diff --git a/tests/index.test.ts b/tests/index.test.ts old mode 100644 new mode 100755 index 04f5806..7e5e63a --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -3,7 +3,7 @@ import PropulsionAI from 'propulsionai'; import { APIUserAbortError } from 'propulsionai'; import { Headers } from 'propulsionai/core'; -import defaultFetch, { Response, type RequestInit, type RequestInfo } from 'node-fetch'; +import defaultFetch, { Response, type RequestInit, type RequestInfo } from 'node-fetch' describe('instantiate client', () => { const env = process.env; @@ -20,11 +20,7 @@ describe('instantiate client', () => { }); describe('defaultHeaders', () => { - const client = new PropulsionAI({ - baseURL: 'http://localhost:5000/', - defaultHeaders: { 'X-My-Default-Header': '2' }, - bearerToken: 'My Bearer Token', - }); + const client = new PropulsionAI({ baseURL: 'http://localhost:5000/', defaultHeaders: { 'X-My-Default-Header': '2' }, bearerToken: 'My Bearer Token' }) test('they are used in the request', () => { const { req } = client.buildRequest({ path: '/foo', method: 'post' }); @@ -52,90 +48,66 @@ describe('instantiate client', () => { describe('defaultQuery', () => { test('with null query params given', () => { - const client = new PropulsionAI({ - baseURL: 'http://localhost:5000/', - defaultQuery: { apiVersion: 'foo' }, - bearerToken: 'My Bearer Token', - }); + const client = new PropulsionAI({ baseURL: 'http://localhost:5000/', defaultQuery: { apiVersion: 'foo' }, bearerToken: 'My Bearer Token' }); expect(client.buildURL('/foo', null)).toEqual('http://localhost:5000/foo?apiVersion=foo'); }); test('multiple default query params', () => { - const client = new PropulsionAI({ - baseURL: 'http://localhost:5000/', - defaultQuery: { apiVersion: 'foo', hello: 'world' }, - bearerToken: 'My Bearer Token', - }); + const client = new PropulsionAI({ baseURL: 'http://localhost:5000/', defaultQuery: { apiVersion: 'foo', hello: 'world' }, bearerToken: 'My Bearer Token' }); expect(client.buildURL('/foo', null)).toEqual('http://localhost:5000/foo?apiVersion=foo&hello=world'); }); test('overriding with `undefined`', () => { - const client = new PropulsionAI({ - baseURL: 'http://localhost:5000/', - defaultQuery: { hello: 'world' }, - bearerToken: 'My Bearer Token', - }); + const client = new PropulsionAI({ baseURL: 'http://localhost:5000/', defaultQuery: { hello: 'world' }, bearerToken: 'My Bearer Token' }) expect(client.buildURL('/foo', { hello: undefined })).toEqual('http://localhost:5000/foo'); }); }); test('custom fetch', async () => { - const client = new PropulsionAI({ - baseURL: 'http://localhost:5000/', - bearerToken: 'My Bearer Token', - fetch: (url) => { - return Promise.resolve( - new Response(JSON.stringify({ url, custom: true }), { - headers: { 'Content-Type': 'application/json' }, - }), - ); - }, - }); + const client = new PropulsionAI({ baseURL: 'http://localhost:5000/', bearerToken: 'My Bearer Token', fetch: (url) => { + return Promise.resolve( + new Response(JSON.stringify({ url, custom: true }), { + headers: { 'Content-Type': 'application/json' }, + }), + ); +} }); const response = await client.get('/foo'); expect(response).toEqual({ url: 'http://localhost:5000/foo', custom: true }); }); test('custom signal', async () => { - const client = new PropulsionAI({ - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', - bearerToken: 'My Bearer Token', - fetch: (...args) => { - return new Promise((resolve, reject) => - setTimeout( - () => - defaultFetch(...args) - .then(resolve) - .catch(reject), - 300, - ), - ); - }, - }); + const client = new PropulsionAI({ baseURL: process.env["TEST_API_BASE_URL"] ?? 'http://127.0.0.1:4010', bearerToken: 'My Bearer Token', fetch: (...args) => { + return new Promise((resolve, reject) => + setTimeout( + () => + defaultFetch(...args) + .then(resolve) + .catch(reject), + 300, + ), + ); +} }); const controller = new AbortController(); setTimeout(() => controller.abort(), 200); const spy = jest.spyOn(client, 'request'); - await expect(client.get('/foo', { signal: controller.signal })).rejects.toThrowError(APIUserAbortError); + await expect(client.get('/foo', { signal: controller.signal })).rejects.toThrowError( + APIUserAbortError, + ); expect(spy).toHaveBeenCalledTimes(1); }); describe('baseUrl', () => { test('trailing slash', () => { - const client = new PropulsionAI({ - baseURL: 'http://localhost:5000/custom/path/', - bearerToken: 'My Bearer Token', - }); + const client = new PropulsionAI({ baseURL: 'http://localhost:5000/custom/path/', bearerToken: 'My Bearer Token' }); expect(client.buildURL('/foo', null)).toEqual('http://localhost:5000/custom/path/foo'); }); test('no trailing slash', () => { - const client = new PropulsionAI({ - baseURL: 'http://localhost:5000/custom/path', - bearerToken: 'My Bearer Token', - }); + const client = new PropulsionAI({ baseURL: 'http://localhost:5000/custom/path', bearerToken: 'My Bearer Token' }); expect(client.buildURL('/foo', null)).toEqual('http://localhost:5000/custom/path/foo'); }); @@ -157,14 +129,15 @@ describe('instantiate client', () => { test('empty env variable', () => { process.env['PROPULSIONAI_BASE_URL'] = ''; // empty const client = new PropulsionAI({ bearerToken: 'My Bearer Token' }); - expect(client.baseURL).toEqual('https://api.propulsionhq.com/api/v2'); + expect(client.baseURL).toEqual('https://api.propulsionhq.com/api/v2') }); test('blank env variable', () => { process.env['PROPULSIONAI_BASE_URL'] = ' '; // blank const client = new PropulsionAI({ bearerToken: 'My Bearer Token' }); - expect(client.baseURL).toEqual('https://api.propulsionhq.com/api/v2'); + expect(client.baseURL).toEqual('https://api.propulsionhq.com/api/v2') }); + }); test('maxRetries option is correctly set', () => { @@ -208,18 +181,13 @@ describe('request building', () => { describe('custom headers', () => { test('handles undefined', () => { - const { req } = client.buildRequest({ - path: '/foo', - method: 'post', - body: { value: 'hello' }, - headers: { 'X-Foo': 'baz', 'x-foo': 'bar', 'x-Foo': undefined, 'x-baz': 'bam', 'X-Baz': null }, - }); + const { req } = client.buildRequest({ path: '/foo', method: 'post', body: { value: 'hello' }, headers: { 'X-Foo': 'baz', 'x-foo': 'bar', 'x-Foo': undefined, 'x-baz': 'bam', 'X-Baz': null } }); expect((req.headers as Record)['x-foo']).toEqual('bar'); expect((req.headers as Record)['x-Foo']).toEqual(undefined); expect((req.headers as Record)['X-Foo']).toEqual(undefined); expect((req.headers as Record)['x-baz']).toEqual(undefined); }); - }); + }) }); describe('retries', () => { @@ -227,8 +195,8 @@ describe('retries', () => { let count = 0; const testFetch = async (url: RequestInfo, { signal }: RequestInit = {}): Promise => { if (count++ === 0) { - return new Promise( - (resolve, reject) => signal?.addEventListener('abort', () => reject(new Error('timed out'))), + return new Promise((resolve, reject) => + signal?.addEventListener('abort', () => reject(new Error('timed out'))), ); } return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } }); diff --git a/tests/responses.test.ts b/tests/responses.test.ts old mode 100644 new mode 100755 diff --git a/tests/stringifyQuery.test.ts b/tests/stringifyQuery.test.ts old mode 100644 new mode 100755 index 8c729c6..0f9dc1f --- a/tests/stringifyQuery.test.ts +++ b/tests/stringifyQuery.test.ts @@ -4,26 +4,24 @@ import { PropulsionAI } from 'propulsionai'; const { stringifyQuery } = PropulsionAI.prototype as any; -describe(stringifyQuery, () => { - for (const [input, expected] of [ - [{ a: '1', b: 2, c: true }, 'a=1&b=2&c=true'], - [{ a: null, b: false, c: undefined }, 'a=&b=false'], - [{ 'a/b': 1.28341 }, `${encodeURIComponent('a/b')}=1.28341`], - [ - { 'a/b': 'c/d', 'e=f': 'g&h' }, - `${encodeURIComponent('a/b')}=${encodeURIComponent('c/d')}&${encodeURIComponent( - 'e=f', - )}=${encodeURIComponent('g&h')}`, - ], - ]) { - it(`${JSON.stringify(input)} -> ${expected}`, () => { - expect(stringifyQuery(input)).toEqual(expected); - }); - } +describe(stringifyQuery, () => { for (const [input, expected] of [ + [{ a: '1', b: 2, c: true }, 'a=1&b=2&c=true'], + [{ a: null, b: false, c: undefined }, 'a=&b=false'], + [{ 'a/b': 1.28341 }, `${encodeURIComponent('a/b')}=1.28341`], + [ + { 'a/b': 'c/d', 'e=f': 'g&h' }, + `${encodeURIComponent('a/b')}=${encodeURIComponent('c/d')}&${encodeURIComponent( + 'e=f', + )}=${encodeURIComponent('g&h')}`, + ], +]) { + it(`${JSON.stringify(input)} -> ${expected}`, () => { + expect(stringifyQuery(input)).toEqual(expected); + }); +} - for (const value of [[], {}, new Date()]) { - it(`${JSON.stringify(value)} -> `, () => { - expect(() => stringifyQuery({ value })).toThrow(`Cannot stringify type ${typeof value}`); - }); - } -}); +for (const value of [[], {}, new Date()]) { + it(`${JSON.stringify(value)} -> `, () => { + expect(() => stringifyQuery({ value })).toThrow(`Cannot stringify type ${typeof value}`); + }); +} }) diff --git a/tests/uploads.test.ts b/tests/uploads.test.ts old mode 100644 new mode 100755 diff --git a/tsc-multi.json b/tsc-multi.json old mode 100644 new mode 100755 diff --git a/tsconfig.build.json b/tsconfig.build.json old mode 100644 new mode 100755 diff --git a/tsconfig.deno.json b/tsconfig.deno.json old mode 100644 new mode 100755 diff --git a/tsconfig.dist-src.json b/tsconfig.dist-src.json old mode 100644 new mode 100755 diff --git a/tsconfig.json b/tsconfig.json old mode 100644 new mode 100755 diff --git a/yarn.lock b/yarn.lock old mode 100644 new mode 100755 From ee99162478945726833f5fa2ee1eb0bd9a1eb7c3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 24 Aug 2024 09:23:55 +0000 Subject: [PATCH 2/2] release: 0.23.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ package.json | 2 +- src/version.ts | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 97bce11..4e31c15 100755 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.23.0" + ".": "0.23.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 1249675..e91592a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.23.1 (2024-08-24) + +Full Changelog: [v0.23.0...v0.23.1](https://github.com/propulsion-ai/propulsionai-node/compare/v0.23.0...v0.23.1) + +### Features + +* **api:** OpenAPI spec update via Stainless API ([#169](https://github.com/propulsion-ai/propulsionai-node/issues/169)) ([6b39b79](https://github.com/propulsion-ai/propulsionai-node/commit/6b39b7960cf6f635130c8487fae4ddd3ad44aa16)) + ## 0.23.0 (2024-08-02) Full Changelog: [v0.22.0...v0.23.0](https://github.com/propulsion-ai/propulsionai-node/compare/v0.22.0...v0.23.0) diff --git a/package.json b/package.json index 03d7ea5..7ca2404 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "propulsionai", - "version": "0.23.0", + "version": "0.23.1", "description": "The official TypeScript library for the PropulsionAI API", "author": "PropulsionAI ", "types": "dist/index.d.ts", diff --git a/src/version.ts b/src/version.ts index a2b3593..a6fc6e8 100755 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.23.0';// x-release-please-version +export const VERSION = '0.23.1';// x-release-please-version