modelfusion 0.126.0 → 0.128.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/README.md +6 -11
  3. package/core/api/postToApi.cjs +2 -2
  4. package/core/api/postToApi.d.ts +2 -3
  5. package/core/api/postToApi.js +2 -2
  6. package/core/getFunctionCallLogger.cjs +2 -2
  7. package/core/getFunctionCallLogger.js +2 -2
  8. package/model-function/generate-image/generateImage.cjs +2 -1
  9. package/model-function/generate-image/generateImage.d.ts +4 -5
  10. package/model-function/generate-image/generateImage.js +2 -1
  11. package/model-function/generate-speech/SpeechGenerationEvent.d.ts +1 -2
  12. package/model-function/generate-speech/SpeechGenerationModel.d.ts +3 -4
  13. package/model-function/generate-speech/generateSpeech.d.ts +3 -4
  14. package/model-function/generate-speech/streamSpeech.d.ts +3 -4
  15. package/model-function/generate-structure/StructureFromTextGenerationModel.cjs +2 -2
  16. package/model-function/generate-structure/StructureFromTextGenerationModel.js +2 -2
  17. package/model-function/generate-structure/StructureFromTextStreamingModel.cjs +1 -1
  18. package/model-function/generate-structure/StructureFromTextStreamingModel.js +1 -1
  19. package/model-function/generate-structure/streamStructure.cjs +14 -12
  20. package/model-function/generate-structure/streamStructure.d.ts +11 -29
  21. package/model-function/generate-structure/streamStructure.js +14 -12
  22. package/model-function/generate-text/prompt-template/ContentPart.cjs +9 -1
  23. package/model-function/generate-text/prompt-template/ContentPart.d.ts +3 -2
  24. package/model-function/generate-text/prompt-template/ContentPart.js +7 -0
  25. package/model-function/generate-text/streamText.cjs +1 -1
  26. package/model-function/generate-text/streamText.d.ts +1 -1
  27. package/model-function/generate-text/streamText.js +1 -1
  28. package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +2 -1
  29. package/model-provider/elevenlabs/ElevenLabsSpeechModel.d.ts +2 -3
  30. package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +2 -1
  31. package/model-provider/llamacpp/LlamaCppBakLLaVA1PromptTemplate.cjs +2 -2
  32. package/model-provider/llamacpp/LlamaCppBakLLaVA1PromptTemplate.js +3 -3
  33. package/model-provider/lmnt/LmntSpeechModel.cjs +2 -1
  34. package/model-provider/lmnt/LmntSpeechModel.d.ts +1 -2
  35. package/model-provider/lmnt/LmntSpeechModel.js +2 -1
  36. package/model-provider/mistral/MistralChatModel.test.cjs +2 -2
  37. package/model-provider/mistral/MistralChatModel.test.js +2 -2
  38. package/model-provider/ollama/OllamaChatModel.cjs +1 -1
  39. package/model-provider/ollama/OllamaChatModel.d.ts +5 -5
  40. package/model-provider/ollama/OllamaChatModel.js +1 -1
  41. package/model-provider/ollama/OllamaChatPromptTemplate.cjs +1 -1
  42. package/model-provider/ollama/OllamaChatPromptTemplate.js +2 -2
  43. package/model-provider/ollama/OllamaCompletionModel.cjs +2 -2
  44. package/model-provider/ollama/OllamaCompletionModel.d.ts +5 -5
  45. package/model-provider/ollama/OllamaCompletionModel.js +2 -2
  46. package/model-provider/ollama/OllamaCompletionModel.test.cjs +4 -6
  47. package/model-provider/ollama/OllamaCompletionModel.test.js +4 -6
  48. package/model-provider/openai/OpenAIChatMessage.cjs +5 -4
  49. package/model-provider/openai/OpenAIChatMessage.js +5 -4
  50. package/model-provider/openai/OpenAIChatModel.test.cjs +4 -6
  51. package/model-provider/openai/OpenAIChatModel.test.js +4 -6
  52. package/model-provider/openai/OpenAISpeechModel.d.ts +1 -2
  53. package/model-provider/openai/OpenAITranscriptionModel.d.ts +1 -2
  54. package/model-provider/openai-compatible/FireworksAIApiConfiguration.cjs +6 -0
  55. package/model-provider/openai-compatible/FireworksAIApiConfiguration.d.ts +3 -1
  56. package/model-provider/openai-compatible/FireworksAIApiConfiguration.js +6 -0
  57. package/model-provider/openai-compatible/OpenAICompatibleApiConfiguration.d.ts +5 -0
  58. package/model-provider/openai-compatible/OpenAICompatibleChatModel.cjs +1 -1
  59. package/model-provider/openai-compatible/OpenAICompatibleChatModel.d.ts +2 -3
  60. package/model-provider/openai-compatible/OpenAICompatibleChatModel.js +1 -1
  61. package/model-provider/openai-compatible/OpenAICompatibleCompletionModel.cjs +1 -1
  62. package/model-provider/openai-compatible/OpenAICompatibleCompletionModel.d.ts +2 -3
  63. package/model-provider/openai-compatible/OpenAICompatibleCompletionModel.js +1 -1
  64. package/model-provider/openai-compatible/OpenAICompatibleTextEmbeddingModel.cjs +1 -1
  65. package/model-provider/openai-compatible/OpenAICompatibleTextEmbeddingModel.d.ts +2 -3
  66. package/model-provider/openai-compatible/OpenAICompatibleTextEmbeddingModel.js +1 -1
  67. package/model-provider/openai-compatible/PerplexityApiConfiguration.cjs +6 -0
  68. package/model-provider/openai-compatible/PerplexityApiConfiguration.d.ts +3 -1
  69. package/model-provider/openai-compatible/PerplexityApiConfiguration.js +6 -0
  70. package/model-provider/openai-compatible/TogetherAIApiConfiguration.cjs +6 -0
  71. package/model-provider/openai-compatible/TogetherAIApiConfiguration.d.ts +3 -1
  72. package/model-provider/openai-compatible/TogetherAIApiConfiguration.js +6 -0
  73. package/model-provider/openai-compatible/index.cjs +1 -1
  74. package/model-provider/openai-compatible/index.d.ts +1 -1
  75. package/model-provider/openai-compatible/index.js +1 -1
  76. package/model-provider/stability/StabilityImageGenerationModel.d.ts +5 -5
  77. package/model-provider/whispercpp/WhisperCppTranscriptionModel.d.ts +1 -2
  78. package/package.json +3 -2
  79. package/util/UInt8Utils.cjs +50 -0
  80. package/util/UInt8Utils.d.ts +3 -0
  81. package/util/UInt8Utils.js +44 -0
  82. package/model-provider/openai-compatible/OpenAICompatibleProviderName.d.ts +0 -1
  83. /package/model-provider/openai-compatible/{OpenAICompatibleProviderName.cjs → OpenAICompatibleApiConfiguration.cjs} +0 -0
  84. /package/model-provider/openai-compatible/{OpenAICompatibleProviderName.js → OpenAICompatibleApiConfiguration.js} +0 -0
