diff --git a/engine/generators/languages/typescript/generated_tests/array_types/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/array_types/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/array_types/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/array_types/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/array_types/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/array_types/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/array_types/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/asserts/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/asserts/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/asserts/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/asserts/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/asserts/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/asserts/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/asserts/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/classes/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/classes/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/classes/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/classes/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/classes/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/classes/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/classes/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/edge_cases/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/edge_cases/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/edge_cases/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/edge_cases/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/edge_cases/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/edge_cases/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/edge_cases/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/enums/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/enums/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/enums/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/enums/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/enums/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/enums/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/enums/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/literal_types/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/literal_types/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/literal_types/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/literal_types/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/literal_types/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/literal_types/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/literal_types/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/map_types/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/map_types/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/map_types/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/map_types/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/map_types/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/map_types/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/map_types/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/media_types/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/media_types/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/media_types/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/media_types/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/media_types/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/media_types/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/media_types/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/mixed_complex_types/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/mixed_complex_types/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/mixed_complex_types/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/mixed_complex_types/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/mixed_complex_types/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/mixed_complex_types/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/mixed_complex_types/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/nested_structures/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/nested_structures/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/nested_structures/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/nested_structures/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/nested_structures/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/nested_structures/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/nested_structures/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/optional_nullable/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/optional_nullable/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/optional_nullable/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/optional_nullable/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/optional_nullable/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/optional_nullable/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/optional_nullable/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/primitive_types/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/primitive_types/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/primitive_types/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/primitive_types/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/primitive_types/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/primitive_types/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/primitive_types/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/recursive_types/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/recursive_types/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/recursive_types/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/recursive_types/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/recursive_types/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/recursive_types/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/recursive_types/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/sample/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/sample/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/sample/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/sample/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/sample/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/sample/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/sample/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/semantic_streaming/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/semantic_streaming/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/semantic_streaming/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/semantic_streaming/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/semantic_streaming/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/semantic_streaming/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/semantic_streaming/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/union_types_extended/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/union_types_extended/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/union_types_extended/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/union_types_extended/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/union_types_extended/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/union_types_extended/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/union_types_extended/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/generated_tests/unions/baml_client/index.ts b/engine/generators/languages/typescript/generated_tests/unions/baml_client/index.ts index 655784c784..0bbc931212 100644 --- a/engine/generators/languages/typescript/generated_tests/unions/baml_client/index.ts +++ b/engine/generators/languages/typescript/generated_tests/unions/baml_client/index.ts @@ -21,11 +21,11 @@ $ pnpm add @boundaryml/baml /** * If this import fails, you may need to upgrade @boundaryml/baml. * - * Please upgrade @boundaryml/baml to 0.212.0. + * Please upgrade @boundaryml/baml to 0.213.0. * - * $ npm install @boundaryml/baml@0.212.0 - * $ yarn add @boundaryml/baml@0.212.0 - * $ pnpm add @boundaryml/baml@0.212.0 + * $ npm install @boundaryml/baml@0.213.0 + * $ yarn add @boundaryml/baml@0.213.0 + * $ pnpm add @boundaryml/baml@0.213.0 * * If nothing else works, please ask for help: * @@ -35,7 +35,7 @@ $ pnpm add @boundaryml/baml **/ import { ThrowIfVersionMismatch } from "@boundaryml/baml"; -export const version = "0.212.0"; +export const version = "0.213.0"; ThrowIfVersionMismatch(version); diff --git a/engine/generators/languages/typescript/generated_tests/unions/baml_client/watchers.ts b/engine/generators/languages/typescript/generated_tests/unions/baml_client/watchers.ts new file mode 100644 index 0000000000..1e78f25173 --- /dev/null +++ b/engine/generators/languages/typescript/generated_tests/unions/baml_client/watchers.ts @@ -0,0 +1,107 @@ +/************************************************************************************************* + +Welcome to Baml! To use this generated code, please run one of the following: + +$ npm install @boundaryml/baml +$ yarn add @boundaryml/baml +$ pnpm add @boundaryml/baml + +*************************************************************************************************/ + +// This file was generated by BAML: please do not edit it. Instead, edit the +// BAML files and re-generate this code using: baml-cli generate +// You can install baml-cli with: +// $ npm install @boundaryml/baml +// +/* eslint-disable */ +// tslint:disable +// @ts-nocheck +// biome-ignore format: autogenerated code + +import { BamlStream } from "@boundaryml/baml" + +export interface BlockNotification { + block_label: string + notification_type: "enter" | "exit" +} + +export interface VarNotification { + variable_name: string + value: T + timestamp: string + function_name: string +} + +// Internal stream notification from Rust FFI +interface InternalStreamEvent { + streamId: string + notificationType: "start" | "update" | "end" + value?: any +} + +// Simple async iterable stream for watch notifications +class NotificationStream implements BamlStream { + private eventQueue: (PartialT | null)[] = [] + private isComplete = false + + pushValue(value: PartialT): void { + this.eventQueue.push(value) + } + + complete(): void { + this.isComplete = true + this.eventQueue.push(null) + } + + async *[Symbol.asyncIterator](): AsyncIterableIterator { + while (true) { + const event = this.eventQueue.shift() + + if (event === undefined) { + if (this.isComplete) { + break + } + // Wait a bit for more events + await new Promise(resolve => setTimeout(resolve, 10)) + continue + } + + if (event === null) { + break + } + + yield event + } + } + + async getFinalResponse(): Promise { + // For emit streams, just get the last value + let lastValue: PartialT | null = null + for await (const value of this) { + lastValue = value + } + return lastValue as unknown as FinalT + } + + toStreamable(): ReadableStream { + throw new Error("toStreamable not implemented for EmitStream") + } +} + +type BlockHandler = (event: BlockNotification) => void +type VarHandler = (event: VarNotification) => void +type StreamHandler = (event: VarNotification>) => void +type InternalStreamHandler = (event: InternalStreamEvent) => void + +export interface InternalEventBindings { + functionName: string + block: BlockHandler[] + vars: Record[]> + streams: Record + functions: Record +} + +export interface EventCollectorInternal { + __handlers(): InternalEventBindings +} + diff --git a/engine/generators/languages/typescript/src/_templates/type_builder.ts.j2 b/engine/generators/languages/typescript/src/_templates/type_builder.ts.j2 index 2ab80959e9..cecbc2fe0f 100644 --- a/engine/generators/languages/typescript/src/_templates/type_builder.ts.j2 +++ b/engine/generators/languages/typescript/src/_templates/type_builder.ts.j2 @@ -109,3 +109,5 @@ export default class TypeBuilder { this.tb.addBaml(baml); } } + +export { TypeBuilder }; \ No newline at end of file diff --git a/engine/generators/languages/typescript/src/lib.rs b/engine/generators/languages/typescript/src/lib.rs index 9ba6c8b07b..ce08b35df5 100644 --- a/engine/generators/languages/typescript/src/lib.rs +++ b/engine/generators/languages/typescript/src/lib.rs @@ -401,7 +401,10 @@ fn add_js_suffix_to_imports(content: &str) -> String { let closing_quote = &caps[4]; // Check if it's a relative path (starts with ./ or ../) - if path.starts_with("./") || path.starts_with("../") { + let is_relative = path.starts_with("./") || path.starts_with("../"); + let is_baml_internal = path.starts_with("@boundaryml/baml/"); + + if is_relative || is_baml_internal { // Check if it already has a common JS/TS/CSS extension if !path.ends_with(".js") && !path.ends_with(".mjs") && @@ -514,6 +517,17 @@ mod tests { add_js_suffix_to_imports("import { BamlClient } from '@boundaryml/baml';"), "import { BamlClient } from '@boundaryml/baml';" ); + + assert_eq!( + add_js_suffix_to_imports("import { FieldType } from '@boundaryml/baml/native';"), + "import { FieldType } from '@boundaryml/baml/native.js';" + ); + assert_eq!( + add_js_suffix_to_imports( + "import { TypeBuilder } from '@boundaryml/baml/type_builder';" + ), + "import { TypeBuilder } from '@boundaryml/baml/type_builder.js';" + ); assert_eq!( add_js_suffix_to_imports("const path = '/path/to/file.ts';"), "const path = '/path/to/file.ts';" // This is not an import/export statement diff --git a/engine/language_client_typescript/async_context_vars.d.ts b/engine/language_client_typescript/async_context_vars.d.ts index 1dc0a91f93..0ed921eb46 100644 --- a/engine/language_client_typescript/async_context_vars.d.ts +++ b/engine/language_client_typescript/async_context_vars.d.ts @@ -1,4 +1,4 @@ -import { BamlSpan, RuntimeContextManager, BamlRuntime, BamlLogEvent } from './native'; +import { BamlSpan, RuntimeContextManager, BamlRuntime, BamlLogEvent } from './native.js'; export declare class BamlCtxManager { private rt; private ctx; diff --git a/engine/language_client_typescript/async_context_vars.d.ts.map b/engine/language_client_typescript/async_context_vars.d.ts.map index a06cb76206..7dc2c3056d 100644 --- a/engine/language_client_typescript/async_context_vars.d.ts.map +++ b/engine/language_client_typescript/async_context_vars.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"async_context_vars.d.ts","sourceRoot":"","sources":["typescript_src/async_context_vars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGrF,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,GAAG,CAA0C;gBAEzC,EAAE,EAAE,WAAW;IAS3B,WAAW,IAAI,OAAO;IAYtB,KAAK,IAAI,IAAI;IAKb,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK9C,YAAY,IAAI,qBAAqB;IASrC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IAKvH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAa9E,KAAK,IAAI,IAAI;IAIb,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAYvE,WAAW,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IAuB3F,YAAY,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;CAuBtG"} \ No newline at end of file +{"version":3,"file":"async_context_vars.d.ts","sourceRoot":"","sources":["typescript_src/async_context_vars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGxF,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,GAAG,CAA0C;gBAEzC,EAAE,EAAE,WAAW;IAS3B,WAAW,IAAI,OAAO;IAYtB,KAAK,IAAI,IAAI;IAKb,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK9C,YAAY,IAAI,qBAAqB;IASrC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IAKvH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAa9E,KAAK,IAAI,IAAI;IAIb,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAYvE,WAAW,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IAuB3F,YAAY,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;CAuBtG"} \ No newline at end of file diff --git a/engine/language_client_typescript/async_context_vars.js b/engine/language_client_typescript/async_context_vars.js index 67d39411f2..6f5ff0fd20 100644 --- a/engine/language_client_typescript/async_context_vars.js +++ b/engine/language_client_typescript/async_context_vars.js @@ -1,14 +1,11 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlCtxManager = void 0; -const native_1 = require("./native"); -const async_hooks_1 = require("async_hooks"); -class BamlCtxManager { +import { BamlSpan } from './native.js'; +import { AsyncLocalStorage } from 'async_hooks'; +export class BamlCtxManager { rt; ctx; constructor(rt) { this.rt = rt; - this.ctx = new async_hooks_1.AsyncLocalStorage(); + this.ctx = new AsyncLocalStorage(); this.ctx.enterWith(rt.createContextManager()); process.on('exit', () => { this.rt.flush(); @@ -25,7 +22,7 @@ class BamlCtxManager { return true; } reset() { - this.ctx = new async_hooks_1.AsyncLocalStorage(); + this.ctx = new AsyncLocalStorage(); this.ctx.enterWith(this.rt.createContextManager()); } upsertTags(tags) { @@ -42,7 +39,7 @@ class BamlCtxManager { } startTrace(name, args, envVars) { const mng = this.cloneContext(); - return [mng, native_1.BamlSpan.new(this.rt, name, args, mng, envVars)]; + return [mng, BamlSpan.new(this.rt, name, args, mng, envVars)]; } endTrace(span, response, envVars) { const manager = this.ctx.getStore(); @@ -113,4 +110,3 @@ class BamlCtxManager { }); } } -exports.BamlCtxManager = BamlCtxManager; diff --git a/engine/language_client_typescript/audio.js b/engine/language_client_typescript/audio.js index 291b680165..3aa789d229 100644 --- a/engine/language_client_typescript/audio.js +++ b/engine/language_client_typescript/audio.js @@ -1,10 +1,7 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlAudio = void 0; /** * Browser-compatible implementation of BamlAudio */ -class BamlAudio { +export class BamlAudio { type; content; mediaType; @@ -93,4 +90,3 @@ class BamlAudio { }; } } -exports.BamlAudio = BamlAudio; diff --git a/engine/language_client_typescript/browser.d.ts b/engine/language_client_typescript/browser.d.ts index 92bca0f3dc..8cafb57aef 100644 --- a/engine/language_client_typescript/browser.d.ts +++ b/engine/language_client_typescript/browser.d.ts @@ -10,14 +10,14 @@ * import { Image, Audio } from '@boundaryml/baml' * ``` */ -import { BamlAudio } from "./audio"; -import { BamlImage } from "./image"; -import { BamlVideo } from "./video"; -import { BamlPdf } from "./pdf"; -import type { BamlAudio as BamlAudioType } from "./audio"; -import type { BamlImage as BamlImageType } from "./image"; -import type { BamlPdf as BamlPdfType } from "./pdf"; -import type { BamlVideo as BamlVideoType } from "./video"; +import { BamlAudio } from "./audio.js"; +import { BamlImage } from "./image.js"; +import { BamlVideo } from "./video.js"; +import { BamlPdf } from "./pdf.js"; +import type { BamlAudio as BamlAudioType } from "./audio.js"; +import type { BamlImage as BamlImageType } from "./image.js"; +import type { BamlPdf as BamlPdfType } from "./pdf.js"; +import type { BamlVideo as BamlVideoType } from "./video.js"; declare const ImageImpl: typeof BamlImage; declare const AudioImpl: typeof BamlAudio; declare const PdfImpl: typeof BamlPdf; diff --git a/engine/language_client_typescript/browser.d.ts.map b/engine/language_client_typescript/browser.d.ts.map index 24bfa9ff35..9bb0dcfca5 100644 --- a/engine/language_client_typescript/browser.d.ts.map +++ b/engine/language_client_typescript/browser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["typescript_src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAsB1D,QAAA,MAAM,SAAS,kBAGd,CAAC;AACF,QAAA,MAAM,SAAS,kBAGd,CAAC;AACF,QAAA,MAAM,OAAO,gBAGZ,CAAC;AACF,QAAA,MAAM,SAAS,kBAGd,CAAC;AAIF,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAClC,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAClC,MAAM,MAAM,GAAG,GAAG,WAAW,CAAC;AAC9B,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAGlC,OAAO,EACL,SAAS,IAAI,KAAK,EAClB,SAAS,IAAI,KAAK,EAClB,OAAO,IAAI,GAAG,EACd,SAAS,IAAI,KAAK,GACnB,CAAC"} \ No newline at end of file +{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["typescript_src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAsB7D,QAAA,MAAM,SAAS,kBAGd,CAAC;AACF,QAAA,MAAM,SAAS,kBAGd,CAAC;AACF,QAAA,MAAM,OAAO,gBAGZ,CAAC;AACF,QAAA,MAAM,SAAS,kBAGd,CAAC;AAIF,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAClC,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAClC,MAAM,MAAM,GAAG,GAAG,WAAW,CAAC;AAC9B,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAGlC,OAAO,EACL,SAAS,IAAI,KAAK,EAClB,SAAS,IAAI,KAAK,EAClB,OAAO,IAAI,GAAG,EACd,SAAS,IAAI,KAAK,GACnB,CAAC"} \ No newline at end of file diff --git a/engine/language_client_typescript/browser.js b/engine/language_client_typescript/browser.js index 4a47100687..7de7bcc25c 100644 --- a/engine/language_client_typescript/browser.js +++ b/engine/language_client_typescript/browser.js @@ -1,4 +1,3 @@ -"use strict"; /** * @warning This file is intended for browser usage only. * For Node.js environments, import Image and Audio directly from '@boundaryml/baml'. @@ -11,13 +10,11 @@ * import { Image, Audio } from '@boundaryml/baml' * ``` */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Video = exports.Pdf = exports.Audio = exports.Image = void 0; // Import actual implementations -const audio_1 = require("./audio"); -const image_1 = require("./image"); -const video_1 = require("./video"); -const pdf_1 = require("./pdf"); +import { BamlAudio } from "./audio.js"; +import { BamlImage } from "./image.js"; +import { BamlVideo } from "./video.js"; +import { BamlPdf } from "./pdf.js"; // Detect if we're in server-side rendering environment const isSSR = typeof window === "undefined"; // Create a proxy handler that logs warnings in SSR environment @@ -32,11 +29,9 @@ function createSSRProxyHandler(name) { }; } // Create proxied versions that will work in both environments but warn in SSR -const ImageImpl = new Proxy(image_1.BamlImage, createSSRProxyHandler("Image")); -exports.Image = ImageImpl; -const AudioImpl = new Proxy(audio_1.BamlAudio, createSSRProxyHandler("Audio")); -exports.Audio = AudioImpl; -const PdfImpl = new Proxy(pdf_1.BamlPdf, createSSRProxyHandler("Pdf")); -exports.Pdf = PdfImpl; -const VideoImpl = new Proxy(video_1.BamlVideo, createSSRProxyHandler("Video")); -exports.Video = VideoImpl; +const ImageImpl = new Proxy(BamlImage, createSSRProxyHandler("Image")); +const AudioImpl = new Proxy(BamlAudio, createSSRProxyHandler("Audio")); +const PdfImpl = new Proxy(BamlPdf, createSSRProxyHandler("Pdf")); +const VideoImpl = new Proxy(BamlVideo, createSSRProxyHandler("Video")); +// Then export the implementations +export { ImageImpl as Image, AudioImpl as Audio, PdfImpl as Pdf, VideoImpl as Video, }; diff --git a/engine/language_client_typescript/cli.js b/engine/language_client_typescript/cli.js index 713c64d0a4..4330767acb 100755 --- a/engine/language_client_typescript/cli.js +++ b/engine/language_client_typescript/cli.js @@ -1,10 +1,9 @@ #!/usr/bin/env node -if (require.main === module) { - if (!process.env.BAML_LOG) { - process.env.BAML_LOG = 'info' - } +import { invoke_runtime_cli } from './native.js' - const baml = require('./native') - baml.invoke_runtime_cli(process.argv.slice(1)) +if (!process.env.BAML_LOG) { + process.env.BAML_LOG = 'info' } + +invoke_runtime_cli(process.argv.slice(1)) diff --git a/engine/language_client_typescript/errors.js b/engine/language_client_typescript/errors.js index d7ba7f4f74..7d4b63f3e8 100644 --- a/engine/language_client_typescript/errors.js +++ b/engine/language_client_typescript/errors.js @@ -1,10 +1,5 @@ -"use strict"; // NOTE: Don't take a dependency on ./native here, it will break the browser code -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlTimeoutError = exports.BamlAbortError = exports.BamlClientHttpError = exports.BamlValidationError = exports.BamlClientFinishReasonError = void 0; -exports.isBamlError = isBamlError; -exports.toBamlError = toBamlError; -class BamlClientFinishReasonError extends Error { +export class BamlClientFinishReasonError extends Error { prompt; raw_output; finish_reason; @@ -43,8 +38,7 @@ class BamlClientFinishReasonError extends Error { return undefined; } } -exports.BamlClientFinishReasonError = BamlClientFinishReasonError; -class BamlValidationError extends Error { +export class BamlValidationError extends Error { prompt; raw_output; detailed_message; @@ -80,8 +74,7 @@ class BamlValidationError extends Error { return undefined; } } -exports.BamlValidationError = BamlValidationError; -class BamlClientHttpError extends Error { +export class BamlClientHttpError extends Error { client_name; status_code; detailed_message; @@ -117,8 +110,7 @@ class BamlClientHttpError extends Error { return undefined; } } -exports.BamlClientHttpError = BamlClientHttpError; -class BamlAbortError extends Error { +export class BamlAbortError extends Error { reason; detailed_message; constructor(message, reason, detailed_message = "") { @@ -145,8 +137,7 @@ class BamlAbortError extends Error { return undefined; } } -exports.BamlAbortError = BamlAbortError; -class BamlTimeoutError extends BamlClientHttpError { +export class BamlTimeoutError extends BamlClientHttpError { constructor(client_name, message) { super(client_name, message, 408, ""); // HTTP 408 Request Timeout this.name = "BamlTimeoutError"; @@ -172,7 +163,6 @@ class BamlTimeoutError extends BamlClientHttpError { return undefined; } } -exports.BamlTimeoutError = BamlTimeoutError; function isError(error) { if (typeof error === "string") { return false; @@ -213,7 +203,7 @@ function createBamlErrorUnsafe(error) { // otherwise return the original error return error; } -function isBamlError(error) { +export function isBamlError(error) { if (error.type === "BamlClientHttpError" || error.type === "BamlValidationError" || error.type === "BamlClientFinishReasonError" || @@ -234,7 +224,7 @@ function isBamlError(error) { error instanceof BamlAbortError || error instanceof BamlTimeoutError); } -function toBamlError(error) { +export function toBamlError(error) { try { if (isBamlError(error)) { return error; diff --git a/engine/language_client_typescript/image.js b/engine/language_client_typescript/image.js index c703b7ed0c..92ac555f67 100644 --- a/engine/language_client_typescript/image.js +++ b/engine/language_client_typescript/image.js @@ -1,10 +1,7 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlImage = void 0; /** * Browser-compatible implementation of BamlImage */ -class BamlImage { +export class BamlImage { type; content; mediaType; @@ -93,4 +90,3 @@ class BamlImage { }; } } -exports.BamlImage = BamlImage; diff --git a/engine/language_client_typescript/index.d.ts b/engine/language_client_typescript/index.d.ts index 2ef878282c..bd7f485b2f 100644 --- a/engine/language_client_typescript/index.d.ts +++ b/engine/language_client_typescript/index.d.ts @@ -1,7 +1,8 @@ -export * from './safe_imports'; -export * from './errors'; -export * from './logging'; -export { BamlRuntime, FunctionResult, FunctionResultStream, BamlImage as Image, BamlAudio as Audio, BamlPdf as Pdf, BamlVideo as Video, invoke_runtime_cli, ClientRegistry, BamlLogEvent, Collector, FunctionLog, LlmCall, LlmStreamCall, Usage, HTTPRequest, HTTPResponse, SSEResponse, StreamTiming, Timing, TraceStats, } from './native'; -export { BamlStream } from './stream'; -export { BamlCtxManager } from './async_context_vars'; +export * from './safe_imports.js'; +export * from './errors.js'; +export * from './logging.js'; +export { BamlRuntime, FunctionResult, FunctionResultStream, BamlImage as Image, BamlAudio as Audio, BamlPdf as Pdf, BamlVideo as Video, invoke_runtime_cli, ClientRegistry, Collector, FunctionLog, LlmCall, LlmStreamCall, Usage, HTTPRequest, HTTPResponse, SSEResponse, StreamTiming, Timing, TraceStats, } from './native.js'; +export type { BamlLogEvent } from './native.js'; +export { BamlStream } from './stream.js'; +export { BamlCtxManager } from './async_context_vars.js'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/engine/language_client_typescript/index.d.ts.map b/engine/language_client_typescript/index.d.ts.map index 83602fa6db..584733feda 100644 --- a/engine/language_client_typescript/index.d.ts.map +++ b/engine/language_client_typescript/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["typescript_src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAE9B,cAAc,UAAU,CAAA;AAExB,cAAc,WAAW,CAAA;AAmCzB,OAAO,EACL,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,SAAS,IAAI,KAAK,EAClB,SAAS,IAAI,KAAK,EAClB,OAAO,IAAI,GAAG,EACd,SAAS,IAAI,KAAK,EAClB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,WAAW,EACX,OAAO,EACP,aAAa,EACb,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,MAAM,EACN,UAAU,GACX,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["typescript_src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAEjC,cAAc,aAAa,CAAA;AAE3B,cAAc,cAAc,CAAA;AAmC5B,OAAO,EACL,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,SAAS,IAAI,KAAK,EAClB,SAAS,IAAI,KAAK,EAClB,OAAO,IAAI,GAAG,EACd,SAAS,IAAI,KAAK,EAClB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,WAAW,EACX,OAAO,EACP,aAAa,EACb,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,MAAM,EACN,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA"} \ No newline at end of file diff --git a/engine/language_client_typescript/index.js b/engine/language_client_typescript/index.js index 061cc410f1..a7766af599 100644 --- a/engine/language_client_typescript/index.js +++ b/engine/language_client_typescript/index.js @@ -1,23 +1,6 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlCtxManager = exports.BamlStream = exports.TraceStats = exports.Timing = exports.StreamTiming = exports.SSEResponse = exports.HTTPResponse = exports.HTTPRequest = exports.Usage = exports.LlmStreamCall = exports.LlmCall = exports.FunctionLog = exports.Collector = exports.BamlLogEvent = exports.ClientRegistry = exports.invoke_runtime_cli = exports.Video = exports.Pdf = exports.Audio = exports.Image = exports.FunctionResultStream = exports.FunctionResult = exports.BamlRuntime = void 0; -__exportStar(require("./safe_imports"), exports); -__exportStar(require("./errors"), exports); -__exportStar(require("./logging"), exports); +export * from './safe_imports.js'; +export * from './errors.js'; +export * from './logging.js'; // Detect if we're in a Node.js environment const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null; if (!isNode) { @@ -42,29 +25,6 @@ if (!isNode) { enumerable: true, }); } -var native_1 = require("./native"); -Object.defineProperty(exports, "BamlRuntime", { enumerable: true, get: function () { return native_1.BamlRuntime; } }); -Object.defineProperty(exports, "FunctionResult", { enumerable: true, get: function () { return native_1.FunctionResult; } }); -Object.defineProperty(exports, "FunctionResultStream", { enumerable: true, get: function () { return native_1.FunctionResultStream; } }); -Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return native_1.BamlImage; } }); -Object.defineProperty(exports, "Audio", { enumerable: true, get: function () { return native_1.BamlAudio; } }); -Object.defineProperty(exports, "Pdf", { enumerable: true, get: function () { return native_1.BamlPdf; } }); -Object.defineProperty(exports, "Video", { enumerable: true, get: function () { return native_1.BamlVideo; } }); -Object.defineProperty(exports, "invoke_runtime_cli", { enumerable: true, get: function () { return native_1.invoke_runtime_cli; } }); -Object.defineProperty(exports, "ClientRegistry", { enumerable: true, get: function () { return native_1.ClientRegistry; } }); -Object.defineProperty(exports, "BamlLogEvent", { enumerable: true, get: function () { return native_1.BamlLogEvent; } }); -Object.defineProperty(exports, "Collector", { enumerable: true, get: function () { return native_1.Collector; } }); -Object.defineProperty(exports, "FunctionLog", { enumerable: true, get: function () { return native_1.FunctionLog; } }); -Object.defineProperty(exports, "LlmCall", { enumerable: true, get: function () { return native_1.LlmCall; } }); -Object.defineProperty(exports, "LlmStreamCall", { enumerable: true, get: function () { return native_1.LlmStreamCall; } }); -Object.defineProperty(exports, "Usage", { enumerable: true, get: function () { return native_1.Usage; } }); -Object.defineProperty(exports, "HTTPRequest", { enumerable: true, get: function () { return native_1.HTTPRequest; } }); -Object.defineProperty(exports, "HTTPResponse", { enumerable: true, get: function () { return native_1.HTTPResponse; } }); -Object.defineProperty(exports, "SSEResponse", { enumerable: true, get: function () { return native_1.SSEResponse; } }); -Object.defineProperty(exports, "StreamTiming", { enumerable: true, get: function () { return native_1.StreamTiming; } }); -Object.defineProperty(exports, "Timing", { enumerable: true, get: function () { return native_1.Timing; } }); -Object.defineProperty(exports, "TraceStats", { enumerable: true, get: function () { return native_1.TraceStats; } }); -var stream_1 = require("./stream"); -Object.defineProperty(exports, "BamlStream", { enumerable: true, get: function () { return stream_1.BamlStream; } }); -var async_context_vars_1 = require("./async_context_vars"); -Object.defineProperty(exports, "BamlCtxManager", { enumerable: true, get: function () { return async_context_vars_1.BamlCtxManager; } }); +export { BamlRuntime, FunctionResult, FunctionResultStream, BamlImage as Image, BamlAudio as Audio, BamlPdf as Pdf, BamlVideo as Video, invoke_runtime_cli, ClientRegistry, Collector, FunctionLog, LlmCall, LlmStreamCall, Usage, HTTPRequest, HTTPResponse, SSEResponse, StreamTiming, Timing, TraceStats, } from './native.js'; +export { BamlStream } from './stream.js'; +export { BamlCtxManager } from './async_context_vars.js'; diff --git a/engine/language_client_typescript/logging.d.ts b/engine/language_client_typescript/logging.d.ts index 0b3984d780..1605e53ac4 100644 --- a/engine/language_client_typescript/logging.d.ts +++ b/engine/language_client_typescript/logging.d.ts @@ -1,2 +1,2 @@ -export { setLogLevel, getLogLevel, setLogJsonMode, setLogMaxChunkLength } from './native'; +export { setLogLevel, getLogLevel, setLogJsonMode, setLogMaxChunkLength } from './native.js'; //# sourceMappingURL=logging.d.ts.map \ No newline at end of file diff --git a/engine/language_client_typescript/logging.d.ts.map b/engine/language_client_typescript/logging.d.ts.map index d770f421bd..99b8f7163d 100644 --- a/engine/language_client_typescript/logging.d.ts.map +++ b/engine/language_client_typescript/logging.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["typescript_src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA"} \ No newline at end of file +{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["typescript_src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"} \ No newline at end of file diff --git a/engine/language_client_typescript/logging.js b/engine/language_client_typescript/logging.js index 90d681999e..a61bea2d1c 100644 --- a/engine/language_client_typescript/logging.js +++ b/engine/language_client_typescript/logging.js @@ -1,8 +1 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setLogMaxChunkLength = exports.setLogJsonMode = exports.getLogLevel = exports.setLogLevel = void 0; -var native_1 = require("./native"); -Object.defineProperty(exports, "setLogLevel", { enumerable: true, get: function () { return native_1.setLogLevel; } }); -Object.defineProperty(exports, "getLogLevel", { enumerable: true, get: function () { return native_1.getLogLevel; } }); -Object.defineProperty(exports, "setLogJsonMode", { enumerable: true, get: function () { return native_1.setLogJsonMode; } }); -Object.defineProperty(exports, "setLogMaxChunkLength", { enumerable: true, get: function () { return native_1.setLogMaxChunkLength; } }); +export { setLogLevel, getLogLevel, setLogJsonMode, setLogMaxChunkLength } from './native.js'; diff --git a/engine/language_client_typescript/native.js b/engine/language_client_typescript/native.js index 6a0be1cf8f..8d0bd69c44 100644 --- a/engine/language_client_typescript/native.js +++ b/engine/language_client_typescript/native.js @@ -3,8 +3,9 @@ // @ts-nocheck /* auto-generated by NAPI-RS */ -const { createRequire } = require('node:module') -require = createRequire(__filename) +import { createRequire } from 'node:module' +const require = createRequire(import.meta.url) +const __dirname = new URL('.', import.meta.url).pathname const { readFileSync } = require('node:fs') let nativeBinding = null @@ -392,44 +393,44 @@ if (!nativeBinding) { throw new Error(`Failed to load native binding`) } -module.exports = nativeBinding -module.exports.BamlAudio = nativeBinding.BamlAudio -module.exports.BamlImage = nativeBinding.BamlImage -module.exports.BamlPdf = nativeBinding.BamlPdf -module.exports.BamlRuntime = nativeBinding.BamlRuntime -module.exports.BamlSpan = nativeBinding.BamlSpan -module.exports.BamlVideo = nativeBinding.BamlVideo -module.exports.ClassBuilder = nativeBinding.ClassBuilder -module.exports.ClassPropertyBuilder = nativeBinding.ClassPropertyBuilder -module.exports.ClientRegistry = nativeBinding.ClientRegistry -module.exports.Collector = nativeBinding.Collector -module.exports.EnumBuilder = nativeBinding.EnumBuilder -module.exports.EnumValueBuilder = nativeBinding.EnumValueBuilder -module.exports.FieldType = nativeBinding.FieldType -module.exports.FunctionLog = nativeBinding.FunctionLog -module.exports.FunctionResult = nativeBinding.FunctionResult -module.exports.FunctionResultStream = nativeBinding.FunctionResultStream -module.exports.HttpBody = nativeBinding.HttpBody -module.exports.HTTPBody = nativeBinding.HTTPBody -module.exports.HttpRequest = nativeBinding.HttpRequest -module.exports.HTTPRequest = nativeBinding.HTTPRequest -module.exports.HttpResponse = nativeBinding.HttpResponse -module.exports.HTTPResponse = nativeBinding.HTTPResponse -module.exports.LlmCall = nativeBinding.LlmCall -module.exports.LLMCall = nativeBinding.LLMCall -module.exports.LlmStreamCall = nativeBinding.LlmStreamCall -module.exports.LLMStreamCall = nativeBinding.LLMStreamCall -module.exports.RuntimeContextManager = nativeBinding.RuntimeContextManager -module.exports.SseResponse = nativeBinding.SseResponse -module.exports.SSEResponse = nativeBinding.SSEResponse -module.exports.StreamTiming = nativeBinding.StreamTiming -module.exports.Timing = nativeBinding.Timing -module.exports.TraceStats = nativeBinding.TraceStats -module.exports.TypeBuilder = nativeBinding.TypeBuilder -module.exports.Usage = nativeBinding.Usage -module.exports.get_version = nativeBinding.get_version -module.exports.getLogLevel = nativeBinding.getLogLevel -module.exports.invoke_runtime_cli = nativeBinding.invoke_runtime_cli -module.exports.setLogJsonMode = nativeBinding.setLogJsonMode -module.exports.setLogLevel = nativeBinding.setLogLevel -module.exports.setLogMaxChunkLength = nativeBinding.setLogMaxChunkLength +const { BamlAudio, BamlImage, BamlPdf, BamlRuntime, BamlSpan, BamlVideo, ClassBuilder, ClassPropertyBuilder, ClientRegistry, Collector, EnumBuilder, EnumValueBuilder, FieldType, FunctionLog, FunctionResult, FunctionResultStream, HttpBody, HTTPBody, HttpRequest, HTTPRequest, HttpResponse, HTTPResponse, LlmCall, LLMCall, LlmStreamCall, LLMStreamCall, RuntimeContextManager, SseResponse, SSEResponse, StreamTiming, Timing, TraceStats, TypeBuilder, Usage, get_version, getLogLevel, invoke_runtime_cli, setLogJsonMode, setLogLevel, setLogMaxChunkLength } = nativeBinding +export { BamlAudio } +export { BamlImage } +export { BamlPdf } +export { BamlRuntime } +export { BamlSpan } +export { BamlVideo } +export { ClassBuilder } +export { ClassPropertyBuilder } +export { ClientRegistry } +export { Collector } +export { EnumBuilder } +export { EnumValueBuilder } +export { FieldType } +export { FunctionLog } +export { FunctionResult } +export { FunctionResultStream } +export { HttpBody } +export { HTTPBody } +export { HttpRequest } +export { HTTPRequest } +export { HttpResponse } +export { HTTPResponse } +export { LlmCall } +export { LLMCall } +export { LlmStreamCall } +export { LLMStreamCall } +export { RuntimeContextManager } +export { SseResponse } +export { SSEResponse } +export { StreamTiming } +export { Timing } +export { TraceStats } +export { TypeBuilder } +export { Usage } +export { get_version } +export { getLogLevel } +export { invoke_runtime_cli } +export { setLogJsonMode } +export { setLogLevel } +export { setLogMaxChunkLength } diff --git a/engine/language_client_typescript/package.json b/engine/language_client_typescript/package.json index 3d2cf87a23..44978a2465 100644 --- a/engine/language_client_typescript/package.json +++ b/engine/language_client_typescript/package.json @@ -1,6 +1,7 @@ { "name": "@boundaryml/baml", "version": "0.213.0", + "type": "module", "description": "BAML typescript bindings (package.json)", "repository": { "type": "git", @@ -34,6 +35,14 @@ "./type_builder.js", "./errors.d.ts", "./errors.js", + "./image.d.ts", + "./image.js", + "./audio.d.ts", + "./audio.js", + "./pdf.d.ts", + "./pdf.js", + "./video.d.ts", + "./video.js", "./safe_imports.d.ts", "./safe_imports.js", "./logging.d.ts", @@ -49,7 +58,11 @@ "./type_builder": "./type_builder.js", "./errors": "./errors.js", "./browser": "./browser.js", - "./logging": "./logging.js" + "./logging": "./logging.js", + "./image": "./image.js", + "./audio": "./audio.js", + "./pdf": "./pdf.js", + "./video": "./video.js" }, "napi": { "binaryName": "baml", @@ -76,7 +89,7 @@ "release": "pnpm build:napi-release && pnpm build:ts_build", "build:debug": "pnpm build:napi-debug && pnpm build:ts_build", "build:napi-release": "pnpm build:napi-debug --release", - "build:napi-debug": "napi build --js ./native.js --dts ./native.d.ts --platform", + "build:napi-debug": "napi build --js ./native.js --dts ./native.d.ts --platform --esm", "build:ts_build": "tsc ./typescript_src/*.ts --outDir ./ --module nodenext --module nodenext --allowJs --declaration true --declarationMap true || true && pnpm build:ts_build_local", "build:local": "pnpm build:debug && pnpm napi create-npm-dirs && pnpm artifacts", "build:napi-debug-local": "napi build -o ./artifacts --js ./native.js --dts ./native.d.ts --platform", diff --git a/engine/language_client_typescript/pdf.js b/engine/language_client_typescript/pdf.js index fbced7a288..f0191b20d1 100644 --- a/engine/language_client_typescript/pdf.js +++ b/engine/language_client_typescript/pdf.js @@ -1,10 +1,7 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlPdf = void 0; /** * Browser-compatible implementation of BamlPdf */ -class BamlPdf { +export class BamlPdf { type; content; mediaType; @@ -93,4 +90,3 @@ class BamlPdf { }; } } -exports.BamlPdf = BamlPdf; diff --git a/engine/language_client_typescript/safe_imports.js b/engine/language_client_typescript/safe_imports.js index efa4a34cc7..00a4a503c7 100644 --- a/engine/language_client_typescript/safe_imports.js +++ b/engine/language_client_typescript/safe_imports.js @@ -1,7 +1,4 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ThrowIfVersionMismatch = ThrowIfVersionMismatch; -const native_1 = require("./native"); +import { get_version } from "./native.js"; function ensureVersionCompatibility(generatedVersion, runtimeVersion) { try { const [genMajor, genMinor] = generatedVersion.split(".").slice(0, 2); @@ -12,8 +9,8 @@ function ensureVersionCompatibility(generatedVersion, runtimeVersion) { return false; // Error parsing versions, assume incompatible } } -function ThrowIfVersionMismatch(generatedVersion) { - const runtimeVersion = (0, native_1.get_version)(); +export function ThrowIfVersionMismatch(generatedVersion) { + const runtimeVersion = get_version(); if (!ensureVersionCompatibility(generatedVersion, runtimeVersion)) { const errorMessage = `Update to @boundaryml/baml required. Version from generators.baml: ${generatedVersion} diff --git a/engine/language_client_typescript/stream.d.ts b/engine/language_client_typescript/stream.d.ts index 16d0e2692a..3acd8c34dd 100644 --- a/engine/language_client_typescript/stream.d.ts +++ b/engine/language_client_typescript/stream.d.ts @@ -1,4 +1,4 @@ -import type { FunctionResultStream, RuntimeContextManager } from "../native"; +import type { FunctionResultStream, RuntimeContextManager } from "../native.js"; export declare class BamlStream { private ffiStream; private partialCoerce; diff --git a/engine/language_client_typescript/stream.d.ts.map b/engine/language_client_typescript/stream.d.ts.map index ad8870e47f..b30f2c442b 100644 --- a/engine/language_client_typescript/stream.d.ts.map +++ b/engine/language_client_typescript/stream.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["typescript_src/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,WAAW,CAAC;AAEnB,qBAAa,UAAU,CAAC,iBAAiB,EAAE,eAAe;IAQtD,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAVpB,OAAO,CAAC,IAAI,CAAwC;IACpD,OAAO,CAAC,KAAK,CAAsB;IAEnC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAC,CAAc;gBAGxB,SAAS,EAAE,oBAAoB,EAC/B,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,iBAAiB,EACjD,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,eAAe,EAC7C,UAAU,EAAE,qBAAqB,EACzC,WAAW,CAAC,EAAE,WAAW;YAYb,iBAAiB;IAyC/B,OAAO,CAAC,qBAAqB;IAQtB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,iBAAiB,CAAC;IAsCnE,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAMlD;;;;;;;OAOG;IACH,YAAY,IAAI,cAAc,CAAC,UAAU,CAAC;CA8C3C"} \ No newline at end of file +{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["typescript_src/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAEtB,qBAAa,UAAU,CAAC,iBAAiB,EAAE,eAAe;IAQtD,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAVpB,OAAO,CAAC,IAAI,CAAwC;IACpD,OAAO,CAAC,KAAK,CAAsB;IAEnC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAC,CAAc;gBAGxB,SAAS,EAAE,oBAAoB,EAC/B,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,iBAAiB,EACjD,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,eAAe,EAC7C,UAAU,EAAE,qBAAqB,EACzC,WAAW,CAAC,EAAE,WAAW;YAYb,iBAAiB;IAyC/B,OAAO,CAAC,qBAAqB;IAQtB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,iBAAiB,CAAC;IAsCnE,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAMlD;;;;;;;OAOG;IACH,YAAY,IAAI,cAAc,CAAC,UAAU,CAAC;CA8C3C"} \ No newline at end of file diff --git a/engine/language_client_typescript/stream.js b/engine/language_client_typescript/stream.js index 0548fb6aac..d6fae9b58b 100644 --- a/engine/language_client_typescript/stream.js +++ b/engine/language_client_typescript/stream.js @@ -1,8 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlStream = void 0; -const errors_1 = require("./errors"); -class BamlStream { +import { toBamlError, BamlAbortError } from "./errors.js"; +export class BamlStream { ffiStream; partialCoerce; finalCoerce; @@ -28,7 +25,7 @@ class BamlStream { try { // Check for early abort if (this.abortSignal?.aborted) { - throw new errors_1.BamlAbortError("Operation was aborted", this.abortSignal.reason); + throw new BamlAbortError("Operation was aborted", this.abortSignal.reason); } this.ffiStream.onEvent((err, data) => { if (err) { @@ -45,7 +42,7 @@ class BamlStream { return retval; } catch (error) { - if (error instanceof errors_1.BamlAbortError) { + if (error instanceof BamlAbortError) { this.error = error; this.eventQueue.push(null); } @@ -91,7 +88,7 @@ class BamlStream { event.parsed(true); } catch (error) { - throw (0, errors_1.toBamlError)(error); + throw toBamlError(error); } } } @@ -125,7 +122,7 @@ class BamlStream { return; } catch (err) { - const bamlError = (0, errors_1.toBamlError)(err instanceof Error ? err : new Error(String(err))); + const bamlError = toBamlError(err instanceof Error ? err : new Error(String(err))); controller.enqueue(encoder.encode(JSON.stringify({ error: bamlError }))); controller.close(); return; @@ -147,4 +144,3 @@ class BamlStream { }); } } -exports.BamlStream = BamlStream; diff --git a/engine/language_client_typescript/tsconfig.json b/engine/language_client_typescript/tsconfig.json index 69d23eff05..004e129669 100644 --- a/engine/language_client_typescript/tsconfig.json +++ b/engine/language_client_typescript/tsconfig.json @@ -25,7 +25,7 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ + "module": "nodenext", /* Specify what module code is generated. */ // "rootDir": "./", /* Specify the root folder within your source files. */ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ diff --git a/engine/language_client_typescript/type_builder.d.ts b/engine/language_client_typescript/type_builder.d.ts index 015bb3d8e4..fa6542d680 100644 --- a/engine/language_client_typescript/type_builder.d.ts +++ b/engine/language_client_typescript/type_builder.d.ts @@ -1,4 +1,4 @@ -import { ClassBuilder as _ClassBuilder, EnumBuilder as _EnumBuilder, ClassPropertyBuilder as _ClassPropertyBuilder, EnumValueBuilder, FieldType, TypeBuilder as _TypeBuilder, BamlRuntime } from './native'; +import { ClassBuilder as _ClassBuilder, EnumBuilder as _EnumBuilder, ClassPropertyBuilder as _ClassPropertyBuilder, EnumValueBuilder, FieldType, TypeBuilder as _TypeBuilder, BamlRuntime } from './native.js'; type IsLiteral = string extends T ? false : true; type NameOf = IsLiteral extends true ? T : 'DynamicType'; type CheckNever = [T] extends [never] ? `Error: Attempt to add value '${Value}' which is already a part of '${NameOf}'.` : T; diff --git a/engine/language_client_typescript/type_builder.d.ts.map b/engine/language_client_typescript/type_builder.d.ts.map index 7741558e30..378da49f84 100644 --- a/engine/language_client_typescript/type_builder.d.ts.map +++ b/engine/language_client_typescript/type_builder.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"type_builder.d.ts","sourceRoot":"","sources":["typescript_src/type_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,WAAW,IAAI,YAAY,EAC3B,oBAAoB,IAAI,qBAAqB,EAC7C,gBAAgB,EAChB,SAAS,EACT,WAAW,IAAI,YAAY,EAC3B,WAAW,EACZ,MAAM,UAAU,CAAA;AAEjB,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAA;AAClE,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,aAAa,CAAA;AAC7E,KAAK,UAAU,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACnF,gCAAgC,KAAK,iCAAiC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAC1F,CAAC,CAAA;AACL,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;AAChD,KAAK,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GACrG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAC9C,KAAK,CAAA;AAET,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAc;IACxB,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,SAAS,CAAC,OAAO,EAAE,WAAW,CAAA;gBAElB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE;IAO3G,KAAK,IAAI,IAAI;IAIb,GAAG,IAAI,YAAY;IAInB,IAAI,IAAI,SAAS;IAIjB,MAAM,IAAI,SAAS;IAInB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAIvC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAIpC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS;IAItC,GAAG,IAAI,SAAS;IAIhB,KAAK,IAAI,SAAS;IAIlB,IAAI,IAAI,SAAS;IAIjB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAIhC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS;IAIxD,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS;IAIpC,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EACxD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EAAE,GACvB,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;IAIhC,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EACzD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EAAE,GACvB,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC;IAIjC,UAAU,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IAI9G,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;IAIhH,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAW7D,OAAO,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAW3D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG5B;AAED,qBAAa,QAAQ,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IAM9E,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IALhD,SAAS,CAAC,IAAI,EAAE,aAAa,CAAA;gBAG3B,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,SAAS,EACL,UAAU,GAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAa;IAK5D,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAIlD,IAAI,IAAI,SAAS;CAGlB;AAED,qBAAa,WAAW,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ,CACrG,SAAS,EACT,UAAU,CACX;gBACa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAa;IAI/F,cAAc,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAItD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB;CAM5C;AAED,qBAAa,YAAY,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ,CACtG,SAAS,EACT,UAAU,CACX;gBACa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAa;IAI/F,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,oBAAoB;IAQjH,cAAc,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAIvD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;CAM7C;AAED,cAAM,mBAAmB;;CAExB;AAED,cAAM,oBAAoB;IACxB,OAAO,CAAC,IAAI,CAAuB;gBAEvB,IAAI,EAAE,qBAAqB;IAIvC,OAAO,IAAI,SAAS;IAIpB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB;IAK9C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB;IAKjD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB;CAI9D;AAED,qBAAa,OAAO,CAAC,QAAQ,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM;IAMxE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IALxC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAA;gBAG1B,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,QAAQ,EACJ,MAAM,GAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAa;IAKpD,IAAI,IAAI,SAAS;CAGlB;AAED,qBAAa,UAAU,CAAC,QAAQ,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1F,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAa;IAIjF,UAAU,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAI9C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;CAMrC;AAED,qBAAa,eAAe;;CAE3B;AAED,qBAAa,WAAW,CAAC,QAAQ,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3F,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAa;IAIjF,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB;IAQ/E,UAAU,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAI/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;CAGtC"} \ No newline at end of file +{"version":3,"file":"type_builder.d.ts","sourceRoot":"","sources":["typescript_src/type_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,WAAW,IAAI,YAAY,EAC3B,oBAAoB,IAAI,qBAAqB,EAC7C,gBAAgB,EAChB,SAAS,EACT,WAAW,IAAI,YAAY,EAC3B,WAAW,EACZ,MAAM,aAAa,CAAA;AAEpB,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAA;AAClE,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,aAAa,CAAA;AAC7E,KAAK,UAAU,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACnF,gCAAgC,KAAK,iCAAiC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAC1F,CAAC,CAAA;AACL,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;AAChD,KAAK,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GACrG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAC9C,KAAK,CAAA;AAET,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAc;IACxB,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,SAAS,CAAC,OAAO,EAAE,WAAW,CAAA;gBAElB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE;IAO3G,KAAK,IAAI,IAAI;IAIb,GAAG,IAAI,YAAY;IAInB,IAAI,IAAI,SAAS;IAIjB,MAAM,IAAI,SAAS;IAInB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAIvC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAIpC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS;IAItC,GAAG,IAAI,SAAS;IAIhB,KAAK,IAAI,SAAS;IAIlB,IAAI,IAAI,SAAS;IAIjB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAIhC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS;IAIxD,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS;IAIpC,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EACxD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EAAE,GACvB,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;IAIhC,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EACzD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EAAE,GACvB,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC;IAIjC,UAAU,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;IAI9G,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;IAIhH,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAW7D,OAAO,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAW3D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG5B;AAED,qBAAa,QAAQ,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IAM9E,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IALhD,SAAS,CAAC,IAAI,EAAE,aAAa,CAAA;gBAG3B,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,SAAS,EACL,UAAU,GAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAa;IAK5D,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAIlD,IAAI,IAAI,SAAS;CAGlB;AAED,qBAAa,WAAW,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ,CACrG,SAAS,EACT,UAAU,CACX;gBACa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAa;IAI/F,cAAc,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAItD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB;CAM5C;AAED,qBAAa,YAAY,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ,CACtG,SAAS,EACT,UAAU,CACX;gBACa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAa;IAI/F,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,oBAAoB;IAQjH,cAAc,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAIvD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;CAM7C;AAED,cAAM,mBAAmB;;CAExB;AAED,cAAM,oBAAoB;IACxB,OAAO,CAAC,IAAI,CAAuB;gBAEvB,IAAI,EAAE,qBAAqB;IAIvC,OAAO,IAAI,SAAS;IAIpB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB;IAK9C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB;IAKjD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB;CAI9D;AAED,qBAAa,OAAO,CAAC,QAAQ,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM;IAMxE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IALxC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAA;gBAG1B,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,QAAQ,EACJ,MAAM,GAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAa;IAKpD,IAAI,IAAI,SAAS;CAGlB;AAED,qBAAa,UAAU,CAAC,QAAQ,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1F,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAa;IAIjF,UAAU,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAI9C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;CAMrC;AAED,qBAAa,eAAe;;CAE3B;AAED,qBAAa,WAAW,CAAC,QAAQ,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3F,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAa;IAIjF,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB;IAQ/E,UAAU,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAI/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;CAGtC"} \ No newline at end of file diff --git a/engine/language_client_typescript/type_builder.js b/engine/language_client_typescript/type_builder.js index ed96d00a04..8e57e2a3c9 100644 --- a/engine/language_client_typescript/type_builder.js +++ b/engine/language_client_typescript/type_builder.js @@ -1,8 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EnumBuilder = exports.EnumValueViewer = exports.EnumViewer = exports.EnumAst = exports.ClassBuilder = exports.ClassViewer = exports.ClassAst = exports.TypeBuilder = void 0; -const native_1 = require("./native"); -class TypeBuilder { +import { TypeBuilder as _TypeBuilder, } from './native.js'; +export class TypeBuilder { tb; classes; enums; @@ -10,7 +7,7 @@ class TypeBuilder { constructor({ classes, enums, runtime }) { this.classes = classes; this.enums = enums; - this.tb = new native_1.TypeBuilder(); + this.tb = new _TypeBuilder(); this.runtime = runtime; } reset() { @@ -88,8 +85,7 @@ class TypeBuilder { this.tb.addBaml(baml, this.runtime); } } -exports.TypeBuilder = TypeBuilder; -class ClassAst { +export class ClassAst { properties; bldr; constructor(tb, name, properties = new Set()) { @@ -103,8 +99,7 @@ class ClassAst { return this.bldr.field(); } } -exports.ClassAst = ClassAst; -class ClassViewer extends ClassAst { +export class ClassViewer extends ClassAst { constructor(tb, name, properties = new Set()) { super(tb, name, properties); } @@ -118,8 +113,7 @@ class ClassViewer extends ClassAst { return new ClassPropertyViewer(); } } -exports.ClassViewer = ClassViewer; -class ClassBuilder extends ClassAst { +export class ClassBuilder extends ClassAst { constructor(tb, name, properties = new Set()) { super(tb, name, properties); } @@ -147,7 +141,6 @@ class ClassBuilder extends ClassAst { return new ClassPropertyBuilder(this.bldr.property(name)); } } -exports.ClassBuilder = ClassBuilder; class ClassPropertyViewer { constructor() { } } @@ -172,7 +165,7 @@ class ClassPropertyBuilder { return this; } } -class EnumAst { +export class EnumAst { values; bldr; constructor(tb, name, values = new Set()) { @@ -183,8 +176,7 @@ class EnumAst { return this.bldr.field(); } } -exports.EnumAst = EnumAst; -class EnumViewer extends EnumAst { +export class EnumViewer extends EnumAst { constructor(tb, name, values = new Set()) { super(tb, name, values); } @@ -198,12 +190,10 @@ class EnumViewer extends EnumAst { return new EnumValueViewer(); } } -exports.EnumViewer = EnumViewer; -class EnumValueViewer { +export class EnumValueViewer { constructor() { } } -exports.EnumValueViewer = EnumValueViewer; -class EnumBuilder extends EnumAst { +export class EnumBuilder extends EnumAst { constructor(tb, name, values = new Set()) { super(tb, name, values); } @@ -221,4 +211,3 @@ class EnumBuilder extends EnumAst { return this.bldr.value(name); } } -exports.EnumBuilder = EnumBuilder; diff --git a/engine/language_client_typescript/typescript_src/async_context_vars.ts b/engine/language_client_typescript/typescript_src/async_context_vars.ts index 3ffc47cbb4..e67e9a83dd 100644 --- a/engine/language_client_typescript/typescript_src/async_context_vars.ts +++ b/engine/language_client_typescript/typescript_src/async_context_vars.ts @@ -1,4 +1,4 @@ -import { BamlSpan, RuntimeContextManager, BamlRuntime, BamlLogEvent } from './native' +import { BamlSpan, RuntimeContextManager, BamlRuntime, BamlLogEvent } from './native.js' import { AsyncLocalStorage } from 'async_hooks' export class BamlCtxManager { diff --git a/engine/language_client_typescript/typescript_src/browser.ts b/engine/language_client_typescript/typescript_src/browser.ts index 9020e3b077..22bd112d1d 100644 --- a/engine/language_client_typescript/typescript_src/browser.ts +++ b/engine/language_client_typescript/typescript_src/browser.ts @@ -12,16 +12,16 @@ */ // Import actual implementations -import { BamlAudio } from "./audio"; -import { BamlImage } from "./image"; -import { BamlVideo } from "./video"; -import { BamlPdf } from "./pdf"; +import { BamlAudio } from "./audio.js"; +import { BamlImage } from "./image.js"; +import { BamlVideo } from "./video.js"; +import { BamlPdf } from "./pdf.js"; // Re-export the original types -import type { BamlAudio as BamlAudioType } from "./audio"; -import type { BamlImage as BamlImageType } from "./image"; -import type { BamlPdf as BamlPdfType } from "./pdf"; -import type { BamlVideo as BamlVideoType } from "./video"; +import type { BamlAudio as BamlAudioType } from "./audio.js"; +import type { BamlImage as BamlImageType } from "./image.js"; +import type { BamlPdf as BamlPdfType } from "./pdf.js"; +import type { BamlVideo as BamlVideoType } from "./video.js"; // Detect if we're in server-side rendering environment const isSSR = typeof window === "undefined"; diff --git a/engine/language_client_typescript/typescript_src/index.ts b/engine/language_client_typescript/typescript_src/index.ts index 6b93fa9c73..edce125ead 100644 --- a/engine/language_client_typescript/typescript_src/index.ts +++ b/engine/language_client_typescript/typescript_src/index.ts @@ -1,8 +1,8 @@ -export * from './safe_imports' +export * from './safe_imports.js' -export * from './errors' +export * from './errors.js' -export * from './logging' +export * from './logging.js' // Detect if we're in a Node.js environment const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null @@ -47,7 +47,6 @@ export { BamlVideo as Video, invoke_runtime_cli, ClientRegistry, - BamlLogEvent, Collector, FunctionLog, LlmCall, @@ -59,7 +58,9 @@ export { StreamTiming, Timing, TraceStats, -} from './native' +} from './native.js' -export { BamlStream } from './stream' -export { BamlCtxManager } from './async_context_vars' +export type { BamlLogEvent } from './native.js' + +export { BamlStream } from './stream.js' +export { BamlCtxManager } from './async_context_vars.js' diff --git a/engine/language_client_typescript/typescript_src/logging.ts b/engine/language_client_typescript/typescript_src/logging.ts index 43b481f304..9c5008da5d 100644 --- a/engine/language_client_typescript/typescript_src/logging.ts +++ b/engine/language_client_typescript/typescript_src/logging.ts @@ -1 +1 @@ -export { setLogLevel, getLogLevel, setLogJsonMode, setLogMaxChunkLength } from './native' +export { setLogLevel, getLogLevel, setLogJsonMode, setLogMaxChunkLength } from './native.js' diff --git a/engine/language_client_typescript/typescript_src/safe_imports.ts b/engine/language_client_typescript/typescript_src/safe_imports.ts index c60b696407..583730b3d6 100644 --- a/engine/language_client_typescript/typescript_src/safe_imports.ts +++ b/engine/language_client_typescript/typescript_src/safe_imports.ts @@ -1,4 +1,4 @@ -import { get_version } from "./native"; +import { get_version } from "./native.js"; function ensureVersionCompatibility(generatedVersion: string, runtimeVersion: string) { try { diff --git a/engine/language_client_typescript/typescript_src/stream.ts b/engine/language_client_typescript/typescript_src/stream.ts index 01b74dbc15..22d0596741 100644 --- a/engine/language_client_typescript/typescript_src/stream.ts +++ b/engine/language_client_typescript/typescript_src/stream.ts @@ -1,9 +1,9 @@ -import { toBamlError, BamlAbortError } from "./errors"; +import { toBamlError, BamlAbortError } from "./errors.js"; import type { FunctionResult, FunctionResultStream, RuntimeContextManager, -} from "../native"; +} from "../native.js"; export class BamlStream { private task: Promise | null = null; diff --git a/engine/language_client_typescript/typescript_src/type_builder.ts b/engine/language_client_typescript/typescript_src/type_builder.ts index b2d8bbafb8..ab203b325c 100644 --- a/engine/language_client_typescript/typescript_src/type_builder.ts +++ b/engine/language_client_typescript/typescript_src/type_builder.ts @@ -6,7 +6,7 @@ import { FieldType, TypeBuilder as _TypeBuilder, BamlRuntime, -} from './native' +} from './native.js' type IsLiteral = string extends T ? false : true type NameOf = IsLiteral extends true ? T : 'DynamicType' diff --git a/engine/language_client_typescript/video.js b/engine/language_client_typescript/video.js index 2c8fa5f53d..56674fcc76 100644 --- a/engine/language_client_typescript/video.js +++ b/engine/language_client_typescript/video.js @@ -1,10 +1,7 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlVideo = void 0; /** * Browser-compatible implementation of BamlVideo */ -class BamlVideo { +export class BamlVideo { type; content; mediaType; @@ -93,4 +90,3 @@ class BamlVideo { }; } } -exports.BamlVideo = BamlVideo; diff --git a/integ-tests/react/baml_client/type_builder.ts b/integ-tests/react/baml_client/type_builder.ts index 400e886980..1b4e755b80 100644 --- a/integ-tests/react/baml_client/type_builder.ts +++ b/integ-tests/react/baml_client/type_builder.ts @@ -870,4 +870,6 @@ export default class TypeBuilder { addBaml(baml: string): void { this.tb.addBaml(baml); } -} \ No newline at end of file +} + +export { TypeBuilder }; \ No newline at end of file diff --git a/integ-tests/typescript-esm/baml_client/config.ts b/integ-tests/typescript-esm/baml_client/config.ts index 56e5183489..1d1d2b2f8f 100644 --- a/integ-tests/typescript-esm/baml_client/config.ts +++ b/integ-tests/typescript-esm/baml_client/config.ts @@ -18,5 +18,5 @@ $ pnpm add @boundaryml/baml // @ts-nocheck // biome-ignore format: autogenerated code -export { setLogLevel, getLogLevel, setLogJsonMode } from "@boundaryml/baml/logging"; +export { setLogLevel, getLogLevel, setLogJsonMode } from "@boundaryml/baml/logging.js"; export { resetBamlEnvVars } from "./globals.js"; \ No newline at end of file diff --git a/integ-tests/typescript-esm/baml_client/type_builder.ts b/integ-tests/typescript-esm/baml_client/type_builder.ts index a0237bf2c9..e1e22fc011 100644 --- a/integ-tests/typescript-esm/baml_client/type_builder.ts +++ b/integ-tests/typescript-esm/baml_client/type_builder.ts @@ -18,8 +18,8 @@ $ pnpm add @boundaryml/baml // @ts-nocheck // biome-ignore format: autogenerated code -import { FieldType } from '@boundaryml/baml/native' -import { TypeBuilder as _TypeBuilder, EnumBuilder, EnumViewer, ClassBuilder, ClassViewer } from '@boundaryml/baml/type_builder' +import { FieldType } from '@boundaryml/baml/native.js' +import { TypeBuilder as _TypeBuilder, EnumBuilder, EnumViewer, ClassBuilder, ClassViewer } from '@boundaryml/baml/type_builder.js' import { DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME } from "./globals.js" export { FieldType, EnumBuilder, ClassBuilder } @@ -870,4 +870,6 @@ export default class TypeBuilder { addBaml(baml: string): void { this.tb.addBaml(baml); } -} \ No newline at end of file +} + +export { TypeBuilder }; \ No newline at end of file diff --git a/integ-tests/typescript-esm/main.ts b/integ-tests/typescript-esm/main.ts index 59f60a433c..4368d9c91b 100644 --- a/integ-tests/typescript-esm/main.ts +++ b/integ-tests/typescript-esm/main.ts @@ -1,13 +1,17 @@ import { b } from "./baml_client/index.js"; +import { Pdf } from "@boundaryml/baml"; +import { TypeBuilder } from "./baml_client/type_builder.js"; // import { Image} from "@boundaryml/baml"; -import pkg from "@boundaryml/baml"; // Force another import for the logging path. -import { setLogLevel } from "./baml_client/config.js"; +import { setLogLevel } from "./baml_client/config.js"; -const { Image } = pkg; setLogLevel("info"); -const result = await b.DescribeImage( Image.fromUrl('https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png')); +const pdf = Pdf.fromBase64("JVBERi0K...") +const tb = new TypeBuilder() +// const image = Image.fromBase64("image/png", "iVBORw0K...") -console.log(result); +// const result = await b.DescribeImage(Image.fromUrl('https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png')); + +// console.log(result); diff --git a/integ-tests/typescript-esm/package.json b/integ-tests/typescript-esm/package.json index d5213f6e33..75a64dd856 100644 --- a/integ-tests/typescript-esm/package.json +++ b/integ-tests/typescript-esm/package.json @@ -5,7 +5,8 @@ "scripts": { "build": "tsc", "start": "node ./dist/main.js", - "typecheck": "tsc --noEmit" + "typecheck": "tsc --noEmit", + "build:debug": "cd ../../engine/language_client_typescript && pnpm build:debug" }, "engines": { "node": ">=20" @@ -13,6 +14,7 @@ "devDependencies": { "@tsconfig/node23": "^23.0.0", "@types/node": "^22.13.4", + "tsx": "^4.20.3", "typescript": "^5.7.3" }, "dependencies": { diff --git a/integ-tests/typescript/.mise.toml b/integ-tests/typescript/.mise.toml new file mode 100644 index 0000000000..126f680735 --- /dev/null +++ b/integ-tests/typescript/.mise.toml @@ -0,0 +1,2 @@ +[tools] +node = "20" diff --git a/integ-tests/typescript/baml_client/type_builder.ts b/integ-tests/typescript/baml_client/type_builder.ts index 400e886980..1b4e755b80 100644 --- a/integ-tests/typescript/baml_client/type_builder.ts +++ b/integ-tests/typescript/baml_client/type_builder.ts @@ -870,4 +870,6 @@ export default class TypeBuilder { addBaml(baml: string): void { this.tb.addBaml(baml); } -} \ No newline at end of file +} + +export { TypeBuilder }; \ No newline at end of file diff --git a/integ-tests/typescript/jest.config.js b/integ-tests/typescript/jest.config.js index f62eb57ad6..c5733a146c 100644 --- a/integ-tests/typescript/jest.config.js +++ b/integ-tests/typescript/jest.config.js @@ -1,4 +1,4 @@ -module.exports = { +export default { preset: "ts-jest", testEnvironment: "node", roots: ["/tests"], @@ -7,7 +7,12 @@ module.exports = { setupFilesAfterEnv: ["/tests/test-setup.ts"], testTimeout: 600000, // detectOpenHandles: true, - moduleNameMapper: { - "^@/(.*)$": "/$1", - }, + // moduleNameMapper: { + // "^@/(.*)$": "/$1", + // }, + // transform: { + // '.*\\.(j|t)sx?$': ['@boundaryml/baml'], + // }, + transform: {} + // transformIgnorePatterns: ['/node_modules/(?!@boundaryml/baml)'] }; diff --git a/integ-tests/typescript/package.json b/integ-tests/typescript/package.json index 738421650d..855e7a67b2 100644 --- a/integ-tests/typescript/package.json +++ b/integ-tests/typescript/package.json @@ -3,8 +3,9 @@ "version": "1.0.0", "description": "", "main": "index.js", + "type": "module", "scripts": { - "test": "node --expose-gc ./node_modules/jest/bin/jest.js", + "test": "node --expose-gc --experimental-vm-modules ./node_modules/jest/bin/jest.js", "build": "tsc && pnpm run build:debug", "integ-tests:ci": "tsc && infisical run --env=test -- pnpm test -- --ci --silent false --testTimeout 30000 --verbose=false --reporters=jest-junit", "integ-tests": "tsc && infisical run --env=test -- pnpm test -- --silent false --testTimeout 60000", @@ -20,16 +21,16 @@ "devDependencies": { "@swc/core": "1.5.7", "@swc/jest": "0.2.36", - "@types/jest": "29.5.12", "@types/node": "20.17.17", + "jest": "30.2.0", "dotenv-cli": "7.4.2", - "jest": "29.7.0", "jest-html-reporter": "3.10.2", "jest-junit": "16.0.0", "jest-summary-reporter": "0.0.2", - "ts-jest": "29.1.2", + "ts-jest": "29.4.5", "ts-node": "10.9.2", "ts-node-dev": "2.0.0", + "tsx": "^4.20.3", "typescript": "5.4.2" }, "dependencies": { diff --git a/integ-tests/typescript/src/index.ts b/integ-tests/typescript/src/index.ts index cb0ff5c3b5..42bddb98e5 100644 --- a/integ-tests/typescript/src/index.ts +++ b/integ-tests/typescript/src/index.ts @@ -1 +1,16 @@ -export {}; +import { Pdf } from "@boundaryml/baml"; +import { b } from "../baml_client"; +import { TypeBuilder } from "../baml_client/type_builder"; + +const pdf = Pdf.fromBase64("JVBERi0K...") +const tb = new TypeBuilder(); +console.log(pdf) + +async function main() { + const request = await b.request.AaaSamOutputFormat("blah"); + console.log(request.body.json()) +} + +main() + +export { }; diff --git a/integ-tests/typescript/tsconfig.json b/integ-tests/typescript/tsconfig.json index 13880158a1..82b516308c 100644 --- a/integ-tests/typescript/tsconfig.json +++ b/integ-tests/typescript/tsconfig.json @@ -1,19 +1,21 @@ { "compilerOptions": { "target": "es2020", - "module": "commonjs", + "module": "NodeNext", "lib": ["es2020"], "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "outDir": "dist", + "isolatedModules": true, "declaration": true, "baseUrl": ".", "paths": { "*": ["node_modules/*", "types/*"] - } + }, + "allowImportingTsExtensions": false }, - "include": ["tests/**/*", "baml_client/**/*"], + "include": ["tests/**/*", "baml_client/**/*", "src/**/*"], "exclude": ["node_modules", "dist"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 33257b8c95..1abf055f32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -122,7 +122,7 @@ importers: version: 6.2.6 ts-jest: specifier: ^29.1.1 - version: 29.4.0(@babel/core@7.27.7)(@jest/transform@30.0.2)(@jest/types@30.0.1)(babel-jest@29.7.0(@babel/core@7.27.7))(jest-util@30.0.2)(jest@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.4.0(@babel/core@7.27.7)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.27.7))(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)))(typescript@5.8.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3) @@ -275,7 +275,7 @@ importers: version: 3.4.17(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)) ts-jest: specifier: ^29.2.6 - version: 29.4.0(@babel/core@7.28.4)(@jest/transform@30.0.2)(@jest/types@30.0.1)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@30.0.2)(jest@29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)))(typescript@5.8.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3) @@ -343,9 +343,6 @@ importers: '@swc/jest': specifier: 0.2.36 version: 0.2.36(@swc/core@1.5.7(@swc/helpers@0.5.15)) - '@types/jest': - specifier: 29.5.12 - version: 29.5.12 '@types/node': specifier: 20.17.17 version: 20.17.17 @@ -353,11 +350,11 @@ importers: specifier: 7.4.2 version: 7.4.2 jest: - specifier: 29.7.0 - version: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) + specifier: 30.2.0 + version: 30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) jest-html-reporter: specifier: 3.10.2 - version: 3.10.2(jest@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2) + version: 3.10.2(jest@30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2) jest-junit: specifier: 16.0.0 version: 16.0.0 @@ -365,14 +362,17 @@ importers: specifier: 0.0.2 version: 0.0.2 ts-jest: - specifier: 29.1.2 - version: 29.1.2(@babel/core@7.28.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.2)(jest@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2) + specifier: 29.4.5 + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2) ts-node-dev: specifier: 2.0.0 version: 2.0.0(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2) + tsx: + specifier: ^4.20.3 + version: 4.20.3 typescript: specifier: 5.4.2 version: 5.4.2 @@ -389,6 +389,9 @@ importers: '@types/node': specifier: ^22.13.4 version: 22.15.33 + tsx: + specifier: ^4.20.3 + version: 4.20.3 typescript: specifier: ^5.7.3 version: 5.8.3 @@ -3048,6 +3051,10 @@ packages: resolution: {integrity: sha512-krGElPU0FipAqpVZ/BRZOy0MZh/ARdJ0Nj+PiH1ykFY1+VpBlYNLjdjVA5CFKxnKR6PFqFutO4Z7cdK9BlGiDA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/console@30.2.0': + resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/core@29.7.0': resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3057,30 +3064,67 @@ packages: node-notifier: optional: true + '@jest/core@30.2.0': + resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/create-cache-key-function@29.7.0': resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/environment@29.7.0': resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@30.2.0': + resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/expect-utils@29.7.0': resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@30.2.0': + resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/expect@29.7.0': resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@30.2.0': + resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/fake-timers@29.7.0': resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.2.0': + resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/get-type@30.1.0': + resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/globals@29.7.0': resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@30.2.0': + resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/pattern@30.0.1': resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -3103,6 +3147,15 @@ packages: node-notifier: optional: true + '@jest/reporters@30.2.0': + resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3111,10 +3164,22 @@ packages: resolution: {integrity: sha512-+g/1TKjFuGrf1Hh0QPCv0gISwBxJ+MQSNXmG9zjHy7BmFhtoJ9fdNhWJp3qUKRi93AOZHXtdxZgJ1vAtz6z65w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/snapshot-utils@30.2.0': + resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/source-map@29.6.3': resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@30.0.1': + resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/test-result@29.7.0': resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3123,10 +3188,18 @@ packages: resolution: {integrity: sha512-KKMuBKkkZYP/GfHMhI+cH2/P3+taMZS3qnqqiPC1UXZTJskkCS+YU/ILCtw5anw1+YsTulDHFpDo70mmCedW8w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/test-result@30.2.0': + resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/test-sequencer@29.7.0': resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@30.2.0': + resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/transform@29.7.0': resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3135,6 +3208,10 @@ packages: resolution: {integrity: sha512-kJIuhLMTxRF7sc0gPzPtCDib/V9KwW3I2U25b+lYCYMVqHHSrcZopS8J8H+znx9yixuFv+Iozl8raLt/4MoxrA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/transform@30.2.0': + resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3143,6 +3220,10 @@ packages: resolution: {integrity: sha512-HGwoYRVF0QSKJu1ZQX0o5ZrUrrhj0aOOFA8hXrumD7SIzjouevhawbTjmXdwOmURdGluU9DM/XvGm3NyFoiQjw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@30.2.0': + resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} @@ -3907,6 +3988,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@preact/signals-core@1.10.0': resolution: {integrity: sha512-qlKeXlfqtlC+sjxCPHt6Sk0/dXBrKZVcPlianqjNc/vW263YBFiP5mRrgKpHoO0q222Thm1TdYQWfCKpbbgvwA==} @@ -4967,6 +5052,9 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@13.0.5': + resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + '@slack/logger@4.0.0': resolution: {integrity: sha512-Wz7QYfPAlG/DR+DfABddUZeNgoeY7d1J39OCR2jR+v7VBsB8ezulDK5szTnDDPDwLH5IWhLvXIHlCFZV7MSKgA==} engines: {node: '>= 18', npm: '>= 8.6.0'} @@ -6122,9 +6210,6 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - '@types/jest@29.5.14': resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} @@ -6321,6 +6406,101 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + '@upstash/redis@1.35.0': resolution: {integrity: sha512-WUm0Jz1xN4DBDGeJIi2Y0kVsolWRB2tsVds4SExaiLg4wBdHFMB+8IfZtBWr+BP0FvhuBr5G1/VLrJ9xzIWHsg==} @@ -6857,6 +7037,12 @@ packages: peerDependencies: '@babel/core': ^7.8.0 + babel-jest@30.2.0: + resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-0 + babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -6865,10 +7051,18 @@ packages: resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} engines: {node: '>=12'} + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} + engines: {node: '>=12'} + babel-plugin-jest-hoist@29.6.3: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.2.0: + resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + babel-plugin-syntax-hermes-parser@0.28.1: resolution: {integrity: sha512-meT17DOuUElMNsL5LZN56d+KBp22hb0EfxWfuPUeoSi54e40v1W4C2V36P75FpsH9fVEfDKpw5Nnkahc8haSsQ==} @@ -6877,12 +7071,23 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + babel-preset-jest@29.6.3: resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 + babel-preset-jest@30.2.0: + resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -7181,6 +7386,9 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.1.1: + resolution: {integrity: sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -8243,6 +8451,10 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@30.2.0: + resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + exponential-backoff@3.1.2: resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} @@ -8588,6 +8800,11 @@ packages: hachure-fill@0.5.2: resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -9078,10 +9295,18 @@ packages: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@30.2.0: + resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-circus@29.7.0: resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@30.2.0: + resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-cli@29.7.0: resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9092,6 +9317,16 @@ packages: node-notifier: optional: true + jest-cli@30.2.0: + resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jest-config@29.7.0: resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9104,18 +9339,45 @@ packages: ts-node: optional: true + jest-config@30.2.0: + resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@types/node': '*' + esbuild-register: '>=3.4.0' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + esbuild-register: + optional: true + ts-node: + optional: true + jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-docblock@29.7.0: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@30.2.0: + resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-each@29.7.0: resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@30.2.0: + resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-environment-jsdom@29.7.0: resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9129,6 +9391,10 @@ packages: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.2.0: + resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9141,6 +9407,10 @@ packages: resolution: {integrity: sha512-telJBKpNLeCb4MaX+I5k496556Y2FiKR/QLZc0+MGBYl4k3OO0472drlV2LUe7c1Glng5HuAu+5GLYp//GpdOQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-haste-map@30.2.0: + resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-html-reporter@3.10.2: resolution: {integrity: sha512-XRBa5ylHPUQoo8aJXEEdKsTruieTdlPbRktMx9WG9evMTxzJEKGFMaw5x+sQxJuClWdNR72GGwbOaz+6HIlksA==} engines: {node: '>=4.8.3'} @@ -9163,10 +9433,18 @@ packages: resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@30.2.0: + resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@30.2.0: + resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9175,10 +9453,18 @@ packages: resolution: {integrity: sha512-vXywcxmr0SsKXF/bAD7t7nMamRvPuJkras00gqYeB1V0WllxZrbZ0paRr3XqpFU2sYYjD0qAaG2fRyn/CGZ0aw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-message-util@30.2.0: + resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@30.2.0: + resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -9200,22 +9486,42 @@ packages: resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@30.2.0: + resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-resolve@29.7.0: resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@30.2.0: + resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-runner@29.7.0: resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@30.2.0: + resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-runtime@29.7.0: resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@30.2.0: + resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-snapshot@29.7.0: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@30.2.0: + resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-summary-reporter@0.0.2: resolution: {integrity: sha512-rZ3ThO57l+ZJCxF74cXIGQU3cV9I7bSBe1ElBp0taE3x2JghgD69bNCKt0LvpVQX5azTRHG7LmcjIpwriVnTng==} @@ -9227,14 +9533,26 @@ packages: resolution: {integrity: sha512-8IyqfKS4MqprBuUpZNlFB5l+WFehc8bfCe1HSZFHzft2mOuND8Cvi9r1musli+u6F3TqanCZ/Ik4H4pXUolZIg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-util@30.2.0: + resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-validate@29.7.0: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.2.0: + resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-watcher@29.7.0: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@30.2.0: + resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -9247,6 +9565,10 @@ packages: resolution: {integrity: sha512-RN1eQmx7qSLFA+o9pfJKlqViwL5wt+OL3Vff/A+/cPsmuw7NPwfgl33AP+/agRmHzPOFgXviRycR9kYwlcRQXg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-worker@30.2.0: + resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest@29.7.0: resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9257,6 +9579,16 @@ packages: node-notifier: optional: true + jest@30.2.0: + resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -10154,6 +10486,11 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -10869,6 +11206,10 @@ packages: resolution: {integrity: sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + pretty-ms@7.0.1: resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} engines: {node: '>=10'} @@ -10931,6 +11272,9 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} + qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} @@ -11605,6 +11949,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -11986,6 +12335,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} @@ -12189,29 +12542,35 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.1.2: - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + ts-jest@29.4.0: + resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 + '@jest/transform': ^29.0.0 || ^30.0.0 + '@jest/types': ^29.0.0 || ^30.0.0 + babel-jest: ^29.0.0 || ^30.0.0 esbuild: '*' - jest: ^29.0.0 + jest: ^29.0.0 || ^30.0.0 + jest-util: ^29.0.0 || ^30.0.0 typescript: '>=4.3 <6' peerDependenciesMeta: '@babel/core': optional: true + '@jest/transform': + optional: true '@jest/types': optional: true babel-jest: optional: true esbuild: optional: true + jest-util: + optional: true - ts-jest@29.4.0: - resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==} + ts-jest@29.4.5: + resolution: {integrity: sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -12418,6 +12777,11 @@ packages: ufo@1.6.1: resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + uid-promise@1.0.0: resolution: {integrity: sha512-R8375j0qwXyIu/7R0tjdF06/sElHqbmdmWC9M2qQHpEVbvE4I5+38KJI7LUUmQMp7NVq4tKHiBMkT0NFM453Ig==} @@ -12503,6 +12867,9 @@ packages: resolution: {integrity: sha512-us4j03/499KhbGP8BU7Hrzrgseo+KdfJYWcbcajCOqsAyb8Gk0Yn2kiUIcZISYCb1JFaZfIuG3b42HmguVOKCQ==} engines: {node: '>=18.12.0'} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -12989,6 +13356,9 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + workerpool@9.3.3: resolution: {integrity: sha512-slxCaKbYjEdFT/o2rH9xS1hf4uRDch1w7Uo+apxhZ+sf/1d9e0ZVkn42kPNGP2dgjIx6YFvSevj0zHvbWe2jdw==} @@ -14628,6 +14998,11 @@ snapshots: '@babel/core': 7.27.7 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.7)': dependencies: '@babel/core': 7.27.7 @@ -14713,6 +15088,11 @@ snapshots: '@babel/core': 7.27.7 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.7)': dependencies: '@babel/core': 7.27.7 @@ -15774,6 +16154,15 @@ snapshots: jest-util: 30.0.2 slash: 3.0.0 + '@jest/console@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + chalk: 4.1.2 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 @@ -15844,38 +16233,39 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2))': + '@jest/core@30.2.0(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2))': dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.2.0 + '@jest/pattern': 30.0.1 + '@jest/reporters': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 '@types/node': 20.17.17 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 + ci-info: 4.2.0 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 + jest-changed-files: 30.2.0 + jest-config: 30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-resolve-dependencies: 30.2.0 + jest-runner: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-watcher: 30.2.0 micromatch: 4.0.8 - pretty-format: 29.7.0 + pretty-format: 30.2.0 slash: 3.0.0 - strip-ansi: 6.0.1 transitivePeerDependencies: - babel-plugin-macros + - esbuild-register - supports-color - ts-node @@ -15883,6 +16273,8 @@ snapshots: dependencies: '@jest/types': 29.6.3 + '@jest/diff-sequences@30.0.1': {} + '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 @@ -15890,10 +16282,21 @@ snapshots: '@types/node': 20.17.17 jest-mock: 29.7.0 + '@jest/environment@30.2.0': + dependencies: + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + jest-mock: 30.2.0 + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 + '@jest/expect-utils@30.2.0': + dependencies: + '@jest/get-type': 30.1.0 + '@jest/expect@29.7.0': dependencies: expect: 29.7.0 @@ -15901,6 +16304,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/expect@30.2.0': + dependencies: + expect: 30.2.0 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 @@ -15910,6 +16320,17 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + '@jest/fake-timers@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@sinonjs/fake-timers': 13.0.5 + '@types/node': 20.17.17 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + + '@jest/get-type@30.1.0': {} + '@jest/globals@29.7.0': dependencies: '@jest/environment': 29.7.0 @@ -15919,6 +16340,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/globals@30.2.0': + dependencies: + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/types': 30.2.0 + jest-mock: 30.2.0 + transitivePeerDependencies: + - supports-color + '@jest/pattern@30.0.1': dependencies: '@types/node': 20.17.17 @@ -15981,6 +16411,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/reporters@30.2.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.29 + '@types/node': 20.17.17 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit-x: 0.2.2 + glob: 10.4.5 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + jest-worker: 30.2.0 + slash: 3.0.0 + string-length: 4.0.2 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 @@ -15989,12 +16447,29 @@ snapshots: dependencies: '@sinclair/typebox': 0.34.37 + '@jest/schemas@30.0.5': + dependencies: + '@sinclair/typebox': 0.34.37 + + '@jest/snapshot-utils@30.2.0': + dependencies: + '@jest/types': 30.2.0 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + '@jest/source-map@29.6.3': dependencies: '@jridgewell/trace-mapping': 0.3.29 callsites: 3.1.0 graceful-fs: 4.2.11 + '@jest/source-map@30.0.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.29 + callsites: 3.1.0 + graceful-fs: 4.2.11 + '@jest/test-result@29.7.0': dependencies: '@jest/console': 29.7.0 @@ -16009,6 +16484,13 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 + '@jest/test-result@30.2.0': + dependencies: + '@jest/console': 30.2.0 + '@jest/types': 30.2.0 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + '@jest/test-sequencer@29.7.0': dependencies: '@jest/test-result': 29.7.0 @@ -16016,6 +16498,13 @@ snapshots: jest-haste-map: 29.7.0 slash: 3.0.0 + '@jest/test-sequencer@30.2.0': + dependencies: + '@jest/test-result': 30.2.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + slash: 3.0.0 + '@jest/transform@29.7.0': dependencies: '@babel/core': 7.27.7 @@ -16056,6 +16545,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/transform@30.2.0': + dependencies: + '@babel/core': 7.28.4 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.29 + babel-plugin-istanbul: 7.0.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 @@ -16075,6 +16584,16 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 + '@jest/types@30.2.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.17.17 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.12': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -16796,6 +17315,8 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.2.9': {} + '@preact/signals-core@1.10.0': {} '@preact/signals@1.3.2(preact@10.26.9)': @@ -17944,6 +18465,10 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers@13.0.5': + dependencies: + '@sinonjs/commons': 3.0.1 + '@slack/logger@4.0.0': dependencies: '@types/node': 20.17.17 @@ -19423,11 +19948,6 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - '@types/jest@29.5.14': dependencies: expect: 29.7.0 @@ -19671,6 +20191,65 @@ snapshots: '@ungap/structured-clone@1.3.0': {} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.11 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + '@upstash/redis@1.35.0': dependencies: uncrypto: 0.1.3 @@ -20436,6 +21015,33 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@30.2.0(@babel/core@7.27.7): + dependencies: + '@babel/core': 7.27.7 + '@jest/transform': 30.2.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.27.7) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + + babel-jest@30.2.0(@babel/core@7.28.4): + dependencies: + '@babel/core': 7.28.4 + '@jest/transform': 30.2.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.28.4) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.27.1 @@ -20456,6 +21062,16 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-istanbul@7.0.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 6.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.27.2 @@ -20463,6 +21079,10 @@ snapshots: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 + babel-plugin-jest-hoist@30.2.0: + dependencies: + '@types/babel__core': 7.20.5 + babel-plugin-syntax-hermes-parser@0.28.1: dependencies: hermes-parser: 0.28.1 @@ -20505,6 +21125,45 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) + babel-preset-current-node-syntax@1.2.0(@babel/core@7.27.7): + dependencies: + '@babel/core': 7.27.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.7) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.7) + optional: true + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): + dependencies: + '@babel/core': 7.28.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) + babel-preset-jest@29.6.3(@babel/core@7.27.7): dependencies: '@babel/core': 7.27.7 @@ -20517,6 +21176,19 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.28.4) + babel-preset-jest@30.2.0(@babel/core@7.27.7): + dependencies: + '@babel/core': 7.27.7 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.27.7) + optional: true + + babel-preset-jest@30.2.0(@babel/core@7.28.4): + dependencies: + '@babel/core': 7.28.4 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -20840,6 +21512,8 @@ snapshots: cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.1.1: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -21056,21 +21730,6 @@ snapshots: js-yaml: 3.14.1 parse-json: 4.0.0 - create-jest@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-jest@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 @@ -21882,6 +22541,15 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + expect@30.2.0: + dependencies: + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + exponential-backoff@3.1.2: {} express@5.1.0: @@ -22284,6 +22952,15 @@ snapshots: hachure-fill@0.5.2: {} + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -22824,6 +23501,12 @@ snapshots: jest-util: 29.7.0 p-limit: 3.1.0 + jest-changed-files@30.2.0: + dependencies: + execa: 5.1.1 + jest-util: 30.2.0 + p-limit: 3.1.0 + jest-circus@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -22850,24 +23533,31 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)): + jest-circus@30.2.0: dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.17.17 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 + co: 4.6.0 + dedent: 1.6.0 + is-generator-fn: 2.1.0 + jest-each: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + p-limit: 3.1.0 + pretty-format: 30.2.0 + pure-rand: 7.0.1 + slash: 3.0.0 + stack-utils: 2.0.6 transitivePeerDependencies: - - '@types/node' - babel-plugin-macros - supports-color - - ts-node jest-cli@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)): dependencies: @@ -22907,6 +23597,25 @@ snapshots: - supports-color - ts-node + jest-cli@30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)): + dependencies: + '@jest/core': 30.2.0(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) + jest-util: 30.2.0 + jest-validate: 30.2.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + jest-config@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)): dependencies: '@babel/core': 7.27.7 @@ -22969,7 +23678,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)): + jest-config@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)): dependencies: '@babel/core': 7.27.7 '@jest/test-sequencer': 29.7.0 @@ -22994,13 +23703,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.17.17 - ts-node: 10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2) + '@types/node': 20.19.1 + ts-node: 10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)): dependencies: '@babel/core': 7.27.7 '@jest/test-sequencer': 29.7.0 @@ -23025,39 +23734,42 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.19.1 - ts-node: 10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3) + '@types/node': 22.15.33 + ts-node: 10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)): + jest-config@30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)): dependencies: - '@babel/core': 7.27.7 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.27.7) + '@babel/core': 7.28.4 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.4) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.2.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-circus: 30.2.0 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.33 - ts-node: 10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3) + '@types/node': 20.17.17 + esbuild-register: 3.6.0(esbuild@0.25.2) + ts-node: 10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -23069,10 +23781,21 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-diff@30.2.0: + dependencies: + '@jest/diff-sequences': 30.0.1 + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + pretty-format: 30.2.0 + jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 + jest-docblock@30.2.0: + dependencies: + detect-newline: 3.1.0 + jest-each@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -23081,6 +23804,14 @@ snapshots: jest-util: 29.7.0 pretty-format: 29.7.0 + jest-each@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + jest-util: 30.2.0 + pretty-format: 30.2.0 + jest-environment-jsdom@29.7.0(canvas@2.11.2): dependencies: '@jest/environment': 29.7.0 @@ -23107,6 +23838,16 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + jest-environment-node@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + jest-mock: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-get-type@29.6.3: {} jest-haste-map@29.7.0: @@ -23140,12 +23881,27 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - jest-html-reporter@3.10.2(jest@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2): + jest-haste-map@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + jest-worker: 30.2.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-html-reporter@3.10.2(jest@30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2): dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 dateformat: 3.0.2 - jest: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) + jest: 30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) mkdirp: 1.0.4 strip-ansi: 6.0.1 typescript: 5.4.2 @@ -23178,6 +23934,11 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-leak-detector@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + pretty-format: 30.2.0 + jest-matcher-utils@29.7.0: dependencies: chalk: 4.1.2 @@ -23185,6 +23946,13 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-matcher-utils@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + jest-diff: 30.2.0 + pretty-format: 30.2.0 + jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.27.1 @@ -23209,16 +23977,38 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-message-util@30.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 30.2.0 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 30.2.0 + slash: 3.0.0 + stack-utils: 2.0.6 + jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 20.17.17 jest-util: 29.7.0 + jest-mock@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + jest-util: 30.2.0 + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): optionalDependencies: jest-resolve: 29.7.0 + jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): + optionalDependencies: + jest-resolve: 30.2.0 + jest-regex-util@29.6.3: {} jest-regex-util@30.0.1: {} @@ -23230,6 +24020,13 @@ snapshots: transitivePeerDependencies: - supports-color + jest-resolve-dependencies@30.2.0: + dependencies: + jest-regex-util: 30.0.1 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + jest-resolve@29.7.0: dependencies: chalk: 4.1.2 @@ -23242,6 +24039,17 @@ snapshots: resolve.exports: 2.0.3 slash: 3.0.0 + jest-resolve@30.2.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) + jest-util: 30.2.0 + jest-validate: 30.2.0 + slash: 3.0.0 + unrs-resolver: 1.11.1 + jest-runner@29.7.0: dependencies: '@jest/console': 29.7.0 @@ -23268,6 +24076,33 @@ snapshots: transitivePeerDependencies: - supports-color + jest-runner@30.2.0: + dependencies: + '@jest/console': 30.2.0 + '@jest/environment': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + chalk: 4.1.2 + emittery: 0.13.1 + exit-x: 0.2.2 + graceful-fs: 4.2.11 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-haste-map: 30.2.0 + jest-leak-detector: 30.2.0 + jest-message-util: 30.2.0 + jest-resolve: 30.2.0 + jest-runtime: 30.2.0 + jest-util: 30.2.0 + jest-watcher: 30.2.0 + jest-worker: 30.2.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + jest-runtime@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -23295,6 +24130,33 @@ snapshots: transitivePeerDependencies: - supports-color + jest-runtime@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/globals': 30.2.0 + '@jest/source-map': 30.0.1 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + chalk: 4.1.2 + cjs-module-lexer: 2.1.1 + collect-v8-coverage: 1.0.2 + glob: 10.4.5 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + jest-snapshot@29.7.0: dependencies: '@babel/core': 7.27.7 @@ -23320,6 +24182,32 @@ snapshots: transitivePeerDependencies: - supports-color + jest-snapshot@30.2.0: + dependencies: + '@babel/core': 7.28.4 + '@babel/generator': 7.28.3 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/types': 7.28.4 + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + '@jest/snapshot-utils': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) + chalk: 4.1.2 + expect: 30.2.0 + graceful-fs: 4.2.11 + jest-diff: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + pretty-format: 30.2.0 + semver: 7.7.2 + synckit: 0.11.11 + transitivePeerDependencies: + - supports-color + jest-summary-reporter@0.0.2: dependencies: chalk: 2.4.2 @@ -23342,6 +24230,15 @@ snapshots: graceful-fs: 4.2.11 picomatch: 4.0.2 + jest-util@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + chalk: 4.1.2 + ci-info: 4.2.0 + graceful-fs: 4.2.11 + picomatch: 4.0.2 + jest-validate@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -23351,6 +24248,15 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 + jest-validate@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + camelcase: 6.3.0 + chalk: 4.1.2 + leven: 3.1.0 + pretty-format: 30.2.0 + jest-watcher@29.7.0: dependencies: '@jest/test-result': 29.7.0 @@ -23362,6 +24268,17 @@ snapshots: jest-util: 29.7.0 string-length: 4.0.2 + jest-watcher@30.2.0: + dependencies: + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.17.17 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 30.2.0 + string-length: 4.0.2 + jest-worker@27.5.1: dependencies: '@types/node': 20.17.17 @@ -23383,17 +24300,13 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)): + jest-worker@30.2.0: dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node + '@types/node': 20.17.17 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.2.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 jest@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)): dependencies: @@ -23419,6 +24332,19 @@ snapshots: - supports-color - ts-node + jest@30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)): + dependencies: + '@jest/core': 30.2.0(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) + '@jest/types': 30.2.0 + import-local: 3.2.0 + jest-cli: 30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + jiti@1.21.7: {} jiti@2.4.2: {} @@ -24693,6 +25619,8 @@ snapshots: napi-build-utils@2.0.0: optional: true + napi-postinstall@0.3.4: {} + natural-compare@1.4.0: {} negotiator@0.6.3: {} @@ -25420,6 +26348,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@30.2.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + pretty-ms@7.0.1: dependencies: parse-ms: 2.1.0 @@ -25478,6 +26412,8 @@ snapshots: pure-rand@6.1.0: {} + pure-rand@7.0.1: {} + qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -26446,6 +27382,8 @@ snapshots: semver@7.7.2: {} + semver@7.7.3: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -26942,6 +27880,10 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + tabbable@6.2.0: {} table@6.9.0: @@ -27173,30 +28115,32 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.1.2(@babel/core@7.28.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.25.2)(jest@29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2): + ts-jest@29.4.0(@babel/core@7.27.7)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.27.7))(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 + ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.17)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) - jest-util: 29.7.0 + jest: 29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.7.2 - typescript: 5.4.2 + type-fest: 4.41.0 + typescript: 5.8.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.28.4 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.4) - esbuild: 0.25.2 + '@babel/core': 7.27.7 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.27.7) + jest-util: 30.2.0 - ts-jest@29.4.0(@babel/core@7.27.7)(@jest/transform@30.0.2)(@jest/types@30.0.1)(babel-jest@29.7.0(@babel/core@7.27.7))(jest-util@30.0.2)(jest@29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.19.1)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@20.19.1)(typescript@5.8.3)) + jest: 29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -27205,31 +28149,32 @@ snapshots: typescript: 5.8.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.27.7 - '@jest/transform': 30.0.2 - '@jest/types': 30.0.1 - babel-jest: 29.7.0(@babel/core@7.27.7) - jest-util: 30.0.2 + '@babel/core': 7.28.4 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.4) + jest-util: 30.2.0 - ts-jest@29.4.0(@babel/core@7.28.4)(@jest/transform@30.0.2)(@jest/types@30.0.1)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@30.0.2)(jest@29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.4.5(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)))(typescript@5.4.2): dependencies: bs-logger: 0.2.6 - ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.15.33)(ts-node@10.9.2(@swc/core@1.12.7)(@types/node@22.15.33)(typescript@5.8.3)) + handlebars: 4.7.8 + jest: 30.2.0(@types/node@20.17.17)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.4.2)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.7.2 + semver: 7.7.3 type-fest: 4.41.0 - typescript: 5.8.3 + typescript: 5.4.2 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.28.4 - '@jest/transform': 30.0.2 - '@jest/types': 30.0.1 - babel-jest: 29.7.0(@babel/core@7.28.4) - jest-util: 30.0.2 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.4) + esbuild: 0.25.2 + jest-util: 30.2.0 ts-loader@9.5.2(typescript@5.8.3)(webpack@5.99.9): dependencies: @@ -27501,6 +28446,9 @@ snapshots: ufo@1.6.1: {} + uglify-js@3.19.3: + optional: true + uid-promise@1.0.0: {} uncrypto@0.1.3: {} @@ -27582,6 +28530,30 @@ snapshots: webpack-virtual-modules: 0.6.2 optional: true + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + update-browserslist-db@1.1.3(browserslist@4.25.1): dependencies: browserslist: 4.25.1 @@ -28283,6 +29255,8 @@ snapshots: wildcard@2.0.1: {} + wordwrap@1.0.0: {} + workerpool@9.3.3: {} wrap-ansi@6.2.0: