baml-sap-ts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ /**
3
+ * BAML SAP TypeScript Migration
4
+ *
5
+ * Schema-Aligned Parsing (SAP) for TypeScript using TypeBox
6
+ *
7
+ * This is a TypeScript port of BAML's core algorithm for structured
8
+ * data extraction from LLM responses.
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * import { Type } from '@sinclair/typebox';
13
+ * import { createPromptWithSchema, parseResponse } from 'baml-sap-ts';
14
+ *
15
+ * const schema = Type.Object({
16
+ * name: Type.String(),
17
+ * age: Type.Number(),
18
+ * });
19
+ *
20
+ * // Create a prompt with schema instructions
21
+ * const prompt = createPromptWithSchema(
22
+ * 'Extract user information from: John is 25 years old',
23
+ * schema
24
+ * );
25
+ *
26
+ * // After getting LLM response, parse it
27
+ * const response = `{ "name": "John", "age": 25 }`;
28
+ * const result = parseResponse(response, schema);
29
+ *
30
+ * if (result.success) {
31
+ * console.log(result.value); // { name: "John", age: 25 }
32
+ * }
33
+ * ```
34
+ */
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.validateValue = exports.coerceValue = exports.renderSchema = exports.createJsonSchemaPrompt = exports.hasChainOfThought = exports.filterChainOfThought = exports.extractJson = exports.extractAllCandidates = void 0;
37
+ exports.parseResponse = parseResponse;
38
+ exports.parsePartialResponse = parsePartialResponse;
39
+ exports.createPromptWithSchema = createPromptWithSchema;
40
+ exports.parseAllCandidates = parseAllCandidates;
41
+ exports.parseBestCandidate = parseBestCandidate;
42
+ exports.isValidResponse = isValidResponse;
43
+ exports.debugParse = debugParse;
44
+ const json_extractor_js_1 = require("./json-extractor.js");
45
+ const schema_renderer_js_1 = require("./schema-renderer.js");
46
+ const type_coercer_js_1 = require("./type-coercer.js");
47
+ var json_extractor_js_2 = require("./json-extractor.js");
48
+ Object.defineProperty(exports, "extractAllCandidates", { enumerable: true, get: function () { return json_extractor_js_2.extractAllCandidates; } });
49
+ Object.defineProperty(exports, "extractJson", { enumerable: true, get: function () { return json_extractor_js_2.extractJson; } });
50
+ Object.defineProperty(exports, "filterChainOfThought", { enumerable: true, get: function () { return json_extractor_js_2.filterChainOfThought; } });
51
+ Object.defineProperty(exports, "hasChainOfThought", { enumerable: true, get: function () { return json_extractor_js_2.hasChainOfThought; } });
52
+ // Re-export types and functions
53
+ var schema_renderer_js_2 = require("./schema-renderer.js");
54
+ Object.defineProperty(exports, "createJsonSchemaPrompt", { enumerable: true, get: function () { return schema_renderer_js_2.createJsonSchemaPrompt; } });
55
+ Object.defineProperty(exports, "renderSchema", { enumerable: true, get: function () { return schema_renderer_js_2.renderSchema; } });
56
+ var type_coercer_js_2 = require("./type-coercer.js");
57
+ Object.defineProperty(exports, "coerceValue", { enumerable: true, get: function () { return type_coercer_js_2.coerceValue; } });
58
+ Object.defineProperty(exports, "validateValue", { enumerable: true, get: function () { return type_coercer_js_2.validateValue; } });
59
+ const defaultParseOptions = {
60
+ // Extraction defaults
61
+ allowMarkdownJson: true,
62
+ allowFixes: true,
63
+ allowAsString: true,
64
+ findAllJsonObjects: true,
65
+ maxDepth: 100,
66
+ // Coercion defaults
67
+ allowPartials: false,
68
+ useDefaults: true,
69
+ strict: false,
70
+ trackCoercions: false,
71
+ // Parse defaults
72
+ filterChainOfThought: true,
73
+ returnAllCandidates: false,
74
+ };
75
+ /**
76
+ * Parse an LLM response into a typed value
77
+ *
78
+ * This is the main entry point for the SAP algorithm.
79
+ * It handles:
80
+ * 1. Chain-of-thought filtering
81
+ * 2. JSON extraction from markdown/text
82
+ * 3. Type coercion and validation
83
+ *
84
+ * @param response - The raw LLM response text
85
+ * @param schema - TypeBox schema to validate against
86
+ * @param options - Parsing options
87
+ * @returns ParseResult with the typed value or errors
88
+ */
89
+ function parseResponse(response, schema, options = {}) {
90
+ const opts = { ...defaultParseOptions, ...options };
91
+ // Step 1: Filter chain-of-thought if needed
92
+ let text = response;
93
+ let chainOfThoughtFiltered = false;
94
+ if (opts.filterChainOfThought && (0, json_extractor_js_1.hasChainOfThought)(response)) {
95
+ text = (0, json_extractor_js_1.filterChainOfThought)(response);
96
+ chainOfThoughtFiltered = text !== response;
97
+ }
98
+ // Step 2: Extract JSON
99
+ let extraction;
100
+ try {
101
+ extraction = (0, json_extractor_js_1.extractJson)(text, opts, true, 0);
102
+ }
103
+ catch (error) {
104
+ return {
105
+ success: false,
106
+ value: undefined,
107
+ errors: [
108
+ {
109
+ path: "",
110
+ message: `JSON extraction failed: ${error instanceof Error ? error.message : String(error)}`,
111
+ },
112
+ ],
113
+ isPartial: false,
114
+ meta: {
115
+ raw: response,
116
+ chainOfThoughtFiltered,
117
+ },
118
+ };
119
+ }
120
+ // Step 3: Coerce to schema
121
+ const coercion = (0, type_coercer_js_1.coerceValue)(extraction.value, schema, opts);
122
+ return {
123
+ success: coercion.success,
124
+ value: coercion.value,
125
+ errors: coercion.errors.map((e) => ({ path: e.path, message: e.message })),
126
+ isPartial: coercion.isPartial || false,
127
+ meta: {
128
+ raw: response,
129
+ fromMarkdown: extraction.fromMarkdown,
130
+ chainOfThoughtFiltered,
131
+ fixes: extraction.fixes,
132
+ coercions: coercion.coercions,
133
+ },
134
+ };
135
+ }
136
+ /**
137
+ * Stream parser for handling partial LLM responses
138
+ *
139
+ * This is useful for streaming scenarios where you want to
140
+ * show partial results as they arrive.
141
+ *
142
+ * @param partialResponse - The partial response text so far
143
+ * @param schema - TypeBox schema to validate against
144
+ * @param options - Parsing options
145
+ * @returns ParseResult with the best-effort typed value
146
+ */
147
+ function parsePartialResponse(partialResponse, schema, options = {}) {
148
+ const opts = {
149
+ ...defaultParseOptions,
150
+ ...options,
151
+ allowPartials: true,
152
+ allowAsString: true,
153
+ };
154
+ return parseResponse(partialResponse, schema, opts);
155
+ }
156
+ /**
157
+ * Create a prompt with schema instructions
158
+ *
159
+ * Appends schema instructions to a base prompt to guide
160
+ * the LLM toward producing correctly structured output.
161
+ *
162
+ * @param basePrompt - The base prompt text
163
+ * @param schema - TypeBox schema describing expected output
164
+ * @param options - Schema rendering options
165
+ * @returns Complete prompt with schema instructions
166
+ */
167
+ function createPromptWithSchema(basePrompt, schema, options) {
168
+ return (0, schema_renderer_js_1.createPromptWithSchema)(basePrompt, schema, options);
169
+ }
170
+ /**
171
+ * Parse multiple candidates from a response
172
+ *
173
+ * Useful when the LLM might have provided multiple JSON objects
174
+ * and you want to try them all.
175
+ *
176
+ * @param response - The raw LLM response text
177
+ * @param schema - TypeBox schema to validate against
178
+ * @param options - Parsing options
179
+ * @returns Array of ParseResults for each candidate
180
+ */
181
+ function parseAllCandidates(response, schema, options = {}) {
182
+ const { extractAllCandidates } = require("./json-extractor.js");
183
+ const candidates = extractAllCandidates(response);
184
+ const results = [];
185
+ for (const candidate of candidates) {
186
+ try {
187
+ const result = parseResponse(candidate, schema, options);
188
+ results.push(result);
189
+ }
190
+ catch {
191
+ // Skip invalid candidates
192
+ }
193
+ }
194
+ return results;
195
+ }
196
+ /**
197
+ * Get the best candidate from multiple options
198
+ *
199
+ * Returns the candidate with the fewest errors.
200
+ *
201
+ * @param response - The raw LLM response text
202
+ * @param schema - TypeBox schema to validate against
203
+ * @param options - Parsing options
204
+ * @returns The best ParseResult or null if none valid
205
+ */
206
+ function parseBestCandidate(response, schema, options = {}) {
207
+ const candidates = parseAllCandidates(response, schema, options);
208
+ if (candidates.length === 0) {
209
+ return null;
210
+ }
211
+ // Sort by number of errors (ascending)
212
+ candidates.sort((a, b) => a.errors.length - b.errors.length);
213
+ return candidates[0];
214
+ }
215
+ /**
216
+ * Check if a response is valid against a schema without full parsing
217
+ *
218
+ * @param response - The raw LLM response text
219
+ * @param schema - TypeBox schema to validate against
220
+ * @returns Whether the response is valid
221
+ */
222
+ function isValidResponse(response, schema) {
223
+ try {
224
+ const result = parseResponse(response, schema);
225
+ return result.success;
226
+ }
227
+ catch {
228
+ return false;
229
+ }
230
+ }
231
+ /**
232
+ * Debug helper to see what the parser is doing
233
+ *
234
+ * @param response - The raw LLM response text
235
+ * @param schema - TypeBox schema to validate against
236
+ * @returns Debug information
237
+ */
238
+ function debugParse(response, schema) {
239
+ const filteredText = (0, json_extractor_js_1.hasChainOfThought)(response) ? (0, json_extractor_js_1.filterChainOfThought)(response) : response;
240
+ let extractedValue = null;
241
+ const extractionErrors = [];
242
+ try {
243
+ const extraction = (0, json_extractor_js_1.extractJson)(filteredText, {}, true, 0);
244
+ extractedValue = extraction.value;
245
+ }
246
+ catch (error) {
247
+ extractionErrors.push(String(error));
248
+ }
249
+ const coercionResult = (0, type_coercer_js_1.coerceValue)(extractedValue ?? filteredText, schema, { trackCoercions: true });
250
+ return {
251
+ filteredText,
252
+ extractedValue,
253
+ extractionErrors,
254
+ coercionResult,
255
+ };
256
+ }
257
+ // Default export
258
+ exports.default = {
259
+ parseResponse,
260
+ parsePartialResponse,
261
+ createPromptWithSchema,
262
+ parseAllCandidates,
263
+ parseBestCandidate,
264
+ isValidResponse,
265
+ debugParse,
266
+ renderSchema: schema_renderer_js_1.renderSchema,
267
+ createJsonSchemaPrompt: schema_renderer_js_1.createJsonSchemaPrompt,
268
+ extractJson: json_extractor_js_1.extractJson,
269
+ filterChainOfThought: json_extractor_js_1.filterChainOfThought,
270
+ hasChainOfThought: json_extractor_js_1.hasChainOfThought,
271
+ coerceValue: type_coercer_js_1.coerceValue,
272
+ validateValue: type_coercer_js_1.validateValue,
273
+ };
274
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;AAuGH,sCAsDC;AAaD,oDAaC;AAaD,wDAEC;AAaD,gDAoBC;AAYD,gDAeC;AASD,0CAOC;AASD,gCA6BC;AArTD,2DAM6B;AAC7B,6DAK8B;AAC9B,uDAA0G;AAE1G,yDAK6B;AAJ5B,yHAAA,oBAAoB,OAAA;AACpB,gHAAA,WAAW,OAAA;AACX,yHAAA,oBAAoB,OAAA;AACpB,sHAAA,iBAAiB,OAAA;AAElB,gCAAgC;AAChC,2DAA4E;AAAnE,4HAAA,sBAAsB,OAAA;AAAE,kHAAA,YAAY,OAAA;AAC7C,qDAM2B;AAF1B,8GAAA,WAAW,OAAA;AACX,gHAAA,aAAa,OAAA;AAcd,MAAM,mBAAmB,GAAiB;IACzC,sBAAsB;IACtB,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE,GAAG;IACb,oBAAoB;IACpB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,KAAK;IACrB,iBAAiB;IACjB,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,KAAK;CAC1B,CAAC;AA6BF;;;;;;;;;;;;;GAaG;AACH,SAAgB,aAAa,CAC5B,QAAgB,EAChB,MAAS,EACT,UAAwB,EAAE;IAE1B,MAAM,IAAI,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpD,4CAA4C;IAC5C,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAA,qCAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,IAAI,GAAG,IAAA,wCAAoB,EAAC,QAAQ,CAAC,CAAC;QACtC,sBAAsB,GAAG,IAAI,KAAK,QAAQ,CAAC;IAC5C,CAAC;IAED,uBAAuB;IACvB,IAAI,UAA4B,CAAC;IACjC,IAAI,CAAC;QACJ,UAAU,GAAG,IAAA,+BAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,SAAiC;YACxC,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAC5F;aACD;YACD,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE;gBACL,GAAG,EAAE,QAAQ;gBACb,sBAAsB;aACtB;SACD,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,IAAA,6BAAW,EAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE7D,OAAO;QACN,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,KAAK;QACtC,IAAI,EAAE;YACL,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,sBAAsB;YACtB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC7B;KACD,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,oBAAoB,CACnC,eAAuB,EACvB,MAAS,EACT,UAAwB,EAAE;IAE1B,MAAM,IAAI,GAAG;QACZ,GAAG,mBAAmB;QACtB,GAAG,OAAO;QACV,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,IAAI;KACnB,CAAC;IAEF,OAAO,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CAAC,UAAkB,EAAE,MAAe,EAAE,OAA6B;IACxG,OAAO,IAAA,2CAAY,EAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,kBAAkB,CACjC,QAAgB,EAChB,MAAS,EACT,UAAwB,EAAE;IAE1B,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAElD,MAAM,OAAO,GAA6B,EAAE,CAAC;IAE7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACR,0BAA0B;QAC3B,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CACjC,QAAgB,EAChB,MAAS,EACT,UAAwB,EAAE;IAE1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uCAAuC;IACvC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE7D,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,QAAgB,EAAE,MAAe;IAChE,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,OAAO,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CACzB,QAAgB,EAChB,MAAe;IAOf,MAAM,YAAY,GAAG,IAAA,qCAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,wCAAoB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE7F,IAAI,cAAc,GAAY,IAAI,CAAC;IACnC,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,6BAAW,EAAC,cAAc,IAAI,YAAY,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAErG,OAAO;QACN,YAAY;QACZ,cAAc;QACd,gBAAgB;QAChB,cAAc;KACd,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,kBAAe;IACd,aAAa;IACb,oBAAoB;IACpB,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,UAAU;IACV,YAAY,EAAZ,iCAAY;IACZ,sBAAsB,EAAtB,2CAAsB;IACtB,WAAW,EAAX,+BAAW;IACX,oBAAoB,EAApB,wCAAoB;IACpB,iBAAiB,EAAjB,qCAAiB;IACjB,WAAW,EAAX,6BAAW;IACX,aAAa,EAAb,+BAAa;CACb,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * JSON Extractor - Extracts JSON from LLM responses
3
+ *
4
+ * Handles:
5
+ * - Markdown code block extraction
6
+ * - Multiple JSON objects
7
+ * - JSON fixing (trailing commas, missing quotes)
8
+ * - Chain-of-thought text filtering
9
+ *
10
+ * Based on BAML's jsonish parser
11
+ */
12
+ export interface ExtractionOptions {
13
+ /** Allow extracting JSON from markdown code blocks */
14
+ allowMarkdownJson?: boolean;
15
+ /** Attempt to fix malformed JSON */
16
+ allowFixes?: boolean;
17
+ /** Return raw string if all else fails */
18
+ allowAsString?: boolean;
19
+ /** Find all JSON objects in the text */
20
+ findAllJsonObjects?: boolean;
21
+ /** Maximum recursion depth for nested parsing */
22
+ maxDepth?: number;
23
+ }
24
+ /**
25
+ * Result of JSON extraction
26
+ */
27
+ export interface ExtractionResult {
28
+ /** The extracted value(s) */
29
+ value: unknown;
30
+ /** The raw text that was parsed */
31
+ raw: string;
32
+ /** Whether this was from a markdown code block */
33
+ fromMarkdown?: boolean;
34
+ /** Fixes that were applied */
35
+ fixes?: string[];
36
+ /** Whether this is a partial/incomplete result (for streaming) */
37
+ isPartial?: boolean;
38
+ }
39
+ /**
40
+ * Extract JSON from an LLM response string
41
+ */
42
+ export declare function extractJson(text: string, options?: ExtractionOptions, isDone?: boolean, depth?: number): ExtractionResult;
43
+ /**
44
+ * Filter out chain-of-thought reasoning text
45
+ * Returns the text that appears after reasoning markers
46
+ */
47
+ export declare function filterChainOfThought(text: string): string;
48
+ /**
49
+ * Extract all candidate JSON strings from text
50
+ * Useful for debugging and multiple-choice scenarios
51
+ */
52
+ export declare function extractAllCandidates(text: string): string[];
53
+ /**
54
+ * Check if a response looks like it contains chain-of-thought reasoning
55
+ */
56
+ export declare function hasChainOfThought(text: string): boolean;
57
+ //# sourceMappingURL=json-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-extractor.d.ts","sourceRoot":"","sources":["../src/json-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,iBAAiB;IACjC,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,6BAA6B;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,EAC/B,MAAM,GAAE,OAAc,EACtB,KAAK,GAAE,MAAU,GACf,gBAAgB,CAgDlB;AA2SD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBzD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAavD"}