@@ -1,4 +1,3 @@
1
- import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
2
1
  import { FlexibleStructureFromTextPromptTemplate, StructureFromTextPromptTemplate } from "../../model-function/generate-structure/StructureFromTextPromptTemplate.js";
3
2
  import { StructureFromTextStreamingModel } from "../../model-function/generate-structure/StructureFromTextStreamingModel.js";
4
3
  import { PromptTemplateFullTextModel } from "../../model-function/generate-text/PromptTemplateFullTextModel.js";
@@ -7,9 +6,9 @@ import { TextGenerationPromptTemplate } from "../../model-function/generate-text
7
6
  import { ToolCallGenerationModel } from "../../tool/generate-tool-call/ToolCallGenerationModel.js";
8
7
  import { ToolCallsGenerationModel } from "../../tool/generate-tool-calls/ToolCallsGenerationModel.js";
9
8
  import { AbstractOpenAIChatModel, AbstractOpenAIChatSettings, OpenAIChatPrompt } from "../openai/AbstractOpenAIChatModel.js";
10
- import { OpenAICompatibleProviderName } from "./OpenAICompatibleProviderName.js";
9
+ import { OpenAICompatibleApiConfiguration, OpenAICompatibleProviderName } from "./OpenAICompatibleApiConfiguration.js";
11
10
  export interface OpenAICompatibleChatSettings extends AbstractOpenAIChatSettings {
12
- api: ApiConfiguration;
11
+ api: OpenAICompatibleApiConfiguration;
13
12
  provider?: OpenAICompatibleProviderName;
14
13
  }
