@firefliesai/schema-forge
Version:
Transform TypeScript classes into JSON Schema definitions with automatic support for OpenAI, Anthropic, and Google Gemini function calling (tool) formats
105 lines (104 loc) • 9.38 kB
JavaScript
;
/**
* Schema Forge - TypeScript to JSON Schema conversion
*
* Main exports for schema-forge library
*/
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.Schema = exports.classToLLMTool = exports.prepareForOpenAIStructuredOutput = exports.openAIToolToJsonSchema = exports.openAIResponseApiToolToJsonSchema = exports.jsonSchemaToOpenAITool = exports.jsonSchemaToOpenAIResponseFormat = exports.jsonSchemaToOpenAIResponseApiTool = exports.jsonSchemaToOpenAIResponseApiTextSchema = exports.jsonSchemaToGeminiVertexTool = exports.jsonSchemaToGeminiVertexResponseSchema = exports.jsonSchemaToGeminiTool = exports.jsonSchemaToGeminiResponseSchema = exports.jsonSchemaToGeminiOldTool = exports.jsonSchemaToGeminiOldResponseSchema = exports.jsonSchemaToAnthropicTool = exports.classToOpenAITool = exports.classToOpenAIResponseFormatJsonSchema = exports.classToOpenAIResponseApiTool = exports.classToOpenAIResponseApiTextSchema = exports.classToGeminiVertexTool = exports.classToGeminiVertexResponseSchema = exports.classToGeminiTool = exports.classToGeminiResponseSchema = exports.classToGeminiOldTool = exports.classToGeminiOldResponseSchema = exports.classToAnthropicTool = exports.updateSchemaProperty = exports.ToolProp = exports.ToolMeta = exports.addSchemaProperty = exports.classToJsonSchema = void 0;
// Re-export all public types
__exportStar(require("./types"), exports);
// Re-export core functionality
var core_1 = require("./core");
Object.defineProperty(exports, "classToJsonSchema", { enumerable: true, get: function () { return core_1.classToJsonSchema; } });
// Re-export decorator functions
var decorators_1 = require("./decorators");
Object.defineProperty(exports, "addSchemaProperty", { enumerable: true, get: function () { return decorators_1.addSchemaProperty; } });
Object.defineProperty(exports, "ToolMeta", { enumerable: true, get: function () { return decorators_1.ToolMeta; } });
Object.defineProperty(exports, "ToolProp", { enumerable: true, get: function () { return decorators_1.ToolProp; } });
Object.defineProperty(exports, "updateSchemaProperty", { enumerable: true, get: function () { return decorators_1.updateSchemaProperty; } });
// Re-export LLM-specific functions
var llm_formats_1 = require("./llm-formats");
Object.defineProperty(exports, "classToAnthropicTool", { enumerable: true, get: function () { return llm_formats_1.classToAnthropicTool; } });
Object.defineProperty(exports, "classToGeminiOldResponseSchema", { enumerable: true, get: function () { return llm_formats_1.classToGeminiOldResponseSchema; } });
Object.defineProperty(exports, "classToGeminiOldTool", { enumerable: true, get: function () { return llm_formats_1.classToGeminiOldTool; } });
Object.defineProperty(exports, "classToGeminiResponseSchema", { enumerable: true, get: function () { return llm_formats_1.classToGeminiResponseSchema; } });
Object.defineProperty(exports, "classToGeminiTool", { enumerable: true, get: function () { return llm_formats_1.classToGeminiTool; } });
Object.defineProperty(exports, "classToGeminiVertexResponseSchema", { enumerable: true, get: function () { return llm_formats_1.classToGeminiVertexResponseSchema; } });
Object.defineProperty(exports, "classToGeminiVertexTool", { enumerable: true, get: function () { return llm_formats_1.classToGeminiVertexTool; } });
Object.defineProperty(exports, "classToOpenAIResponseApiTextSchema", { enumerable: true, get: function () { return llm_formats_1.classToOpenAIResponseApiTextSchema; } });
Object.defineProperty(exports, "classToOpenAIResponseApiTool", { enumerable: true, get: function () { return llm_formats_1.classToOpenAIResponseApiTool; } });
Object.defineProperty(exports, "classToOpenAIResponseFormatJsonSchema", { enumerable: true, get: function () { return llm_formats_1.classToOpenAIResponseFormatJsonSchema; } });
Object.defineProperty(exports, "classToOpenAITool", { enumerable: true, get: function () { return llm_formats_1.classToOpenAITool; } });
// Direct JSON Schema converters
Object.defineProperty(exports, "jsonSchemaToAnthropicTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToAnthropicTool; } });
Object.defineProperty(exports, "jsonSchemaToGeminiOldResponseSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiOldResponseSchema; } });
Object.defineProperty(exports, "jsonSchemaToGeminiOldTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiOldTool; } });
Object.defineProperty(exports, "jsonSchemaToGeminiResponseSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiResponseSchema; } });
Object.defineProperty(exports, "jsonSchemaToGeminiTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiTool; } });
Object.defineProperty(exports, "jsonSchemaToGeminiVertexResponseSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiVertexResponseSchema; } });
Object.defineProperty(exports, "jsonSchemaToGeminiVertexTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToGeminiVertexTool; } });
Object.defineProperty(exports, "jsonSchemaToOpenAIResponseApiTextSchema", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAIResponseApiTextSchema; } });
Object.defineProperty(exports, "jsonSchemaToOpenAIResponseApiTool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAIResponseApiTool; } });
Object.defineProperty(exports, "jsonSchemaToOpenAIResponseFormat", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAIResponseFormat; } });
Object.defineProperty(exports, "jsonSchemaToOpenAITool", { enumerable: true, get: function () { return llm_formats_1.jsonSchemaToOpenAITool; } });
Object.defineProperty(exports, "openAIResponseApiToolToJsonSchema", { enumerable: true, get: function () { return llm_formats_1.openAIResponseApiToolToJsonSchema; } });
// Extract JSON Schema from LLM formats
Object.defineProperty(exports, "openAIToolToJsonSchema", { enumerable: true, get: function () { return llm_formats_1.openAIToolToJsonSchema; } });
// Re-export utility functions
var utils_1 = require("./utils");
Object.defineProperty(exports, "prepareForOpenAIStructuredOutput", { enumerable: true, get: function () { return utils_1.prepareForOpenAIStructuredOutput; } });
// Legacy import name for backwards compatibility
var llm_formats_2 = require("./llm-formats");
Object.defineProperty(exports, "classToLLMTool", { enumerable: true, get: function () { return llm_formats_2.classToOpenAITool; } });
// Namespace for all exports (backwards compatibility)
const core_2 = require("./core");
const decorators_2 = require("./decorators");
const llm_formats_3 = require("./llm-formats");
const utils_2 = require("./utils");
exports.Schema = {
// Decorators
ToolMeta: decorators_2.ToolMeta,
ToolProp: decorators_2.ToolProp,
// Core JSON Schema generation
classToJsonSchema: core_2.classToJsonSchema,
prepareForOpenAIStructuredOutput: utils_2.prepareForOpenAIStructuredOutput,
// Schema modification
updateSchemaProperty: decorators_2.updateSchemaProperty,
addSchemaProperty: decorators_2.addSchemaProperty,
// LLM-specific class converter functions
classToOpenAITool: llm_formats_3.classToOpenAITool,
classToOpenAIResponseFormatJsonSchema: llm_formats_3.classToOpenAIResponseFormatJsonSchema,
classToOpenAIResponseApiTool: llm_formats_3.classToOpenAIResponseApiTool,
classToOpenAIResponseApiTextSchema: llm_formats_3.classToOpenAIResponseApiTextSchema,
classToGeminiTool: llm_formats_3.classToGeminiTool,
classToGeminiResponseSchema: llm_formats_3.classToGeminiResponseSchema,
classToAnthropicTool: llm_formats_3.classToAnthropicTool,
// Direct JSON Schema converter functions
jsonSchemaToOpenAITool: llm_formats_3.jsonSchemaToOpenAITool,
jsonSchemaToOpenAIResponseFormat: llm_formats_3.jsonSchemaToOpenAIResponseFormat,
jsonSchemaToOpenAIResponseApiTool: llm_formats_3.jsonSchemaToOpenAIResponseApiTool,
jsonSchemaToOpenAIResponseApiTextSchema: llm_formats_3.jsonSchemaToOpenAIResponseApiTextSchema,
jsonSchemaToGeminiTool: llm_formats_3.jsonSchemaToGeminiTool,
jsonSchemaToGeminiResponseSchema: llm_formats_3.jsonSchemaToGeminiResponseSchema,
jsonSchemaToAnthropicTool: llm_formats_3.jsonSchemaToAnthropicTool,
// Extract JSON Schema from LLM formats
openAIToolToJsonSchema: llm_formats_3.openAIToolToJsonSchema,
openAIResponseApiToolToJsonSchema: llm_formats_3.openAIResponseApiToolToJsonSchema,
// Legacy name
classToLLMTool: llm_formats_3.classToOpenAITool,
};