15
14
  /**
@@ -34,7 +34,7 @@ export class OpenAICompatibleChatModel extends AbstractOpenAIChatModel {
34
34
  });
35
35
  }
36
36
  get provider() {
37
- return this.settings.provider ?? "openaicompatible";
37
+ return (this.settings.provider ?? this.settings.api.provider ?? "openaicompatible");
38
38
  }
39
39
  get modelName() {
40
40
  return this.settings.model;
@@ -36,7 +36,7 @@ class OpenAICompatibleCompletionModel extends AbstractOpenAICompletionModel_js_1
36
36
  });
37
37
  }
38
38
  get provider() {
39
- return this.settings.provider ?? "openaicompatible";
39
+ return (this.settings.provider ?? this.settings.api.provider ?? "openaicompatible");
40
40
  }
41
41
  get modelName() {
42
42
  return this.settings.model;
@@ -1,11 +1,10 @@
1
- import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
2
1
  import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
3
2
  import { TextStreamingBaseModel } from "../../model-function/generate-text/TextGenerationModel.js";
4
3
  import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
5
4
  import { AbstractOpenAICompletionModel, AbstractOpenAICompletionModelSettings } from "../openai/AbstractOpenAICompletionModel.js";
6
- import { OpenAICompatibleProviderName } from "./OpenAICompatibleProviderName.js";
5
+ import { OpenAICompatibleApiConfiguration, OpenAICompatibleProviderName } from "./OpenAICompatibleApiConfiguration.js";
7
6
  export interface OpenAICompatibleCompletionModelSettings extends AbstractOpenAICompletionModelSettings {
8
- api: ApiConfiguration;
7
+ api: OpenAICompatibleApiConfiguration;
9
8
  provider?: OpenAICompatibleProviderName;
10
9
  }
11
10
  /**
@@ -33,7 +33,7 @@ export class OpenAICompatibleCompletionModel extends AbstractOpenAICompletionMod
33
33
  });
34
34
  }
35
35
  get provider() {
36
- return this.settings.provider ?? "openaicompatible";
36
+ return (this.settings.provider ?? this.settings.api.provider ?? "openaicompatible");
37
37
  }
38
38
  get modelName() {
39
39
  return this.settings.model;
@@ -7,7 +7,7 @@ class OpenAICompatibleTextEmbeddingModel extends AbstractOpenAITextEmbeddingMode
7
7
  super(settings);
8
8
  }
9
9
  get provider() {
10
- return this.settings.provider ?? "openaicompatible";
10
+ return (this.settings.provider ?? this.settings.api.provider ?? "openaicompatible");
11
11
  }
12
12
  get modelName() {
13
13
  return this.settings.model;
@@ -1,9 +1,8 @@
1
- import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
2
1
  import { EmbeddingModel } from "../../model-function/embed/EmbeddingModel.js";
3
2
  import { AbstractOpenAITextEmbeddingModel, AbstractOpenAITextEmbeddingModelSettings } from "../openai/AbstractOpenAITextEmbeddingModel.js";
4
- import { OpenAICompatibleProviderName } from "./OpenAICompatibleProviderName.js";
3
+ import { OpenAICompatibleApiConfiguration, OpenAICompatibleProviderName } from "./OpenAICompatibleApiConfiguration.js";
5
4
  export interface OpenAICompatibleTextEmbeddingModelSettings extends AbstractOpenAITextEmbeddingModelSettings {
6
- api: ApiConfiguration;
5
+ api: OpenAICompatibleApiConfiguration;
7
6
  provider?: OpenAICompatibleProviderName;
8
7
  model: string;
9
8
  embeddingDimensions?: number;
@@ -4,7 +4,7 @@ export class OpenAICompatibleTextEmbeddingModel extends AbstractOpenAITextEmbedd
4
4
  super(settings);
5
5
  }
6
6
  get provider() {
7
- return this.settings.provider ?? "openaicompatible";
7
+ return (this.settings.provider ?? this.settings.api.provider ?? "openaicompatible");
8
8
  }
9
9
  get modelName() {
10
10
  return this.settings.model;
@@ -28,6 +28,12 @@ class PerplexityApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApi
28
28
  path: "",
29
29
  },
30
30
  });
31
+ Object.defineProperty(this, "provider", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: "openaicompatible-perplexity"
36
+ });
31
37
  }
32
38
  }
33
39
  exports.PerplexityApiConfiguration = PerplexityApiConfiguration;
@@ -1,4 +1,5 @@
1
1
  import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ import { OpenAICompatibleApiConfiguration } from "./OpenAICompatibleApiConfiguration.js";
2
3
  /**
3
4
  * Configuration for the Perplexity API.
4
5
  *
@@ -6,8 +7,9 @@ import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfiguratio
6
7
  *
7
8
  * @see https://docs.perplexity.ai/reference/post_chat_completions
8
9
  */
9
- export declare class PerplexityApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
10
+ export declare class PerplexityApiConfiguration extends BaseUrlApiConfigurationWithDefaults implements OpenAICompatibleApiConfiguration {
10
11
  constructor(settings?: PartialBaseUrlPartsApiConfigurationOptions & {
11
12
  apiKey?: string;
12
13
  });
14
+ readonly provider = "openaicompatible-perplexity";
13
15
  }
@@ -25,5 +25,11 @@ export class PerplexityApiConfiguration extends BaseUrlApiConfigurationWithDefau
25
25
  path: "",
26
26
  },
27
27
  });
28
+ Object.defineProperty(this, "provider", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: "openaicompatible-perplexity"
33
+ });
28
34
  }
29
35
  }
@@ -28,6 +28,12 @@ class TogetherAIApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApi
28
28
  path: "/v1",
29
29
  },
30
30
  });
31
+ Object.defineProperty(this, "provider", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: "openaicompatible-togetherai"
36
+ });
31
37
  }
32
38
  }
33
39
  exports.TogetherAIApiConfiguration = TogetherAIApiConfiguration;
@@ -1,4 +1,5 @@
1
1
  import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ import { OpenAICompatibleApiConfiguration } from "./OpenAICompatibleApiConfiguration.js";
2
3
  /**
3
4
  * Configuration for the Together.ai API.
4
5
  *
@@ -6,8 +7,9 @@ import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfiguratio
6
7
  *
7
8
  * @see https://docs.together.ai/docs/openai-api-compatibility
8
9
  */
9
- export declare class TogetherAIApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
10
+ export declare class TogetherAIApiConfiguration extends BaseUrlApiConfigurationWithDefaults implements OpenAICompatibleApiConfiguration {
10
11
  constructor(settings?: PartialBaseUrlPartsApiConfigurationOptions & {
11
12
  apiKey?: string;
12
13
  });
14
+ readonly provider = "openaicompatible-togetherai";
13
15
  }
@@ -25,5 +25,11 @@ export class TogetherAIApiConfiguration extends BaseUrlApiConfigurationWithDefau
25
25
  path: "/v1",
26
26
  },
27
27
  });
28
+ Object.defineProperty(this, "provider", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: "openaicompatible-togetherai"
33
+ });
28
34
  }
29
35
  }
@@ -28,10 +28,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.openaicompatible = void 0;
30
30
  __exportStar(require("./FireworksAIApiConfiguration.cjs"), exports);
31
+ __exportStar(require("./OpenAICompatibleApiConfiguration.cjs"), exports);
31
32
  __exportStar(require("./OpenAICompatibleChatModel.cjs"), exports);
32
33
  __exportStar(require("./OpenAICompatibleCompletionModel.cjs"), exports);
33
34
  exports.openaicompatible = __importStar(require("./OpenAICompatibleFacade.cjs"));
34
- __exportStar(require("./OpenAICompatibleProviderName.cjs"), exports);
35
35
  __exportStar(require("./OpenAICompatibleTextEmbeddingModel.cjs"), exports);
36
36
  __exportStar(require("./PerplexityApiConfiguration.cjs"), exports);
37
37
  __exportStar(require("./TogetherAIApiConfiguration.cjs"), exports);
@@ -1,8 +1,8 @@
1
1
  export * from "./FireworksAIApiConfiguration.js";
2
+ export * from "./OpenAICompatibleApiConfiguration.js";
2
3
  export * from "./OpenAICompatibleChatModel.js";
3
4
  export * from "./OpenAICompatibleCompletionModel.js";
4
5
  export * as openaicompatible from "./OpenAICompatibleFacade.js";
5
- export * from "./OpenAICompatibleProviderName.js";
6
6
  export * from "./OpenAICompatibleTextEmbeddingModel.js";
7
7
  export * from "./PerplexityApiConfiguration.js";
8
8
  export * from "./TogetherAIApiConfiguration.js";
@@ -1,8 +1,8 @@
1
1
  export * from "./FireworksAIApiConfiguration.js";
2
+ export * from "./OpenAICompatibleApiConfiguration.js";
2
3
  export * from "./OpenAICompatibleChatModel.js";
3
4
  export * from "./OpenAICompatibleCompletionModel.js";
4
5
  export * as openaicompatible from "./OpenAICompatibleFacade.js";
5
- export * from "./OpenAICompatibleProviderName.js";
6
6
  export * from "./OpenAICompatibleTextEmbeddingModel.js";
7
7
  export * from "./PerplexityApiConfiguration.js";
8
8
  export * from "./TogetherAIApiConfiguration.js";
@@ -69,9 +69,9 @@ export declare class StabilityImageGenerationModel extends AbstractModel<Stabili
69
69
  doGenerateImages(prompt: StabilityImageGenerationPrompt, callOptions: FunctionCallOptions): Promise<{
70
70
  rawResponse: {
71
71
  artifacts: {
72
- base64: string;
73
72
  finishReason: "ERROR" | "SUCCESS" | "CONTENT_FILTERED";
74
73
  seed: number;
74
+ base64: string;
75
75
  }[];
76
76
  };
77
77
  base64Images: string[];
@@ -86,25 +86,25 @@ declare const stabilityImageGenerationResponseSchema: z.ZodObject<{
86
86
  seed: z.ZodNumber;
87
87
  finishReason: z.ZodEnum<["SUCCESS", "ERROR", "CONTENT_FILTERED"]>;
88
88
  }, "strip", z.ZodTypeAny, {
89
- base64: string;
90
89
  finishReason: "ERROR" | "SUCCESS" | "CONTENT_FILTERED";
91
90
  seed: number;
92
- }, {
93
91
  base64: string;
92
+ }, {
94
93
  finishReason: "ERROR" | "SUCCESS" | "CONTENT_FILTERED";
95
94
  seed: number;
95
+ base64: string;
96
96
  }>, "many">;
97
97
  }, "strip", z.ZodTypeAny, {
98
98
  artifacts: {
99
- base64: string;
100
99
  finishReason: "ERROR" | "SUCCESS" | "CONTENT_FILTERED";
101
100
  seed: number;
101
+ base64: string;
102
102
  }[];
103
103
  }, {
104
104
  artifacts: {
105
- base64: string;
106
105
  finishReason: "ERROR" | "SUCCESS" | "CONTENT_FILTERED";
107
106
  seed: number;
107
+ base64: string;
108
108
  }[];
109
109
  }>;
110
110
  export type StabilityImageGenerationResponse = z.infer<typeof stabilityImageGenerationResponseSchema>;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { FunctionCallOptions } from "../../core/FunctionOptions.js";
3
2
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
3
  import { AbstractModel } from "../../model-function/AbstractModel.js";
@@ -9,7 +8,7 @@ export interface WhisperCppTranscriptionModelSettings extends TranscriptionModel
9
8
  }
10
9
  export type WhisperCppTranscriptionInput = {
11
10
  type: "wav";
12
- data: Buffer;
11
+ data: Uint8Array;
13
12
  };
14
13
  export declare class WhisperCppTranscriptionModel extends AbstractModel<WhisperCppTranscriptionModelSettings> implements TranscriptionModel<WhisperCppTranscriptionInput, WhisperCppTranscriptionModelSettings> {
15
14
  constructor(settings: WhisperCppTranscriptionModelSettings);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modelfusion",
3
3
  "description": "The TypeScript library for building AI applications.",
4
- "version": "0.126.0",
4
+ "version": "0.128.0",
5
5
  "author": "Lars Grammel",
6
6
  "license": "MIT",
7
7
  "keywords": [
@@ -80,6 +80,7 @@
80
80
  "@vitest/ui": "1.1.0",
81
81
  "eslint": "^8.45.0",
82
82
  "eslint-config-prettier": "9.1.0",
83
- "msw": "2.0.11"
83
+ "msw": "2.0.11",
84
+ "type-fest": "4.9.0"
84
85
  }
85
86
  }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /*
3
+ * MIT License
4
+ *
5
+ * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ *
9
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10
+ *
11
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.uint8ArrayToBase64 = exports.base64ToUint8Array = exports.toUint8Array = void 0;
15
+ // copied from: https://github.com/sindresorhus/uint8array-extras/blob/main/index.js
16
+ function toUint8Array(value) {
17
+ if (value instanceof ArrayBuffer) {
18
+ return new Uint8Array(value);
19
+ }
20
+ if (ArrayBuffer.isView(value)) {
21
+ return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
22
+ }
23
+ throw new TypeError(`Unsupported value, got \`${typeof value}\`.`);
24
+ }
25
+ exports.toUint8Array = toUint8Array;
26
+ function base64ToUint8Array(base64String) {
27
+ return Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), (x) => x.codePointAt(0));
28
+ }
29
+ exports.base64ToUint8Array = base64ToUint8Array;
30
+ // Reference: https://phuoc.ng/collection/this-vs-that/concat-vs-push/
31
+ const MAX_BLOCK_SIZE = 65535;
32
+ function uint8ArrayToBase64(array) {
33
+ let base64;
34
+ if (array.length < MAX_BLOCK_SIZE) {
35
+ // Required as `btoa` and `atob` don't properly support Unicode: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem
36
+ base64 = globalThis.btoa(String.fromCodePoint(...array));
37
+ }
38
+ else {
39
+ base64 = "";
40
+ for (const value of array) {
41
+ base64 += String.fromCodePoint(value);
42
+ }
43
+ base64 = globalThis.btoa(base64);
44
+ }
45
+ return base64;
46
+ }
47
+ exports.uint8ArrayToBase64 = uint8ArrayToBase64;
48
+ function base64UrlToBase64(base64url) {
49
+ return base64url.replaceAll("-", "+").replaceAll("_", "/");
50
+ }
@@ -0,0 +1,3 @@
1
+ export declare function toUint8Array(value: unknown): Uint8Array;
2
+ export declare function base64ToUint8Array(base64String: string): Uint8Array;
3
+ export declare function uint8ArrayToBase64(array: Uint8Array): string;
@@ -0,0 +1,44 @@
1
+ /*
2
+ * MIT License
3
+ *
4
+ * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+ *
8
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
+ *
10
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11
+ */
12
+ // copied from: https://github.com/sindresorhus/uint8array-extras/blob/main/index.js
13
+ export function toUint8Array(value) {
14
+ if (value instanceof ArrayBuffer) {
15
+ return new Uint8Array(value);
16
+ }
17
+ if (ArrayBuffer.isView(value)) {
18
+ return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
19
+ }
20
+ throw new TypeError(`Unsupported value, got \`${typeof value}\`.`);
21
+ }
22
+ export function base64ToUint8Array(base64String) {
23
+ return Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), (x) => x.codePointAt(0));
24
+ }
25
+ // Reference: https://phuoc.ng/collection/this-vs-that/concat-vs-push/
26
+ const MAX_BLOCK_SIZE = 65535;
27
+ export function uint8ArrayToBase64(array) {
28
+ let base64;
29
+ if (array.length < MAX_BLOCK_SIZE) {
30
+ // Required as `btoa` and `atob` don't properly support Unicode: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem
31
+ base64 = globalThis.btoa(String.fromCodePoint(...array));
32
+ }
33
+ else {
34
+ base64 = "";
35
+ for (const value of array) {
36
+ base64 += String.fromCodePoint(value);
37
+ }
38
+ base64 = globalThis.btoa(base64);
39
+ }
40
+ return base64;
41
+ }
42
+ function base64UrlToBase64(base64url) {
43
+ return base64url.replaceAll("-", "+").replaceAll("_", "/");
44
+ }
@@ -1 +0,0 @@
1
- export type OpenAICompatibleProviderName = `openaicompatible` | `openaicompatible-${string}`;