@elizaos/plugin-mcp 1.7.1 → 1.8.1
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/actions/dynamic-tool-actions.d.ts +16 -0
- package/dist/actions/dynamic-tool-actions.d.ts.map +1 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/schema-cache.d.ts +34 -0
- package/dist/cache/schema-cache.d.ts.map +1 -0
- package/dist/cjs/index.cjs +8372 -1581
- package/dist/cjs/index.js.map +95 -24
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8408 -1616
- package/dist/index.js.map +95 -24
- package/dist/provider.d.ts.map +1 -1
- package/dist/service.d.ts +23 -21
- package/dist/service.d.ts.map +1 -1
- package/dist/tool-compatibility/base.d.ts +25 -0
- package/dist/tool-compatibility/base.d.ts.map +1 -0
- package/dist/tool-compatibility/index.d.ts +7 -52
- package/dist/tool-compatibility/index.d.ts.map +1 -1
- package/dist/tool-compatibility/providers/anthropic.d.ts +2 -3
- package/dist/tool-compatibility/providers/anthropic.d.ts.map +1 -1
- package/dist/tool-compatibility/providers/google.d.ts +2 -3
- package/dist/tool-compatibility/providers/google.d.ts.map +1 -1
- package/dist/tool-compatibility/providers/openai.d.ts +2 -3
- package/dist/tool-compatibility/providers/openai.d.ts.map +1 -1
- package/dist/types.d.ts +53 -88
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/action-naming.d.ts +9 -0
- package/dist/utils/action-naming.d.ts.map +1 -0
- package/dist/utils/error.d.ts +1 -11
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/processing.d.ts +5 -11
- package/dist/utils/processing.d.ts.map +1 -1
- package/dist/utils/schema-converter.d.ts +9 -0
- package/dist/utils/schema-converter.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +1 -24
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/wrapper.d.ts +6 -15
- package/dist/utils/wrapper.d.ts.map +1 -1
- package/package.json +6 -4
- package/dist/actions/callToolAction.d.ts +0 -3
- package/dist/actions/callToolAction.d.ts.map +0 -1
- package/dist/templates/feedbackTemplate.d.ts +0 -2
- package/dist/templates/feedbackTemplate.d.ts.map +0 -1
- package/dist/templates/toolReasoningTemplate.d.ts +0 -2
- package/dist/templates/toolReasoningTemplate.d.ts.map +0 -1
- package/dist/templates/toolSelectionTemplate.d.ts +0 -3
- package/dist/templates/toolSelectionTemplate.d.ts.map +0 -1
- package/dist/utils/handler.d.ts +0 -3
- package/dist/utils/handler.d.ts.map +0 -1
- package/dist/utils/schemas.d.ts +0 -69
- package/dist/utils/schemas.d.ts.map +0 -1
- package/dist/utils/selection.d.ts +0 -38
- package/dist/utils/selection.d.ts.map +0 -1
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,33 +1,104 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../
|
|
3
|
+
"sources": ["../../node_modules/ajv/dist/compile/codegen/code.js", "../../node_modules/ajv/dist/compile/codegen/scope.js", "../../node_modules/ajv/dist/compile/codegen/index.js", "../../node_modules/ajv/dist/compile/util.js", "../../node_modules/ajv/dist/compile/names.js", "../../node_modules/ajv/dist/compile/errors.js", "../../node_modules/ajv/dist/compile/validate/boolSchema.js", "../../node_modules/ajv/dist/compile/rules.js", "../../node_modules/ajv/dist/compile/validate/applicability.js", "../../node_modules/ajv/dist/compile/validate/dataType.js", "../../node_modules/ajv/dist/compile/validate/defaults.js", "../../node_modules/ajv/dist/vocabularies/code.js", "../../node_modules/ajv/dist/compile/validate/keyword.js", "../../node_modules/ajv/dist/compile/validate/subschema.js", "../../node_modules/fast-deep-equal/index.js", "../../node_modules/json-schema-traverse/index.js", "../../node_modules/ajv/dist/compile/resolve.js", "../../node_modules/ajv/dist/compile/validate/index.js", "../../node_modules/ajv/dist/runtime/validation_error.js", "../../node_modules/ajv/dist/compile/ref_error.js", "../../node_modules/ajv/dist/compile/index.js", "../../node_modules/fast-uri/lib/scopedChars.js", "../../node_modules/fast-uri/lib/utils.js", "../../node_modules/fast-uri/lib/schemes.js", "../../node_modules/fast-uri/index.js", "../../node_modules/ajv/dist/runtime/uri.js", "../../node_modules/ajv/dist/core.js", "../../node_modules/ajv/dist/vocabularies/core/id.js", "../../node_modules/ajv/dist/vocabularies/core/ref.js", "../../node_modules/ajv/dist/vocabularies/core/index.js", "../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js", "../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js", "../../node_modules/ajv/dist/runtime/ucs2length.js", "../../node_modules/ajv/dist/vocabularies/validation/limitLength.js", "../../node_modules/ajv/dist/vocabularies/validation/pattern.js", "../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js", "../../node_modules/ajv/dist/vocabularies/validation/required.js", "../../node_modules/ajv/dist/vocabularies/validation/limitItems.js", "../../node_modules/ajv/dist/runtime/equal.js", "../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js", "../../node_modules/ajv/dist/vocabularies/validation/const.js", "../../node_modules/ajv/dist/vocabularies/validation/enum.js", "../../node_modules/ajv/dist/vocabularies/validation/index.js", "../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js", "../../node_modules/ajv/dist/vocabularies/applicator/items.js", "../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js", "../../node_modules/ajv/dist/vocabularies/applicator/items2020.js", "../../node_modules/ajv/dist/vocabularies/applicator/contains.js", "../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js", "../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js", "../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js", "../../node_modules/ajv/dist/vocabularies/applicator/properties.js", "../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js", "../../node_modules/ajv/dist/vocabularies/applicator/not.js", "../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/allOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/if.js", "../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js", "../../node_modules/ajv/dist/vocabularies/applicator/index.js", "../../node_modules/ajv/dist/vocabularies/format/format.js", "../../node_modules/ajv/dist/vocabularies/format/index.js", "../../node_modules/ajv/dist/vocabularies/metadata.js", "../../node_modules/ajv/dist/vocabularies/draft7.js", "../../node_modules/ajv/dist/vocabularies/discriminator/types.js", "../../node_modules/ajv/dist/vocabularies/discriminator/index.js", "../../node_modules/ajv/dist/ajv.js", "../../node_modules/json5/lib/unicode.js", "../../node_modules/json5/lib/util.js", "../../node_modules/json5/lib/parse.js", "../../node_modules/json5/lib/stringify.js", "../../node_modules/json5/lib/index.js", "../../src/index.ts", "../../src/actions/readResourceAction.ts", "../../src/templates/resourceSelectionTemplate.ts", "../../src/types.ts", "../../src/utils/error.ts", "../../src/templates/errorAnalysisPrompt.ts", "../../src/utils/processing.ts", "../../src/templates/resourceAnalysisTemplate.ts", "../../src/utils/mcp.ts", "../../src/utils/json.ts", "../../src/utils/validation.ts", "../../src/utils/wrapper.ts", "../../src/provider.ts", "../../src/service.ts", "../../src/actions/dynamic-tool-actions.ts", "../../src/utils/schema-converter.ts", "../../src/utils/action-naming.ts", "../../src/cache/schema-cache.ts", "../../src/tool-compatibility/base.ts", "../../src/tool-compatibility/providers/openai.ts", "../../src/tool-compatibility/providers/anthropic.ts", "../../src/tool-compatibility/providers/google.ts", "../../src/tool-compatibility/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"import { McpToolCompatibility, type ModelInfo } from '../index';\n\nexport class GoogleMcpCompatibility extends McpToolCompatibility {\n constructor(modelInfo: ModelInfo) {\n super(modelInfo);\n }\n\n shouldApply(): boolean {\n // Google models support schema properties but often ignore constraints\n // We need to embed constraints in descriptions for them to be respected\n return this.modelInfo.provider === 'google';\n }\n\n protected getUnsupportedStringProperties(): string[] {\n // Google models support these properties but often ignore them\n // So we move them to descriptions instead\n return ['minLength', 'maxLength', 'pattern', 'format'];\n }\n\n protected getUnsupportedNumberProperties(): string[] {\n // Google models support these but often ignore the constraints\n return ['minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf'];\n }\n\n protected getUnsupportedArrayProperties(): string[] {\n // Google models ignore array length constraints\n return ['minItems', 'maxItems', 'uniqueItems'];\n }\n\n protected getUnsupportedObjectProperties(): string[] {\n // Google models ignore object-level constraints\n return ['minProperties', 'maxProperties', 'additionalProperties'];\n }\n\n // Override to provide Google-optimized constraint descriptions\n protected mergeDescription(originalDescription: string | undefined, constraints: any): string {\n const constraintText = this.formatConstraintsForGoogle(constraints);\n if (originalDescription && constraintText) {\n return `${originalDescription}\\n\\nConstraints: ${constraintText}`;\n } else if (constraintText) {\n return `Constraints: ${constraintText}`;\n }\n return originalDescription || '';\n }\n\n private formatConstraintsForGoogle(constraints: any): string {\n const rules: string[] = [];\n \n // Format constraints in a way that Google models understand better\n if (constraints.minLength) {\n rules.push(`text must be at least ${constraints.minLength} characters long`);\n }\n if (constraints.maxLength) {\n rules.push(`text must be no more than ${constraints.maxLength} characters long`);\n }\n if (constraints.minimum !== undefined) {\n rules.push(`number must be at least ${constraints.minimum}`);\n }\n if (constraints.maximum !== undefined) {\n rules.push(`number must be no more than ${constraints.maximum}`);\n }\n if (constraints.exclusiveMinimum !== undefined) {\n rules.push(`number must be greater than ${constraints.exclusiveMinimum}`);\n }\n if (constraints.exclusiveMaximum !== undefined) {\n rules.push(`number must be less than ${constraints.exclusiveMaximum}`);\n }\n if (constraints.multipleOf) {\n rules.push(`number must be a multiple of ${constraints.multipleOf}`);\n }\n if (constraints.format === 'email') {\n rules.push(`must be a valid email address`);\n }\n if (constraints.format === 'uri' || constraints.format === 'url') {\n rules.push(`must be a valid URL starting with http:// or https://`);\n }\n if (constraints.format === 'uuid') {\n rules.push(`must be a valid UUID in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`);\n }\n if (constraints.format === 'date-time') {\n rules.push(`must be a valid ISO 8601 date-time (e.g., 2023-12-25T10:30:00Z)`);\n }\n if (constraints.pattern) {\n rules.push(`must match the regular expression pattern: ${constraints.pattern}`);\n }\n if (constraints.enum && Array.isArray(constraints.enum)) {\n rules.push(`must be exactly one of these values: ${constraints.enum.join(', ')}`);\n }\n if (constraints.minItems) {\n rules.push(`array must contain at least ${constraints.minItems} items`);\n }\n if (constraints.maxItems) {\n rules.push(`array must contain no more than ${constraints.maxItems} items`);\n }\n if (constraints.uniqueItems === true) {\n rules.push(`array items must all be unique (no duplicates)`);\n }\n if (constraints.minProperties) {\n rules.push(`object must have at least ${constraints.minProperties} properties`);\n }\n if (constraints.maxProperties) {\n rules.push(`object must have no more than ${constraints.maxProperties} properties`);\n }\n if (constraints.additionalProperties === false) {\n rules.push(`object must only contain the specified properties, no additional properties allowed`);\n }\n \n return rules.join('; ');\n }\n} ",
|
|
8
|
-
"import type { JSONSchema7 } from 'json-schema';\n\n// Constraint types for embedding in descriptions\nexport interface StringConstraints {\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n format?: string;\n enum?: string[];\n}\n\nexport interface NumberConstraints {\n minimum?: number;\n maximum?: number;\n exclusiveMinimum?: number;\n exclusiveMaximum?: number;\n multipleOf?: number;\n}\n\nexport interface ArrayConstraints {\n minItems?: number;\n maxItems?: number;\n uniqueItems?: boolean;\n}\n\nexport interface ObjectConstraints {\n minProperties?: number;\n maxProperties?: number;\n additionalProperties?: boolean;\n}\n\nexport type SchemaConstraints = StringConstraints | NumberConstraints | ArrayConstraints | ObjectConstraints;\n\n// Model provider detection\nexport type ModelProvider = 'openai' | 'anthropic' | 'google' | 'openrouter' | 'unknown';\n\nexport interface ModelInfo {\n provider: ModelProvider;\n modelId: string;\n supportsStructuredOutputs?: boolean;\n isReasoningModel?: boolean;\n}\n\n// Abstract base class for tool compatibility\nexport abstract class McpToolCompatibility {\n protected modelInfo: ModelInfo;\n\n constructor(modelInfo: ModelInfo) {\n this.modelInfo = modelInfo;\n }\n\n // Determine if this compatibility layer should be applied\n abstract shouldApply(): boolean;\n\n // Transform a complete tool schema\n public transformToolSchema(toolSchema: JSONSchema7): JSONSchema7 {\n if (!this.shouldApply()) {\n return toolSchema;\n }\n\n return this.processSchema(toolSchema);\n }\n\n // Process any JSON schema recursively\n protected processSchema(schema: JSONSchema7): JSONSchema7 {\n const processed = { ...schema };\n\n // Handle different schema types\n switch (processed.type) {\n case 'string':\n return this.processStringSchema(processed);\n case 'number':\n case 'integer':\n return this.processNumberSchema(processed);\n case 'array':\n return this.processArraySchema(processed);\n case 'object':\n return this.processObjectSchema(processed);\n default:\n return this.processGenericSchema(processed);\n }\n }\n\n // String schema processing\n protected processStringSchema(schema: JSONSchema7): JSONSchema7 {\n const constraints: StringConstraints = {};\n const processed = { ...schema };\n\n // Extract constraints that might not be supported\n if (typeof schema.minLength === 'number') {\n constraints.minLength = schema.minLength;\n }\n if (typeof schema.maxLength === 'number') {\n constraints.maxLength = schema.maxLength;\n }\n if (typeof schema.pattern === 'string') {\n constraints.pattern = schema.pattern;\n }\n if (typeof schema.format === 'string') {\n constraints.format = schema.format;\n }\n if (Array.isArray(schema.enum)) {\n constraints.enum = schema.enum as string[];\n }\n\n // Remove unsupported properties and embed in description\n const unsupportedProps = this.getUnsupportedStringProperties();\n for (const prop of unsupportedProps) {\n if (prop in processed) {\n delete (processed as any)[prop];\n }\n }\n\n // Embed constraints in description if any were found\n if (Object.keys(constraints).length > 0) {\n processed.description = this.mergeDescription(schema.description, constraints);\n }\n\n return processed;\n }\n\n // Number schema processing\n protected processNumberSchema(schema: JSONSchema7): JSONSchema7 {\n const constraints: NumberConstraints = {};\n const processed = { ...schema };\n\n // Extract numerical constraints\n if (typeof schema.minimum === 'number') {\n constraints.minimum = schema.minimum;\n }\n if (typeof schema.maximum === 'number') {\n constraints.maximum = schema.maximum;\n }\n if (typeof schema.exclusiveMinimum === 'number') {\n constraints.exclusiveMinimum = schema.exclusiveMinimum;\n }\n if (typeof schema.exclusiveMaximum === 'number') {\n constraints.exclusiveMaximum = schema.exclusiveMaximum;\n }\n if (typeof schema.multipleOf === 'number') {\n constraints.multipleOf = schema.multipleOf;\n }\n\n // Remove unsupported properties\n const unsupportedProps = this.getUnsupportedNumberProperties();\n for (const prop of unsupportedProps) {\n if (prop in processed) {\n delete (processed as any)[prop];\n }\n }\n\n // Embed constraints in description\n if (Object.keys(constraints).length > 0) {\n processed.description = this.mergeDescription(schema.description, constraints);\n }\n\n return processed;\n }\n\n // Array schema processing\n protected processArraySchema(schema: JSONSchema7): JSONSchema7 {\n const constraints: ArrayConstraints = {};\n const processed = { ...schema };\n\n // Extract array constraints\n if (typeof schema.minItems === 'number') {\n constraints.minItems = schema.minItems;\n }\n if (typeof schema.maxItems === 'number') {\n constraints.maxItems = schema.maxItems;\n }\n if (typeof schema.uniqueItems === 'boolean') {\n constraints.uniqueItems = schema.uniqueItems;\n }\n\n // Process items schema recursively\n if (schema.items && typeof schema.items === 'object' && !Array.isArray(schema.items)) {\n processed.items = this.processSchema(schema.items as JSONSchema7);\n }\n\n // Remove unsupported properties\n const unsupportedProps = this.getUnsupportedArrayProperties();\n for (const prop of unsupportedProps) {\n if (prop in processed) {\n delete (processed as any)[prop];\n }\n }\n\n // Embed constraints in description\n if (Object.keys(constraints).length > 0) {\n processed.description = this.mergeDescription(schema.description, constraints);\n }\n\n return processed;\n }\n\n // Object schema processing\n protected processObjectSchema(schema: JSONSchema7): JSONSchema7 {\n const constraints: ObjectConstraints = {};\n const processed = { ...schema };\n\n // Extract object constraints\n if (typeof schema.minProperties === 'number') {\n constraints.minProperties = schema.minProperties;\n }\n if (typeof schema.maxProperties === 'number') {\n constraints.maxProperties = schema.maxProperties;\n }\n if (typeof schema.additionalProperties === 'boolean') {\n constraints.additionalProperties = schema.additionalProperties;\n }\n\n // Process properties recursively\n if (schema.properties && typeof schema.properties === 'object') {\n processed.properties = {};\n for (const [key, prop] of Object.entries(schema.properties)) {\n if (typeof prop === 'object' && !Array.isArray(prop)) {\n processed.properties[key] = this.processSchema(prop as JSONSchema7);\n } else {\n processed.properties[key] = prop;\n }\n }\n }\n\n // Remove unsupported properties\n const unsupportedProps = this.getUnsupportedObjectProperties();\n for (const prop of unsupportedProps) {\n if (prop in processed) {\n delete (processed as any)[prop];\n }\n }\n\n // Embed constraints in description\n if (Object.keys(constraints).length > 0) {\n processed.description = this.mergeDescription(schema.description, constraints);\n }\n\n return processed;\n }\n\n // Generic schema processing (for union types, etc.)\n protected processGenericSchema(schema: JSONSchema7): JSONSchema7 {\n const processed = { ...schema };\n\n // Handle oneOf, anyOf, allOf recursively\n if (Array.isArray(schema.oneOf)) {\n processed.oneOf = schema.oneOf.map(s => typeof s === 'object' ? this.processSchema(s as JSONSchema7) : s);\n }\n if (Array.isArray(schema.anyOf)) {\n processed.anyOf = schema.anyOf.map(s => typeof s === 'object' ? this.processSchema(s as JSONSchema7) : s);\n }\n if (Array.isArray(schema.allOf)) {\n processed.allOf = schema.allOf.map(s => typeof s === 'object' ? this.processSchema(s as JSONSchema7) : s);\n }\n\n return processed;\n }\n\n // Merge constraints into description\n protected mergeDescription(originalDescription: string | undefined, constraints: SchemaConstraints): string {\n const constraintJson = JSON.stringify(constraints);\n if (originalDescription) {\n return `${originalDescription}\\n${constraintJson}`;\n }\n return constraintJson;\n }\n\n // Abstract methods that subclasses must implement\n protected abstract getUnsupportedStringProperties(): string[];\n protected abstract getUnsupportedNumberProperties(): string[];\n protected abstract getUnsupportedArrayProperties(): string[];\n protected abstract getUnsupportedObjectProperties(): string[];\n}\n\n// Model detection utilities\nexport function detectModelProvider(runtime: any): ModelInfo {\n // Try to extract model info from ElizaOS runtime\n const modelString = runtime?.modelProvider || runtime?.model || '';\n const modelId = String(modelString).toLowerCase();\n\n let provider: ModelProvider = 'unknown';\n let supportsStructuredOutputs = false;\n let isReasoningModel = false;\n\n // Detect provider based on model string\n if (modelId.includes('openai') || modelId.includes('gpt-') || modelId.includes('o1-') || modelId.includes('o3-')) {\n provider = 'openai';\n supportsStructuredOutputs = modelId.includes('gpt-4') || modelId.includes('o1') || modelId.includes('o3');\n isReasoningModel = modelId.includes('o1') || modelId.includes('o3');\n } else if (modelId.includes('anthropic') || modelId.includes('claude')) {\n provider = 'anthropic';\n supportsStructuredOutputs = true;\n } else if (modelId.includes('google') || modelId.includes('gemini')) {\n provider = 'google';\n supportsStructuredOutputs = true;\n } else if (modelId.includes('openrouter')) {\n provider = 'openrouter';\n // OpenRouter depends on the underlying model\n supportsStructuredOutputs = false;\n }\n\n return {\n provider,\n modelId,\n supportsStructuredOutputs,\n isReasoningModel,\n };\n}\n\n// Factory function to get the appropriate compatibility layer\nexport async function createMcpToolCompatibility(runtime: any): Promise<McpToolCompatibility | null> {\n const modelInfo = detectModelProvider(runtime);\n \n // Import and instantiate the appropriate compatibility layer\n try {\n switch (modelInfo.provider) {\n case 'openai':\n // Use dynamic ES module imports\n const { OpenAIMcpCompatibility } = await import('./providers/openai.js');\n return new OpenAIMcpCompatibility(modelInfo);\n case 'anthropic':\n const { AnthropicMcpCompatibility } = await import('./providers/anthropic.js');\n return new AnthropicMcpCompatibility(modelInfo);\n case 'google':\n const { GoogleMcpCompatibility } = await import('./providers/google.js');\n return new GoogleMcpCompatibility(modelInfo);\n default:\n return null; // No compatibility layer needed\n }\n } catch (error) {\n console.warn('Failed to load compatibility provider:', error);\n return null;\n }\n}\n\n// Synchronous version for environments that need it (like service.ts)\nexport function createMcpToolCompatibilitySync(runtime: any): McpToolCompatibility | null {\n const modelInfo = detectModelProvider(runtime);\n \n // Use synchronous requires for CommonJS environments\n try {\n switch (modelInfo.provider) {\n case 'openai':\n // Use eval to avoid bundlers trying to process this\n const OpenAIModule = eval('require')('./providers/openai');\n const { OpenAIMcpCompatibility } = OpenAIModule;\n return new OpenAIMcpCompatibility(modelInfo);\n case 'anthropic':\n const AnthropicModule = eval('require')('./providers/anthropic');\n const { AnthropicMcpCompatibility } = AnthropicModule;\n return new AnthropicMcpCompatibility(modelInfo);\n case 'google':\n const GoogleModule = eval('require')('./providers/google');\n const { GoogleMcpCompatibility } = GoogleModule;\n return new GoogleMcpCompatibility(modelInfo);\n default:\n return null; // No compatibility layer needed\n }\n } catch (error) {\n console.warn('Failed to load compatibility provider:', error);\n return null;\n }\n} ",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
5
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map",
|
|
6
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map",
|
|
7
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map",
|
|
8
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map",
|
|
9
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map",
|
|
10
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map",
|
|
11
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map",
|
|
12
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map",
|
|
13
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map",
|
|
14
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map",
|
|
15
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map",
|
|
16
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map",
|
|
17
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map",
|
|
18
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map",
|
|
19
|
+
"'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n",
|
|
20
|
+
"'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n",
|
|
21
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n]);\nfunction inlineRef(schema, limit = true) {\n if (typeof schema == \"boolean\")\n return true;\n if (limit === true)\n return !hasRef(schema);\n if (!limit)\n return false;\n return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key))\n return true;\n const sch = schema[key];\n if (Array.isArray(sch) && sch.some(hasRef))\n return true;\n if (typeof sch == \"object\" && hasRef(sch))\n return true;\n }\n return false;\n}\nfunction countKeys(schema) {\n let count = 0;\n for (const key in schema) {\n if (key === \"$ref\")\n return Infinity;\n count++;\n if (SIMPLE_INLINED.has(key))\n continue;\n if (typeof schema[key] == \"object\") {\n (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map",
|
|
22
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map",
|
|
23
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map",
|
|
24
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map",
|
|
25
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map",
|
|
26
|
+
"'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n",
|
|
27
|
+
"'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nconst IPV4_REG = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(IPV4_REG) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n",
|
|
28
|
+
"'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n",
|
|
29
|
+
"'use strict'\n\nconst { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require('./lib/utils')\nconst SCHEMES = require('./lib/schemes')\n\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = serialize(parse(uri, options), options)\n } else if (typeof uri === 'object') {\n uri = parse(serialize(uri, options), options)\n }\n return uri\n}\n\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = Object.assign({ scheme: 'null' }, options)\n const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n return serialize(resolved, { ...schemelessOptions, skipEscape: true })\n}\n\nfunction resolveComponents (base, relative, options, skipNormalization) {\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base components\n relative = parse(serialize(relative, options), options) // normalize relative components\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path.charAt(0) === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\nfunction serialize (cmpts, opts) {\n const components = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || components.scheme || '').toLowerCase()]\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options)\n\n if (components.path !== undefined) {\n if (!options.skipEscape) {\n components.path = escape(components.path)\n\n if (components.scheme !== undefined) {\n components.path = components.path.split('%3A').join(':')\n }\n } else {\n components.path = unescape(components.path)\n }\n }\n\n if (options.reference !== 'suffix' && components.scheme) {\n uriTokens.push(components.scheme, ':')\n }\n\n const authority = recomposeAuthority(components)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (components.path && components.path.charAt(0) !== '/') {\n uriTokens.push('/')\n }\n }\n if (components.path !== undefined) {\n let s = components.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (authority === undefined) {\n s = s.replace(/^\\/\\//u, '/%2F') // don't allow the path to start with \"//\"\n }\n\n uriTokens.push(s)\n }\n\n if (components.query !== undefined) {\n uriTokens.push('?', components.query)\n }\n\n if (components.fragment !== undefined) {\n uriTokens.push('#', components.fragment)\n }\n return uriTokens.join('')\n}\n\nconst hexLookUp = Array.from({ length: 127 }, (_v, k) => /[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)))\n\nfunction nonSimpleDomain (value) {\n let code = 0\n for (let i = 0, len = value.length; i < len; ++i) {\n code = value.charCodeAt(i)\n if (code > 126 || hexLookUp[code]) {\n return true\n }\n }\n return false\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n const gotEncoding = uri.indexOf('%') !== -1\n let isIP = false\n if (options.reference === 'suffix') uri = (options.scheme ? options.scheme + ':' : '') + '//' + uri\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = normalizeIPv4(parsed.host)\n if (ipv4result.isIPV4 === false) {\n const ipv6result = normalizeIPv6(ipv4result.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n parsed.host = ipv4result.host\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || '').toLowerCase()]\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (gotEncoding && parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (gotEncoding && parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponents,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n",
|
|
30
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map",
|
|
31
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map",
|
|
32
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map",
|
|
33
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map",
|
|
34
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map",
|
|
35
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map",
|
|
36
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map",
|
|
37
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map",
|
|
38
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map",
|
|
39
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map",
|
|
40
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map",
|
|
41
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map",
|
|
42
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map",
|
|
43
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map",
|
|
44
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map",
|
|
45
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map",
|
|
46
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map",
|
|
47
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map",
|
|
48
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map",
|
|
49
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map",
|
|
50
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map",
|
|
51
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map",
|
|
52
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map",
|
|
53
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map",
|
|
54
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map",
|
|
55
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map",
|
|
56
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map",
|
|
57
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map",
|
|
58
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map",
|
|
59
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map",
|
|
60
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map",
|
|
61
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map",
|
|
62
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map",
|
|
63
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map",
|
|
64
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map",
|
|
65
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map",
|
|
66
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map",
|
|
67
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map",
|
|
68
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map",
|
|
69
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map",
|
|
70
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map",
|
|
71
|
+
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map",
|
|
72
|
+
"// This is a generated file. Do not edit.\nmodule.exports.Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/\nmodule.exports.ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/\nmodule.exports.ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n",
|
|
73
|
+
"const unicode = require('../lib/unicode')\n\nmodule.exports = {\n isSpaceSeparator (c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c)\n },\n\n isIdStartChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c === '$') || (c === '_') ||\n unicode.ID_Start.test(c)\n )\n },\n\n isIdContinueChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n (c === '$') || (c === '_') ||\n (c === '\\u200C') || (c === '\\u200D') ||\n unicode.ID_Continue.test(c)\n )\n },\n\n isDigit (c) {\n return typeof c === 'string' && /[0-9]/.test(c)\n },\n\n isHexDigit (c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n },\n}\n",
|
|
74
|
+
"const util = require('./util')\n\nlet source\nlet parseState\nlet stack\nlet pos\nlet line\nlet column\nlet token\nlet key\nlet root\n\nmodule.exports = function parse (text, reviver) {\n source = String(text)\n parseState = 'start'\n stack = []\n pos = 0\n line = 1\n column = 0\n token = undefined\n key = undefined\n root = undefined\n\n do {\n token = lex()\n\n // This code is unreachable.\n // if (!parseStates[parseState]) {\n // throw invalidParseState()\n // }\n\n parseStates[parseState]()\n } while (token.type !== 'eof')\n\n if (typeof reviver === 'function') {\n return internalize({'': root}, '', reviver)\n }\n\n return root\n}\n\nfunction internalize (holder, name, reviver) {\n const value = holder[name]\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key = String(i)\n const replacement = internalize(value, key, reviver)\n if (replacement === undefined) {\n delete value[key]\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n } else {\n for (const key in value) {\n const replacement = internalize(value, key, reviver)\n if (replacement === undefined) {\n delete value[key]\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n }\n }\n\n return reviver.call(holder, name, value)\n}\n\nlet lexState\nlet buffer\nlet doubleQuote\nlet sign\nlet c\n\nfunction lex () {\n lexState = 'default'\n buffer = ''\n doubleQuote = false\n sign = 1\n\n for (;;) {\n c = peek()\n\n // This code is unreachable.\n // if (!lexStates[lexState]) {\n // throw invalidLexState(lexState)\n // }\n\n const token = lexStates[lexState]()\n if (token) {\n return token\n }\n }\n}\n\nfunction peek () {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos))\n }\n}\n\nfunction read () {\n const c = peek()\n\n if (c === '\\n') {\n line++\n column = 0\n } else if (c) {\n column += c.length\n } else {\n column++\n }\n\n if (c) {\n pos += c.length\n }\n\n return c\n}\n\nconst lexStates = {\n default () {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case '\\u00A0':\n case '\\uFEFF':\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read()\n return\n\n case '/':\n read()\n lexState = 'comment'\n return\n\n case undefined:\n read()\n return newToken('eof')\n }\n\n if (util.isSpaceSeparator(c)) {\n read()\n return\n }\n\n // This code is unreachable.\n // if (!lexStates[parseState]) {\n // throw invalidLexState(parseState)\n // }\n\n return lexStates[parseState]()\n },\n\n comment () {\n switch (c) {\n case '*':\n read()\n lexState = 'multiLineComment'\n return\n\n case '/':\n read()\n lexState = 'singleLineComment'\n return\n }\n\n throw invalidChar(read())\n },\n\n multiLineComment () {\n switch (c) {\n case '*':\n read()\n lexState = 'multiLineCommentAsterisk'\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read()\n },\n\n multiLineCommentAsterisk () {\n switch (c) {\n case '*':\n read()\n return\n\n case '/':\n read()\n lexState = 'default'\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read()\n lexState = 'multiLineComment'\n },\n\n singleLineComment () {\n switch (c) {\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read()\n lexState = 'default'\n return\n\n case undefined:\n read()\n return newToken('eof')\n }\n\n read()\n },\n\n value () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n case 'n':\n read()\n literal('ull')\n return newToken('null', null)\n\n case 't':\n read()\n literal('rue')\n return newToken('boolean', true)\n\n case 'f':\n read()\n literal('alse')\n return newToken('boolean', false)\n\n case '-':\n case '+':\n if (read() === '-') {\n sign = -1\n }\n\n lexState = 'sign'\n return\n\n case '.':\n buffer = read()\n lexState = 'decimalPointLeading'\n return\n\n case '0':\n buffer = read()\n lexState = 'zero'\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read()\n lexState = 'decimalInteger'\n return\n\n case 'I':\n read()\n literal('nfinity')\n return newToken('numeric', Infinity)\n\n case 'N':\n read()\n literal('aN')\n return newToken('numeric', NaN)\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"')\n buffer = ''\n lexState = 'string'\n return\n }\n\n throw invalidChar(read())\n },\n\n identifierNameStartEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read()\n const u = unicodeEscape()\n switch (u) {\n case '$':\n case '_':\n break\n\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u\n lexState = 'identifierName'\n },\n\n identifierName () {\n switch (c) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n buffer += read()\n return\n\n case '\\\\':\n read()\n lexState = 'identifierNameEscape'\n return\n }\n\n if (util.isIdContinueChar(c)) {\n buffer += read()\n return\n }\n\n return newToken('identifier', buffer)\n },\n\n identifierNameEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read()\n const u = unicodeEscape()\n switch (u) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n break\n\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u\n lexState = 'identifierName'\n },\n\n sign () {\n switch (c) {\n case '.':\n buffer = read()\n lexState = 'decimalPointLeading'\n return\n\n case '0':\n buffer = read()\n lexState = 'zero'\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read()\n lexState = 'decimalInteger'\n return\n\n case 'I':\n read()\n literal('nfinity')\n return newToken('numeric', sign * Infinity)\n\n case 'N':\n read()\n literal('aN')\n return newToken('numeric', NaN)\n }\n\n throw invalidChar(read())\n },\n\n zero () {\n switch (c) {\n case '.':\n buffer += read()\n lexState = 'decimalPoint'\n return\n\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n\n case 'x':\n case 'X':\n buffer += read()\n lexState = 'hexadecimal'\n return\n }\n\n return newToken('numeric', sign * 0)\n },\n\n decimalInteger () {\n switch (c) {\n case '.':\n buffer += read()\n lexState = 'decimalPoint'\n return\n\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalPointLeading () {\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalFraction'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalPoint () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalFraction'\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalFraction () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalExponent () {\n switch (c) {\n case '+':\n case '-':\n buffer += read()\n lexState = 'decimalExponentSign'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalExponentInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentSign () {\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalExponentInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentInteger () {\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n hexadecimal () {\n if (util.isHexDigit(c)) {\n buffer += read()\n lexState = 'hexadecimalInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n hexadecimalInteger () {\n if (util.isHexDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n string () {\n switch (c) {\n case '\\\\':\n read()\n buffer += escape()\n return\n\n case '\"':\n if (doubleQuote) {\n read()\n return newToken('string', buffer)\n }\n\n buffer += read()\n return\n\n case \"'\":\n if (!doubleQuote) {\n read()\n return newToken('string', buffer)\n }\n\n buffer += read()\n return\n\n case '\\n':\n case '\\r':\n throw invalidChar(read())\n\n case '\\u2028':\n case '\\u2029':\n separatorChar(c)\n break\n\n case undefined:\n throw invalidChar(read())\n }\n\n buffer += read()\n },\n\n start () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n // This code is unreachable since the default lexState handles eof.\n // case undefined:\n // return newToken('eof')\n }\n\n lexState = 'value'\n },\n\n beforePropertyName () {\n switch (c) {\n case '$':\n case '_':\n buffer = read()\n lexState = 'identifierName'\n return\n\n case '\\\\':\n read()\n lexState = 'identifierNameStartEscape'\n return\n\n case '}':\n return newToken('punctuator', read())\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"')\n lexState = 'string'\n return\n }\n\n if (util.isIdStartChar(c)) {\n buffer += read()\n lexState = 'identifierName'\n return\n }\n\n throw invalidChar(read())\n },\n\n afterPropertyName () {\n if (c === ':') {\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforePropertyValue () {\n lexState = 'value'\n },\n\n afterPropertyValue () {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforeArrayValue () {\n if (c === ']') {\n return newToken('punctuator', read())\n }\n\n lexState = 'value'\n },\n\n afterArrayValue () {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n end () {\n // This code is unreachable since it's handled by the default lexState.\n // if (c === undefined) {\n // read()\n // return newToken('eof')\n // }\n\n throw invalidChar(read())\n },\n}\n\nfunction newToken (type, value) {\n return {\n type,\n value,\n line,\n column,\n }\n}\n\nfunction literal (s) {\n for (const c of s) {\n const p = peek()\n\n if (p !== c) {\n throw invalidChar(read())\n }\n\n read()\n }\n}\n\nfunction escape () {\n const c = peek()\n switch (c) {\n case 'b':\n read()\n return '\\b'\n\n case 'f':\n read()\n return '\\f'\n\n case 'n':\n read()\n return '\\n'\n\n case 'r':\n read()\n return '\\r'\n\n case 't':\n read()\n return '\\t'\n\n case 'v':\n read()\n return '\\v'\n\n case '0':\n read()\n if (util.isDigit(peek())) {\n throw invalidChar(read())\n }\n\n return '\\0'\n\n case 'x':\n read()\n return hexEscape()\n\n case 'u':\n read()\n return unicodeEscape()\n\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n read()\n return ''\n\n case '\\r':\n read()\n if (peek() === '\\n') {\n read()\n }\n\n return ''\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read())\n\n case undefined:\n throw invalidChar(read())\n }\n\n return read()\n}\n\nfunction hexEscape () {\n let buffer = ''\n let c = peek()\n\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n\n c = peek()\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nfunction unicodeEscape () {\n let buffer = ''\n let count = 4\n\n while (count-- > 0) {\n const c = peek()\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n }\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nconst parseStates = {\n start () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push()\n },\n\n beforePropertyName () {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value\n parseState = 'afterPropertyName'\n return\n\n case 'punctuator':\n // This code is unreachable since it's handled by the lexState.\n // if (token.value !== '}') {\n // throw invalidToken()\n // }\n\n pop()\n return\n\n case 'eof':\n throw invalidEOF()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterPropertyName () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator' || token.value !== ':') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n parseState = 'beforePropertyValue'\n },\n\n beforePropertyValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push()\n },\n\n beforeArrayValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n if (token.type === 'punctuator' && token.value === ']') {\n pop()\n return\n }\n\n push()\n },\n\n afterPropertyValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName'\n return\n\n case '}':\n pop()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterArrayValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue'\n return\n\n case ']':\n pop()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n end () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'eof') {\n // throw invalidToken()\n // }\n },\n}\n\nfunction push () {\n let value\n\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {}\n break\n\n case '[':\n value = []\n break\n }\n\n break\n\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value\n break\n\n // This code is unreachable.\n // default:\n // throw invalidToken()\n }\n\n if (root === undefined) {\n root = value\n } else {\n const parent = stack[stack.length - 1]\n if (Array.isArray(parent)) {\n parent.push(value)\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n\n if (value !== null && typeof value === 'object') {\n stack.push(value)\n\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue'\n } else {\n parseState = 'beforePropertyName'\n }\n } else {\n const current = stack[stack.length - 1]\n if (current == null) {\n parseState = 'end'\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue'\n } else {\n parseState = 'afterPropertyValue'\n }\n }\n}\n\nfunction pop () {\n stack.pop()\n\n const current = stack[stack.length - 1]\n if (current == null) {\n parseState = 'end'\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue'\n } else {\n parseState = 'afterPropertyValue'\n }\n}\n\n// This code is unreachable.\n// function invalidParseState () {\n// return new Error(`JSON5: invalid parse state '${parseState}'`)\n// }\n\n// This code is unreachable.\n// function invalidLexState (state) {\n// return new Error(`JSON5: invalid lex state '${state}'`)\n// }\n\nfunction invalidChar (c) {\n if (c === undefined) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n }\n\n return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n}\n\nfunction invalidEOF () {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n}\n\n// This code is unreachable.\n// function invalidToken () {\n// if (token.type === 'eof') {\n// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n// }\n\n// const c = String.fromCodePoint(token.value.codePointAt(0))\n// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n// }\n\nfunction invalidIdentifier () {\n column -= 5\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)\n}\n\nfunction separatorChar (c) {\n console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`)\n}\n\nfunction formatChar (c) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n }\n\n if (replacements[c]) {\n return replacements[c]\n }\n\n if (c < ' ') {\n const hexString = c.charCodeAt(0).toString(16)\n return '\\\\x' + ('00' + hexString).substring(hexString.length)\n }\n\n return c\n}\n\nfunction syntaxError (message) {\n const err = new SyntaxError(message)\n err.lineNumber = line\n err.columnNumber = column\n return err\n}\n",
|
|
75
|
+
"const util = require('./util')\n\nmodule.exports = function stringify (value, replacer, space) {\n const stack = []\n let indent = ''\n let propertyList\n let replacerFunc\n let gap = ''\n let quote\n\n if (\n replacer != null &&\n typeof replacer === 'object' &&\n !Array.isArray(replacer)\n ) {\n space = replacer.space\n quote = replacer.quote\n replacer = replacer.replacer\n }\n\n if (typeof replacer === 'function') {\n replacerFunc = replacer\n } else if (Array.isArray(replacer)) {\n propertyList = []\n for (const v of replacer) {\n let item\n\n if (typeof v === 'string') {\n item = v\n } else if (\n typeof v === 'number' ||\n v instanceof String ||\n v instanceof Number\n ) {\n item = String(v)\n }\n\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item)\n }\n }\n }\n\n if (space instanceof Number) {\n space = Number(space)\n } else if (space instanceof String) {\n space = String(space)\n }\n\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space))\n gap = ' '.substr(0, space)\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10)\n }\n\n return serializeProperty('', {'': value})\n\n function serializeProperty (key, holder) {\n let value = holder[key]\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key)\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n }\n\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value)\n }\n\n if (value instanceof Number) {\n value = Number(value)\n } else if (value instanceof String) {\n value = String(value)\n } else if (value instanceof Boolean) {\n value = value.valueOf()\n }\n\n switch (value) {\n case null: return 'null'\n case true: return 'true'\n case false: return 'false'\n }\n\n if (typeof value === 'string') {\n return quoteString(value, false)\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n if (typeof value === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n }\n\n return undefined\n }\n\n function quoteString (value) {\n const quotes = {\n \"'\": 0.1,\n '\"': 0.2,\n }\n\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n }\n\n let product = ''\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i]\n switch (c) {\n case \"'\":\n case '\"':\n quotes[c]++\n product += c\n continue\n\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00'\n continue\n }\n }\n\n if (replacements[c]) {\n product += replacements[c]\n continue\n }\n\n if (c < ' ') {\n let hexString = c.charCodeAt(0).toString(16)\n product += '\\\\x' + ('00' + hexString).substring(hexString.length)\n continue\n }\n\n product += c\n }\n\n const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b)\n\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar])\n\n return quoteChar + product + quoteChar\n }\n\n function serializeObject (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value)\n\n let stepback = indent\n indent = indent + gap\n\n let keys = propertyList || Object.keys(value)\n let partial = []\n for (const key of keys) {\n const propertyString = serializeProperty(key, value)\n if (propertyString !== undefined) {\n let member = serializeKey(key) + ':'\n if (gap !== '') {\n member += ' '\n }\n member += propertyString\n partial.push(member)\n }\n }\n\n let final\n if (partial.length === 0) {\n final = '{}'\n } else {\n let properties\n if (gap === '') {\n properties = partial.join(',')\n final = '{' + properties + '}'\n } else {\n let separator = ',\\n' + indent\n properties = partial.join(separator)\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}'\n }\n }\n\n stack.pop()\n indent = stepback\n return final\n }\n\n function serializeKey (key) {\n if (key.length === 0) {\n return quoteString(key, true)\n }\n\n const firstChar = String.fromCodePoint(key.codePointAt(0))\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true)\n }\n\n for (let i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true)\n }\n }\n\n return key\n }\n\n function serializeArray (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value)\n\n let stepback = indent\n indent = indent + gap\n\n let partial = []\n for (let i = 0; i < value.length; i++) {\n const propertyString = serializeProperty(String(i), value)\n partial.push((propertyString !== undefined) ? propertyString : 'null')\n }\n\n let final\n if (partial.length === 0) {\n final = '[]'\n } else {\n if (gap === '') {\n let properties = partial.join(',')\n final = '[' + properties + ']'\n } else {\n let separator = ',\\n' + indent\n let properties = partial.join(separator)\n final = '[\\n' + indent + properties + ',\\n' + stepback + ']'\n }\n }\n\n stack.pop()\n indent = stepback\n return final\n }\n}\n",
|
|
76
|
+
"const parse = require('./parse')\nconst stringify = require('./stringify')\n\nconst JSON5 = {\n parse,\n stringify,\n}\n\nmodule.exports = JSON5\n",
|
|
77
|
+
"import { type IAgentRuntime, type Plugin, logger } from \"@elizaos/core\";\nimport { readResourceAction } from \"./actions/readResourceAction\";\nimport { provider } from \"./provider\";\nimport { McpService } from \"./service\";\n\n// Re-export types\nexport * from \"./types\";\n\n// Re-export service\nexport { McpService } from \"./service\";\n\n// Re-export dynamic action utilities\nexport {\n createMcpToolAction,\n createMcpToolActions,\n isMcpToolAction,\n getMcpToolActionsForServer,\n type McpToolAction,\n} from \"./actions/dynamic-tool-actions\";\n\n// Re-export tool compatibility\nexport {\n createMcpToolCompatibilitySync,\n createMcpToolCompatibility,\n detectModelProvider,\n McpToolCompatibility,\n type ModelInfo,\n type ModelProvider,\n} from \"./tool-compatibility\";\n\n// Re-export schema cache\nexport { McpSchemaCache, getSchemaCache } from \"./cache\";\n\nconst mcpPlugin: Plugin = {\n name: \"mcp\",\n description: \"Plugin for connecting to MCP (Model Context Protocol) servers\",\n\n init: async (_config: Record<string, string>, _runtime: IAgentRuntime) => {\n logger.info(\"Initializing MCP plugin...\");\n },\n\n services: [McpService],\n actions: [readResourceAction],\n providers: [provider],\n};\n\nexport default mcpPlugin;\n",
|
|
78
|
+
"import {\n type Action,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n composePromptFromState,\n logger,\n type ActionResult,\n} from '@elizaos/core';\nimport type { McpService } from '../service';\nimport { resourceSelectionTemplate } from '../templates/resourceSelectionTemplate';\nimport { MCP_SERVICE_NAME, type McpServer, type McpServerInfo } from '../types';\nimport { handleMcpError } from '../utils/error';\nimport {\n handleResourceAnalysis,\n processResourceResult,\n sendInitialResponse,\n} from '../utils/processing';\nimport {\n createResourceSelectionFeedbackPrompt,\n validateResourceSelection,\n} from '../utils/validation';\nimport type { ResourceSelection } from '../utils/validation';\nimport { withModelRetry } from '../utils/wrapper';\n\nfunction createResourceSelectionPrompt(composedState: State, userMessage: string): string {\n const mcpData = (composedState.values.mcp || {}) as Record<string, McpServerInfo>;\n const serverNames = Object.keys(mcpData);\n\n let resourcesDescription = '';\n for (const serverName of serverNames) {\n const server = mcpData[serverName];\n if (server.status !== 'connected') continue;\n\n const resourceUris = Object.keys(server.resources || {});\n for (const uri of resourceUris) {\n const resource = server.resources[uri];\n resourcesDescription += `Resource: ${uri} (Server: ${serverName})\\n`;\n resourcesDescription += `Name: ${resource.name || 'No name available'}\\n`;\n resourcesDescription += `Description: ${\n resource.description || 'No description available'\n }\\n`;\n resourcesDescription += `MIME Type: ${resource.mimeType || 'Not specified'}\\n\\n`;\n }\n }\n\n const enhancedState: State = {\n ...composedState,\n values: {\n ...composedState.values,\n resourcesDescription,\n userMessage,\n },\n };\n\n return composePromptFromState({\n state: enhancedState,\n template: resourceSelectionTemplate,\n });\n}\n\nexport const readResourceAction: Action = {\n name: 'READ_MCP_RESOURCE',\n similes: [\n 'READ_RESOURCE',\n 'READ_MCP_RESOURCE',\n 'GET_RESOURCE',\n 'GET_MCP_RESOURCE',\n 'FETCH_RESOURCE',\n 'FETCH_MCP_RESOURCE',\n 'ACCESS_RESOURCE',\n 'ACCESS_MCP_RESOURCE',\n ],\n description: 'Reads a resource from an MCP server',\n\n validate: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) return false;\n\n const servers = mcpService.getServers();\n return (\n servers.length > 0 &&\n servers.some(\n (server: McpServer) =>\n server.status === 'connected' && server.resources && server.resources.length > 0\n )\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: { [key: string]: unknown },\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const composedState = await runtime.composeState(message, ['RECENT_MESSAGES', 'MCP']);\n\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n throw new Error('MCP service not available');\n }\n\n const mcpProvider = mcpService.getProviderData();\n\n try {\n await sendInitialResponse(callback);\n\n const resourceSelectionPrompt = createResourceSelectionPrompt(\n composedState,\n message.content.text || ''\n );\n\n const resourceSelection = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: resourceSelectionPrompt,\n });\n\n const parsedSelection = await withModelRetry<ResourceSelection>({\n runtime,\n state: composedState,\n message,\n callback,\n input: resourceSelection,\n validationFn: (data) => validateResourceSelection(data),\n createFeedbackPromptFn: (originalResponse, errorMessage, state, userMessage) =>\n createResourceSelectionFeedbackPrompt(\n originalResponse as string,\n errorMessage,\n state,\n userMessage\n ),\n failureMsg: `I'm having trouble finding the resource you're looking for. Could you provide more details about what you need?`,\n retryCount: 0,\n });\n\n if (!parsedSelection || parsedSelection.noResourceAvailable) {\n const responseText =\n \"I don't have a specific resource that contains the information you're looking for. Let me try to assist you directly instead.\";\n const thoughtText =\n 'No appropriate MCP resource available for this request. Falling back to direct assistance.';\n\n if (callback && parsedSelection?.noResourceAvailable) {\n await callback({\n text: responseText,\n thought: thoughtText,\n actions: ['REPLY'],\n });\n }\n return {\n text: responseText,\n values: {\n success: true,\n noResourceAvailable: true,\n fallbackToDirectAssistance: true,\n },\n data: {\n actionName: 'READ_MCP_RESOURCE',\n noResourceAvailable: true,\n reason: parsedSelection?.reasoning || 'No appropriate resource available',\n },\n success: true,\n };\n }\n\n const { serverName, uri, reasoning } = parsedSelection;\n\n logger.debug(`Selected resource \"${uri}\" on server \"${serverName}\" because: ${reasoning}`);\n\n const result = await mcpService.readResource(serverName, uri);\n logger.debug(`Read resource ${uri} from server ${serverName}`);\n\n const { resourceContent, resourceMeta } = processResourceResult(result, uri);\n\n await handleResourceAnalysis(\n runtime,\n message,\n uri,\n serverName,\n resourceContent,\n resourceMeta,\n callback\n );\n\n return {\n text: `Successfully read resource: ${uri}`,\n values: {\n success: true,\n resourceRead: true,\n serverName,\n uri,\n },\n data: {\n actionName: 'READ_MCP_RESOURCE',\n serverName,\n uri,\n reasoning,\n resourceMeta,\n contentLength: resourceContent?.length || 0,\n },\n success: true,\n };\n } catch (error) {\n return await handleMcpError(\n composedState,\n mcpProvider,\n error,\n runtime,\n message,\n 'resource',\n callback\n );\n }\n },\n\n examples: [\n [\n {\n name: '{{user}}',\n content: {\n text: 'Can you get the documentation about installing ElizaOS?',\n },\n },\n {\n name: '{{assistant}}',\n content: {\n text: `I'll retrieve that information for you. Let me access the resource...`,\n actions: ['READ_MCP_RESOURCE'],\n },\n },\n {\n name: '{{assistant}}',\n content: {\n text: `ElizaOS installation is straightforward. You'll need Node.js 23+ and Git installed. For Windows users, WSL 2 is required. The quickest way to get started is by cloning the ElizaOS starter repository with \\`git clone https://github.com/elizaos/eliza-starter.git\\`, then run \\`cd eliza-starter && cp .env.example .env && bun i && bun run build && bun start\\`. This will set up a development environment with the core features enabled. After starting, you can access the web interface at http://localhost:3000 to interact with your agent.`,\n actions: ['READ_MCP_RESOURCE'],\n },\n },\n ],\n ],\n};\n",
|
|
79
|
+
"export const resourceSelectionTemplate = `\n{{{mcpProvider.text}}}\n\n{{{recentMessages}}}\n\n# Prompt\n\nYou are an intelligent assistant helping select the right resource to address a user's request.\n\nCRITICAL INSTRUCTIONS:\n1. You MUST specify both a valid serverName AND uri from the list above\n2. The serverName value should match EXACTLY the server name shown in parentheses (Server: X)\n CORRECT: \"serverName\": \"github\" (if the server is called \"github\") \n WRONG: \"serverName\": \"GitHub\" or \"Github\" or any other variation\n3. The uri value should match EXACTLY the resource uri listed\n CORRECT: \"uri\": \"weather://San Francisco/current\" (if that's the exact uri)\n WRONG: \"uri\": \"weather://sanfrancisco/current\" or any variation\n4. Identify the user's information need from the conversation context\n5. Select the most appropriate resource based on its description and the request\n6. If no resource seems appropriate, output {\"noResourceAvailable\": true}\n\n!!! YOUR RESPONSE MUST BE A VALID JSON OBJECT ONLY !!! \n\nSTRICT FORMAT REQUIREMENTS:\n- NO code block formatting (NO backticks or \\`\\`\\`)\n- NO comments (NO // or /* */)\n- NO placeholders like \"replace with...\", \"example\", \"your...\", \"actual\", etc.\n- Every parameter value must be a concrete, usable value (not instructions to replace)\n- Use proper JSON syntax with double quotes for strings\n- NO explanatory text before or after the JSON object\n\nEXAMPLE RESPONSE:\n{\n \"serverName\": \"weather-server\",\n \"uri\": \"weather://San Francisco/current\",\n \"reasoning\": \"Based on the conversation, the user is asking about current weather in San Francisco. This resource provides up-to-date weather information for that city.\"\n}\n\nREMEMBER: Your response will be parsed directly as JSON. If it fails to parse, the operation will fail completely!\n`;\n",
|
|
80
|
+
"import type { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport type { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport type { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport type { Resource, ResourceTemplate, Tool } from \"@modelcontextprotocol/sdk/types.js\";\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nexport const MCP_SERVICE_NAME = \"mcp\";\nexport const DEFAULT_MCP_TIMEOUT_SECONDS = 60000;\nexport const DEFAULT_MAX_RETRIES = 2;\nexport const MAX_RECONNECT_ATTEMPTS = 5;\nexport const BACKOFF_MULTIPLIER = 2;\nexport const INITIAL_RETRY_DELAY = 2000;\n\nexport const DEFAULT_PING_CONFIG: PingConfig = {\n enabled: true,\n intervalMs: 10000,\n timeoutMs: 5000,\n failuresBeforeDisconnect: 3,\n};\n\n// ─── Server Configuration ────────────────────────────────────────────────────\n\nexport interface StdioMcpServerConfig {\n type: \"stdio\";\n command?: string;\n args?: string[];\n env?: Record<string, string>;\n cwd?: string;\n timeoutInMillis?: number;\n}\n\nexport interface HttpMcpServerConfig {\n type: \"http\" | \"streamable-http\" | \"sse\";\n url: string;\n timeout?: number;\n headers?: Record<string, string>;\n}\n\nexport type McpServerConfig = StdioMcpServerConfig | HttpMcpServerConfig;\n\nexport interface McpSettings {\n servers: Record<string, McpServerConfig>;\n maxRetries?: number;\n}\n\n// ─── Connection State ────────────────────────────────────────────────────────\n\nexport interface PingConfig {\n enabled: boolean;\n intervalMs: number;\n timeoutMs: number;\n failuresBeforeDisconnect: number;\n}\n\nexport interface ConnectionState {\n status: \"connecting\" | \"connected\" | \"disconnected\" | \"failed\";\n pingInterval?: NodeJS.Timer;\n reconnectTimeout?: NodeJS.Timer;\n reconnectAttempts: number;\n lastConnected?: Date;\n lastError?: Error;\n consecutivePingFailures: number;\n}\n\nexport type McpServerStatus = \"connecting\" | \"connected\" | \"disconnected\";\n\nexport interface McpServer {\n name: string;\n status: McpServerStatus;\n config: string;\n error?: string;\n disabled?: boolean;\n tools?: Tool[];\n resources?: Resource[];\n resourceTemplates?: ResourceTemplate[];\n}\n\nexport interface McpConnection {\n server: McpServer;\n client: Client;\n transport: StdioClientTransport | SSEClientTransport;\n}\n\n// ─── Provider Data ───────────────────────────────────────────────────────────\n\nexport interface McpToolInfo {\n description: string;\n inputSchema?: Record<string, unknown>;\n}\n\nexport interface McpResourceInfo {\n name: string;\n description: string;\n mimeType?: string;\n}\n\nexport interface McpServerInfo {\n status: string;\n tools: Record<string, McpToolInfo>;\n resources: Record<string, McpResourceInfo>;\n}\n\nexport interface McpProviderData {\n [serverName: string]: McpServerInfo;\n}\n\nexport interface McpProvider {\n values: { mcp: McpProviderData; mcpText?: string };\n data: { mcp: McpProviderData };\n text: string;\n}\n\n// ─── Schema Cache ────────────────────────────────────────────────────────────\n\nexport interface McpSchemaCacheConfig {\n enabled: boolean;\n redisUrl?: string;\n redisToken?: string;\n ttlSeconds: number;\n}\n\nexport interface CachedToolSchema {\n name: string;\n description?: string;\n inputSchema?: Tool[\"inputSchema\"];\n}\n\nexport interface CachedServerSchema {\n serverName: string;\n tools: CachedToolSchema[];\n cachedAt: number;\n configHash: string;\n}\n\n// ─── Validation ──────────────────────────────────────────────────────────────\n\nexport type ValidationResult<T> = { success: true; data: T } | { success: false; error: string };\n\nexport const ResourceSelectionSchema = {\n type: \"object\",\n required: [\"serverName\", \"uri\"],\n properties: {\n serverName: { type: \"string\", minLength: 1 },\n uri: { type: \"string\", minLength: 1 },\n reasoning: { type: \"string\" },\n noResourceAvailable: { type: \"boolean\" },\n },\n};\n",
|
|
81
|
+
"import {\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n composePromptFromState,\n logger,\n type ActionResult,\n type State,\n} from '@elizaos/core';\nimport { errorAnalysisPrompt } from '../templates/errorAnalysisPrompt';\nimport type { McpProvider } from '../types';\n\nexport async function handleMcpError(\n state: State,\n mcpProvider: McpProvider,\n error: unknown,\n runtime: IAgentRuntime,\n message: Memory,\n type: 'tool' | 'resource',\n callback?: HandlerCallback\n): Promise<ActionResult> {\n const errorMessage = error instanceof Error ? error.message : String(error);\n logger.error({ error, mcpType: type }, `MCP ${type} error: ${errorMessage}`);\n\n const fallbackText = `I wasn't able to complete that request. There's an issue with the ${type}. Can I help with something else?`;\n let responseText = fallbackText;\n\n if (callback) {\n try {\n const prompt = composePromptFromState({\n state: {\n ...state,\n values: { ...state.values, mcpProvider, userMessage: message.content.text || '', error: errorMessage },\n },\n template: errorAnalysisPrompt,\n });\n responseText = await runtime.useModel(ModelType.TEXT_SMALL, { prompt });\n } catch {\n // Use fallback\n }\n\n await callback({ thought: `MCP ${type} error: ${errorMessage}`, text: responseText, actions: ['REPLY'] });\n }\n\n return {\n text: `Failed to execute MCP ${type}`,\n values: { success: false, error: errorMessage, errorType: type },\n data: { actionName: type === 'tool' ? 'CALL_MCP_TOOL' : 'READ_MCP_RESOURCE', error: errorMessage },\n success: false,\n error: error instanceof Error ? error : new Error(errorMessage),\n };\n}\n",
|
|
13
82
|
"export const errorAnalysisPrompt = `\n{{{mcpProvider.text}}}\n\n{{{recentMessages}}}\n\n# Prompt\n\nYou're an assistant helping a user, but there was an error accessing the resource you tried to use.\n\nUser request: \"{{{userMessage}}}\"\nError message: {{{error}}}\n\nCreate a helpful response that:\n1. Acknowledges the issue in user-friendly terms\n2. Offers alternative approaches to help if possible\n3. Doesn't expose technical error details unless they're truly helpful\n4. Maintains a helpful, conversational tone\n\nYour response:\n`;\n",
|
|
14
|
-
"import type {
|
|
15
|
-
"import {\n type Content,\n ContentType,\n type HandlerCallback,\n type IAgentRuntime,\n type Media,\n type Memory,\n ModelType,\n createUniqueUuid,\n logger,\n} from '@elizaos/core';\nimport { type State, composePromptFromState } from '@elizaos/core';\nimport { resourceAnalysisTemplate } from '../templates/resourceAnalysisTemplate';\nimport { toolReasoningTemplate } from '../templates/toolReasoningTemplate';\nimport { createMcpMemory } from './mcp';\n\nfunction getMimeTypeToContentType(mimeType?: string): ContentType | undefined {\n if (!mimeType) return undefined;\n\n if (mimeType.startsWith('image/')) return ContentType.IMAGE;\n if (mimeType.startsWith('video/')) return ContentType.VIDEO;\n if (mimeType.startsWith('audio/')) return ContentType.AUDIO;\n if (mimeType.includes('pdf') || mimeType.includes('document')) return ContentType.DOCUMENT;\n\n return undefined;\n}\n\nexport function processResourceResult(\n result: {\n contents: Array<{\n uri: string;\n mimeType?: string;\n text?: string;\n blob?: string;\n }>;\n },\n uri: string\n): { resourceContent: string; resourceMeta: string } {\n let resourceContent = '';\n let resourceMeta = '';\n\n for (const content of result.contents) {\n if (content.text) {\n resourceContent += content.text;\n } else if (content.blob) {\n resourceContent += `[Binary data - ${content.mimeType || 'unknown type'}]`;\n }\n\n resourceMeta += `Resource: ${content.uri || uri}\\n`;\n if (content.mimeType) {\n resourceMeta += `Type: ${content.mimeType}\\n`;\n }\n }\n\n return { resourceContent, resourceMeta };\n}\n\nexport function processToolResult(\n result: {\n content: Array<{\n type: string;\n text?: string;\n mimeType?: string;\n data?: string;\n resource?: {\n uri: string;\n text?: string;\n blob?: string;\n };\n }>;\n isError?: boolean;\n },\n serverName: string,\n toolName: string,\n runtime: IAgentRuntime,\n messageEntityId: string\n): { toolOutput: string; hasAttachments: boolean; attachments: Media[] } {\n let toolOutput = '';\n let hasAttachments = false;\n const attachments: Media[] = [];\n\n for (const content of result.content) {\n if (content.type === 'text') {\n toolOutput += content.text;\n } else if (content.type === 'image') {\n hasAttachments = true;\n attachments.push({\n contentType: getMimeTypeToContentType(content.mimeType),\n url: `data:${content.mimeType};base64,${content.data}`,\n id: createUniqueUuid(runtime, messageEntityId),\n title: 'Generated image',\n source: `${serverName}/${toolName}`,\n description: 'Tool-generated image',\n text: 'Generated image',\n });\n } else if (content.type === 'resource') {\n const resource = content.resource;\n if (resource && 'text' in resource) {\n toolOutput += `\\n\\nResource (${resource.uri}):\\n${resource.text}`;\n } else if (resource && 'blob' in resource) {\n toolOutput += `\\n\\nResource (${resource.uri}): [Binary data]`;\n }\n }\n }\n\n return { toolOutput, hasAttachments, attachments };\n}\n\nexport async function handleResourceAnalysis(\n runtime: IAgentRuntime,\n message: Memory,\n uri: string,\n serverName: string,\n resourceContent: string,\n resourceMeta: string,\n callback?: HandlerCallback\n): Promise<void> {\n await createMcpMemory(runtime, message, 'resource', serverName, resourceContent, {\n uri,\n isResourceAccess: true,\n });\n\n const analysisPrompt = createAnalysisPrompt(\n uri,\n message.content.text || '',\n resourceContent,\n resourceMeta\n );\n\n const analyzedResponse = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: analysisPrompt,\n });\n\n if (callback) {\n await callback({\n text: analyzedResponse,\n thought: `I analyzed the content from the ${uri} resource on ${serverName} and crafted a thoughtful response that addresses the user's request while maintaining my conversational style.`,\n actions: ['READ_MCP_RESOURCE'],\n });\n }\n}\n\nexport async function handleToolResponse(\n runtime: IAgentRuntime,\n message: Memory,\n serverName: string,\n toolName: string,\n toolArgs: Record<string, unknown>,\n toolOutput: string,\n hasAttachments: boolean,\n attachments: Media[],\n state: State,\n mcpProvider: {\n values: { mcp: unknown };\n data: { mcp: unknown };\n text: string;\n },\n callback?: HandlerCallback\n): Promise<Memory> {\n await createMcpMemory(runtime, message, 'tool', serverName, toolOutput, {\n toolName,\n arguments: toolArgs,\n isToolCall: true,\n });\n\n const reasoningPrompt = createReasoningPrompt(\n state,\n mcpProvider,\n toolName,\n serverName,\n message.content.text || '',\n toolOutput,\n hasAttachments\n );\n\n logger.info({ reasoningPrompt }, 'reasoning prompt');\n\n const reasonedResponse = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: reasoningPrompt,\n });\n\n const agentId = message.agentId || runtime.agentId;\n const replyMemory: Memory = {\n entityId: agentId,\n roomId: message.roomId,\n worldId: message.worldId,\n content: {\n text: reasonedResponse,\n thought: `I analyzed the output from the ${toolName} tool on ${serverName} and crafted a thoughtful response that addresses the user's request while maintaining my conversational style.`,\n actions: ['CALL_MCP_TOOL'],\n attachments: hasAttachments && attachments.length > 0 ? attachments : undefined,\n },\n };\n\n await runtime.createMemory(replyMemory, 'messages');\n\n if (callback) {\n await callback({\n text: reasonedResponse,\n thought: `I analyzed the output from the ${toolName} tool on ${serverName} and crafted a thoughtful response that addresses the user's request while maintaining my conversational style.`,\n actions: ['CALL_MCP_TOOL'],\n attachments: hasAttachments && attachments.length > 0 ? attachments : undefined,\n });\n }\n\n return replyMemory;\n}\n\nexport async function sendInitialResponse(callback?: HandlerCallback): Promise<void> {\n if (callback) {\n const responseContent: Content = {\n thought:\n 'The user is asking for information that can be found in an MCP resource. I will retrieve and analyze the appropriate resource.',\n text: \"I'll retrieve that information for you. Let me access the resource...\",\n actions: ['READ_MCP_RESOURCE'],\n };\n await callback(responseContent);\n }\n}\n\nfunction createAnalysisPrompt(\n uri: string,\n userMessage: string,\n resourceContent: string,\n resourceMeta: string\n): string {\n const enhancedState: State = {\n data: {},\n text: '',\n values: {\n uri,\n userMessage,\n resourceContent,\n resourceMeta,\n },\n };\n\n return composePromptFromState({\n state: enhancedState,\n template: resourceAnalysisTemplate,\n });\n}\n\nfunction createReasoningPrompt(\n state: State,\n mcpProvider: {\n values: { mcp: unknown };\n data: { mcp: unknown };\n text: string;\n },\n toolName: string,\n serverName: string,\n userMessage: string,\n toolOutput: string,\n hasAttachments: boolean\n): string {\n const enhancedState: State = {\n ...state,\n values: {\n ...state.values,\n mcpProvider,\n toolName,\n serverName,\n userMessage,\n toolOutput,\n hasAttachments,\n },\n };\n\n return composePromptFromState({\n state: enhancedState,\n template: toolReasoningTemplate,\n });\n}\n",
|
|
83
|
+
"import {\n type Content,\n ContentType,\n type HandlerCallback,\n type IAgentRuntime,\n type Media,\n type Memory,\n ModelType,\n createUniqueUuid,\n} from \"@elizaos/core\";\nimport { type State, composePromptFromState } from \"@elizaos/core\";\nimport { resourceAnalysisTemplate } from \"../templates/resourceAnalysisTemplate\";\nimport { createMcpMemory } from \"./mcp\";\n\nfunction getMimeTypeToContentType(mimeType?: string): ContentType | undefined {\n if (!mimeType) return undefined;\n if (mimeType.startsWith(\"image/\")) return ContentType.IMAGE;\n if (mimeType.startsWith(\"video/\")) return ContentType.VIDEO;\n if (mimeType.startsWith(\"audio/\")) return ContentType.AUDIO;\n if (mimeType.includes(\"pdf\") || mimeType.includes(\"document\")) return ContentType.DOCUMENT;\n return undefined;\n}\n\n/** Process resource result from MCP */\nexport function processResourceResult(\n result: { contents: Array<{ uri: string; mimeType?: string; text?: string; blob?: string }> },\n uri: string\n): { resourceContent: string; resourceMeta: string } {\n let resourceContent = \"\";\n let resourceMeta = \"\";\n\n for (const content of result.contents) {\n resourceContent += content.text || (content.blob ? `[Binary: ${content.mimeType || \"unknown\"}]` : \"\");\n resourceMeta += `Resource: ${content.uri || uri}\\n`;\n if (content.mimeType) resourceMeta += `Type: ${content.mimeType}\\n`;\n }\n\n return { resourceContent, resourceMeta };\n}\n\n/** Process tool result from MCP - used by dynamic-tool-actions */\nexport function processToolResult(\n result: {\n content: Array<{\n type: string;\n text?: string;\n mimeType?: string;\n data?: string;\n resource?: { uri: string; text?: string; blob?: string };\n }>;\n isError?: boolean;\n },\n serverName: string,\n toolName: string,\n runtime: IAgentRuntime,\n messageEntityId: string\n): { toolOutput: string; hasAttachments: boolean; attachments: Media[] } {\n let toolOutput = \"\";\n let hasAttachments = false;\n const attachments: Media[] = [];\n let attachmentIndex = 0;\n\n for (const content of result.content) {\n if (content.type === \"text\") {\n toolOutput += content.text;\n } else if (content.type === \"image\") {\n hasAttachments = true;\n attachments.push({\n contentType: getMimeTypeToContentType(content.mimeType),\n url: `data:${content.mimeType};base64,${content.data}`,\n id: createUniqueUuid(runtime, `${messageEntityId}-attachment-${attachmentIndex++}`),\n title: \"Generated image\",\n source: `${serverName}/${toolName}`,\n description: \"Tool-generated image\",\n text: \"Generated image\",\n });\n } else if (content.type === \"resource\" && content.resource) {\n const r = content.resource;\n toolOutput += r.text ? `\\n\\nResource (${r.uri}):\\n${r.text}` : `\\n\\nResource (${r.uri}): [Binary]`;\n }\n }\n\n return { toolOutput, hasAttachments, attachments };\n}\n\n/** Handle resource analysis for readResourceAction */\nexport async function handleResourceAnalysis(\n runtime: IAgentRuntime,\n message: Memory,\n uri: string,\n serverName: string,\n resourceContent: string,\n resourceMeta: string,\n callback?: HandlerCallback\n): Promise<void> {\n await createMcpMemory(runtime, message, \"resource\", serverName, resourceContent, {\n uri,\n isResourceAccess: true,\n });\n\n const prompt = composePromptFromState({\n state: {\n data: {},\n text: \"\",\n values: { uri, userMessage: message.content.text || \"\", resourceContent, resourceMeta },\n },\n template: resourceAnalysisTemplate,\n });\n\n const response = await runtime.useModel(ModelType.TEXT_SMALL, { prompt });\n\n if (callback) {\n await callback({\n text: response,\n thought: `Analyzed resource ${uri} from ${serverName}`,\n actions: [\"READ_MCP_RESOURCE\"],\n });\n }\n}\n\n/** Send initial response for readResourceAction */\nexport async function sendInitialResponse(callback?: HandlerCallback): Promise<void> {\n if (callback) {\n await callback({\n thought: \"Retrieving MCP resource...\",\n text: \"I'll retrieve that information for you. Let me access the resource...\",\n actions: [\"READ_MCP_RESOURCE\"],\n });\n }\n}\n",
|
|
16
84
|
"export const resourceAnalysisTemplate = `\n{{{mcpProvider.text}}}\n\n{{{recentMessages}}}\n\n# Prompt\n\nYou are a helpful assistant responding to a user's request. You've just accessed the resource \"{{{uri}}}\" to help answer this request.\n\nOriginal user request: \"{{{userMessage}}}\"\n\nResource metadata: \n{{{resourceMeta}}\n\nResource content: \n{{{resourceContent}}\n\nInstructions:\n1. Analyze how well the resource's content addresses the user's specific question or need\n2. Identify the most relevant information from the resource\n3. Create a natural, conversational response that incorporates this information\n4. If the resource content is insufficient, acknowledge its limitations and explain what you can determine\n5. Do not start with phrases like \"According to the resource\" or \"Here's what I found\" - instead, integrate the information naturally\n6. Maintain your helpful, intelligent assistant personality while presenting the information\n\nYour response (written as if directly to the user):\n`;\n",
|
|
17
|
-
"export const toolReasoningTemplate = `\n{{{mcpProvider.text}}}\n\n{{{recentMessages}}}\n\n# Prompt\n\nYou are a helpful assistant responding to a user's request. You've just used the \"{{{toolName}}}\" tool from the \"{{{serverName}}}\" server to help answer this request.\n\nOriginal user request: \"{{{userMessage}}}\"\n\nTool response:\n{{{toolOutput}}}\n\n{{#if hasAttachments}}\nThe tool also returned images or other media that will be shared with the user.\n{{/if}}\n\nInstructions:\n1. Analyze how well the tool's response addresses the user's specific question or need\n2. Identify the most relevant information from the tool's output\n3. Create a natural, conversational response that incorporates this information\n4. If the tool's response is insufficient, acknowledge its limitations and explain what you can determine\n5. Do not start with phrases like \"I used the X tool\" or \"Here's what I found\" - instead, integrate the information naturally\n6. Maintain your helpful, intelligent assistant personality while presenting the information\n\nYour response (written as if directly to the user):\n`;\n",
|
|
18
85
|
"import type { IAgentRuntime, Memory } from \"@elizaos/core\";\nimport type { McpProvider, McpProviderData, McpResourceInfo, McpServer, McpToolInfo } from \"../types\";\n\nconst NO_DESC = \"No description\";\n\nexport async function createMcpMemory(\n runtime: IAgentRuntime,\n message: Memory,\n type: string,\n serverName: string,\n content: string,\n metadata: Record<string, unknown>\n): Promise<void> {\n const memory = await runtime.addEmbeddingToMemory({\n entityId: message.entityId,\n agentId: runtime.agentId,\n roomId: message.roomId,\n content: {\n text: `Used \"${type}\" from \"${serverName}\". Content: ${content}`,\n metadata: { ...metadata, serverName },\n },\n });\n await runtime.createMemory(memory, type === \"resource\" ? \"resources\" : \"tools\", true);\n}\n\nexport function buildMcpProviderData(servers: McpServer[]): McpProvider {\n if (servers.length === 0) {\n return { values: { mcp: {} }, data: { mcp: {} }, text: \"No MCP servers connected.\" };\n }\n\n const mcpData: McpProviderData = {};\n const lines: string[] = [\"# MCP Configuration\\n\"];\n\n for (const server of servers) {\n const tools: Record<string, McpToolInfo> = {};\n const resources: Record<string, McpResourceInfo> = {};\n\n lines.push(`## ${server.name} (${server.status})\\n`);\n\n if (server.tools?.length) {\n lines.push(\"### Tools\\n\");\n for (const t of server.tools) {\n tools[t.name] = { description: t.description || NO_DESC, inputSchema: t.inputSchema || {} };\n lines.push(`- **${t.name}**: ${t.description || NO_DESC}`);\n }\n lines.push(\"\");\n }\n\n if (server.resources?.length) {\n lines.push(\"### Resources\\n\");\n for (const r of server.resources) {\n resources[r.uri] = { name: r.name, description: r.description || NO_DESC, mimeType: r.mimeType };\n lines.push(`- **${r.name}** (${r.uri}): ${r.description || NO_DESC}`);\n }\n lines.push(\"\");\n }\n\n mcpData[server.name] = { status: server.status, tools, resources };\n }\n\n const text = lines.join(\"\\n\");\n return { values: { mcp: mcpData, mcpText: text }, data: { mcp: mcpData }, text };\n}\n",
|
|
19
|
-
"import
|
|
20
|
-
"import
|
|
21
|
-
"import {
|
|
22
|
-
"
|
|
23
|
-
"export const toolSelectionNameSchema = {\n type: \"object\",\n required: [\"serverName\", \"toolName\"],\n properties: {\n serverName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"serverName must not be empty\",\n },\n toolName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"toolName must not be empty\",\n },\n reasoning: {\n type: \"string\",\n },\n noToolAvailable: {\n type: \"boolean\",\n },\n },\n};\n\nexport interface ToolSelectionName {\n serverName: string;\n toolName: string;\n reasoning?: string;\n noToolAvailable?: boolean;\n}\n\nexport const toolSelectionArgumentSchema = {\n type: \"object\",\n required: [\"toolArguments\"],\n properties: {\n toolArguments: {\n type: \"object\",\n },\n },\n};\n\nexport interface ToolSelectionArgument {\n toolArguments: Record<string, unknown>;\n}\n\nexport const ResourceSelectionSchema = {\n type: \"object\",\n required: [\"serverName\", \"uri\"],\n properties: {\n serverName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"serverName must not be empty\",\n },\n uri: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"uri must not be empty\",\n },\n reasoning: {\n type: \"string\",\n },\n noResourceAvailable: {\n type: \"boolean\",\n },\n },\n};\n\nexport interface ResourceSelection {\n serverName: string;\n uri: string;\n reasoning?: string;\n noResourceAvailable?: boolean;\n}\n",
|
|
24
|
-
"import
|
|
25
|
-
"import
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"import { type IAgentRuntime, Service, logger } from \"@elizaos/core\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type {\n CallToolResult,\n Resource,\n ResourceTemplate,\n Tool,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport {\n type McpToolCompatibility,\n createMcpToolCompatibilitySync as createMcpToolCompatibility,\n} from \"./tool-compatibility\";\nimport {\n BACKOFF_MULTIPLIER,\n type ConnectionState,\n DEFAULT_MCP_TIMEOUT_SECONDS,\n DEFAULT_PING_CONFIG,\n type HttpMcpServerConfig,\n INITIAL_RETRY_DELAY,\n MAX_RECONNECT_ATTEMPTS,\n MCP_SERVICE_NAME,\n type McpConnection,\n type McpProvider,\n type McpResourceResponse,\n type McpServer,\n type McpServerConfig,\n type McpSettings,\n type PingConfig,\n type StdioMcpServerConfig,\n} from \"./types\";\nimport { buildMcpProviderData } from \"./utils/mcp\";\n\nconst errMsg = (e: unknown): string => (e instanceof Error ? e.message : String(e));\n\nexport class McpService extends Service {\n static serviceType: string = MCP_SERVICE_NAME;\n capabilityDescription = \"Enables the agent to interact with MCP (Model Context Protocol) servers\";\n\n private connections: Map<string, McpConnection> = new Map();\n private connectionStates: Map<string, ConnectionState> = new Map();\n private mcpProvider: McpProvider = {\n values: { mcp: {}, mcpText: \"\" },\n data: { mcp: {} },\n text: \"\",\n };\n private pingConfig: PingConfig = DEFAULT_PING_CONFIG;\n private toolCompatibility: McpToolCompatibility | null = null;\n private compatibilityInitialized = false;\n\n private initializationPromise: Promise<void> | null = null;\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n this.initializationPromise = this.initializeMcpServers();\n }\n\n static async start(runtime: IAgentRuntime): Promise<McpService> {\n const service = new McpService(runtime);\n if (service.initializationPromise) {\n await service.initializationPromise;\n }\n return service;\n }\n\n async waitForInitialization(): Promise<void> {\n if (this.initializationPromise) {\n await this.initializationPromise;\n }\n }\n\n async stop(): Promise<void> {\n for (const name of this.connections.keys()) {\n await this.deleteConnection(name);\n }\n // Clean up any orphaned connection states (e.g., from failed initializations)\n for (const [name, state] of this.connectionStates.entries()) {\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n this.connectionStates.delete(name);\n }\n }\n\n private async initializeMcpServers(): Promise<void> {\n try {\n const mcpSettings = this.getMcpSettings();\n\n if (!mcpSettings?.servers || Object.keys(mcpSettings.servers).length === 0) {\n this.mcpProvider = buildMcpProviderData([]);\n return;\n }\n\n const connectionStartTime = Date.now();\n await this.updateServerConnections(mcpSettings.servers);\n const connectionDuration = Date.now() - connectionStartTime;\n\n const servers = this.getServers();\n const connected = servers.filter((s) => s.status === \"connected\");\n const failed = servers.filter((s) => s.status !== \"connected\");\n\n if (connected.length > 0) {\n logger.info(\n `[MCP] Connected ${connected.length}/${servers.length} in ${connectionDuration}ms (${connected.map((s) => `${s.name}:${s.tools?.length || 0}`).join(\", \")})`\n );\n }\n if (failed.length > 0) {\n logger.warn(`[MCP] Failed: ${failed.map((s) => s.name).join(\", \")}`);\n }\n if (connected.length === 0 && servers.length > 0) {\n logger.error(`[MCP] All servers failed`);\n }\n\n this.mcpProvider = buildMcpProviderData(servers);\n } catch (error) {\n logger.error({ error: errMsg(error) }, \"[MCP] Initialization failed\");\n this.mcpProvider = buildMcpProviderData([]);\n }\n }\n\n private getMcpSettings(): McpSettings | undefined {\n let settings = this.runtime.getSetting(\"mcp\");\n\n if (!settings || (typeof settings === \"object\" && !settings.servers)) {\n settings = (this.runtime as any).character?.settings?.mcp;\n }\n if (!settings || (typeof settings === \"object\" && !settings.servers)) {\n settings = (this.runtime as any).settings?.mcp;\n }\n\n return settings && typeof settings === \"object\" && (settings as McpSettings).servers\n ? (settings as McpSettings)\n : undefined;\n }\n\n private async updateServerConnections(\n serverConfigs: Record<string, McpServerConfig>\n ): Promise<void> {\n const newNames = new Set(Object.keys(serverConfigs));\n\n for (const name of this.connections.keys()) {\n if (!newNames.has(name)) await this.deleteConnection(name);\n }\n\n await Promise.allSettled(\n Object.entries(serverConfigs).map(async ([name, config]) => {\n const current = this.connections.get(name);\n if (!current) {\n await this.initializeConnection(name, config).catch((e) =>\n logger.error({ error: errMsg(e), serverName: name }, `[MCP] Failed: ${name}`)\n );\n } else if (JSON.stringify(config) !== current.server.config) {\n await this.deleteConnection(name);\n await this.initializeConnection(name, config).catch((e) =>\n logger.error({ error: errMsg(e), serverName: name }, `[MCP] Failed: ${name}`)\n );\n }\n })\n );\n }\n\n private async initializeConnection(name: string, config: McpServerConfig): Promise<void> {\n await this.deleteConnection(name);\n const state: ConnectionState = {\n status: \"connecting\",\n reconnectAttempts: 0,\n consecutivePingFailures: 0,\n };\n this.connectionStates.set(name, state);\n\n try {\n const client = new Client({ name: \"ElizaOS\", version: \"1.0.0\" }, { capabilities: {} });\n const transport =\n config.type === \"stdio\"\n ? await this.buildStdioClientTransport(name, config)\n : await this.buildHttpClientTransport(name, config);\n\n const connection: McpConnection = {\n server: { name, config: JSON.stringify(config), status: \"connecting\" },\n client,\n transport,\n };\n this.connections.set(name, connection);\n this.setupTransportHandlers(name, connection, state);\n\n const connectPromise = client.connect(transport);\n // Attach a no-op catch to prevent unhandled rejection if timeout fires first\n connectPromise.catch(() => {});\n await Promise.race([\n connectPromise,\n new Promise<never>((_, reject) =>\n setTimeout(() => reject(new Error(`Timeout connecting to ${name}`)), 60000)\n ),\n ]);\n\n const capabilities = client.getServerCapabilities();\n const tools = await this.fetchToolsList(name);\n const resources = capabilities?.resources ? await this.fetchResourcesList(name) : [];\n const resourceTemplates = capabilities?.resources\n ? await this.fetchResourceTemplatesList(name)\n : [];\n\n connection.server = {\n status: \"connected\",\n name,\n config: JSON.stringify(config),\n error: \"\",\n tools,\n resources,\n resourceTemplates,\n };\n state.status = \"connected\";\n state.lastConnected = new Date();\n state.reconnectAttempts = 0;\n state.consecutivePingFailures = 0;\n this.startPingMonitoring(name);\n } catch (error) {\n state.status = \"disconnected\";\n state.lastError = error instanceof Error ? error : new Error(String(error));\n this.handleDisconnection(name, error);\n throw error;\n }\n }\n\n private setupTransportHandlers(name: string, connection: McpConnection, state: ConnectionState) {\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n const isHttp = config.type !== \"stdio\";\n\n connection.transport.onerror = async (error) => {\n const msg = error?.message || String(error);\n const isExpectedTimeout =\n isHttp && (!msg || msg === \"undefined\" || msg.includes(\"SSE\") || msg.includes(\"timeout\"));\n\n if (!isExpectedTimeout) {\n logger.error({ error, serverName: name }, `Transport error: ${name}`);\n connection.server.status = \"disconnected\";\n this.appendErrorMessage(connection, msg);\n }\n if (!isHttp) this.handleDisconnection(name, error);\n };\n\n connection.transport.onclose = async () => {\n if (!isHttp) {\n logger.warn({ serverName: name }, `Transport closed: ${name}`);\n connection.server.status = \"disconnected\";\n this.handleDisconnection(name, new Error(\"Transport closed\"));\n }\n };\n }\n\n private startPingMonitoring(name: string) {\n const connection = this.connections.get(name);\n if (!connection) return;\n\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n if (config.type !== \"stdio\") return; // HTTP transports are stateless\n\n const state = this.connectionStates.get(name);\n if (!state || !this.pingConfig.enabled) return;\n if (state.pingInterval) clearInterval(state.pingInterval);\n\n state.pingInterval = setInterval(() => {\n this.sendPing(name).catch((err) => {\n logger.warn({ error: errMsg(err), serverName: name }, `Ping failed: ${name}`);\n this.handlePingFailure(name, err);\n });\n }, this.pingConfig.intervalMs);\n }\n\n private async sendPing(name: string): Promise<void> {\n const connection = this.connections.get(name);\n if (!connection) throw new Error(`No connection: ${name}`);\n\n await Promise.race([\n connection.client.listTools(),\n new Promise((_, reject) =>\n setTimeout(() => reject(new Error(\"Ping timeout\")), this.pingConfig.timeoutMs)\n ),\n ]);\n\n const state = this.connectionStates.get(name);\n if (state) state.consecutivePingFailures = 0;\n }\n\n private handlePingFailure(name: string, error: unknown) {\n const state = this.connectionStates.get(name);\n if (!state) return;\n state.consecutivePingFailures++;\n if (state.consecutivePingFailures >= this.pingConfig.failuresBeforeDisconnect) {\n logger.warn(`Ping failures exceeded for ${name}, disconnecting and attempting reconnect.`);\n this.handleDisconnection(name, error);\n }\n }\n\n private handleDisconnection(name: string, error: unknown) {\n const state = this.connectionStates.get(name);\n if (!state) return;\n state.status = \"disconnected\";\n state.lastError = error instanceof Error ? error : new Error(String(error));\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n if (state.reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {\n logger.error(`Max reconnect attempts reached for ${name}. Giving up.`);\n return;\n }\n const delay = INITIAL_RETRY_DELAY * Math.pow(BACKOFF_MULTIPLIER, state.reconnectAttempts);\n state.reconnectTimeout = setTimeout(async () => {\n state.reconnectAttempts++;\n logger.info(`Attempting to reconnect to ${name} (attempt ${state.reconnectAttempts})...`);\n const config = this.connections.get(name)?.server.config;\n if (config) {\n try {\n await this.initializeConnection(name, JSON.parse(config));\n } catch (err) {\n logger.error(\n { error: errMsg(err), serverName: name },\n `Reconnect attempt failed for ${name}`\n );\n this.handleDisconnection(name, err);\n }\n }\n }, delay);\n }\n\n async deleteConnection(name: string): Promise<void> {\n const connection = this.connections.get(name);\n if (connection) {\n try {\n await connection.transport.close();\n await connection.client.close();\n } catch (error) {\n logger.error(\n { error: errMsg(error), serverName: name },\n `Failed to close transport for ${name}`\n );\n }\n this.connections.delete(name);\n }\n const state = this.connectionStates.get(name);\n if (state) {\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n this.connectionStates.delete(name);\n }\n }\n\n private async buildStdioClientTransport(name: string, config: StdioMcpServerConfig) {\n if (!config.command) {\n throw new Error(`Missing command for stdio MCP server ${name}`);\n }\n\n return new StdioClientTransport({\n command: config.command,\n args: config.args,\n env: {\n ...config.env,\n ...(process.env.PATH ? { PATH: process.env.PATH } : {}),\n },\n stderr: \"pipe\",\n cwd: config.cwd,\n });\n }\n\n private async buildHttpClientTransport(\n name: string,\n config: HttpMcpServerConfig\n ): Promise<SSEClientTransport | StreamableHTTPClientTransport> {\n if (!config.url) throw new Error(`Missing URL for MCP server ${name}`);\n\n const url = new URL(config.url);\n const opts = config.headers ? { requestInit: { headers: config.headers } } : undefined;\n\n if (config.type === \"sse\") {\n logger.warn(`[MCP] \"${name}\": SSE requires Redis. Use \"streamable-http\" instead.`);\n return new SSEClientTransport(url, opts);\n }\n\n return new StreamableHTTPClientTransport(url, opts);\n }\n\n private appendErrorMessage(connection: McpConnection, error: string) {\n connection.server.error = connection.server.error\n ? `${connection.server.error}\\n${error}`\n : error;\n }\n\n private async fetchToolsList(serverName: string): Promise<Tool[]> {\n const connection = this.connections.get(serverName);\n if (!connection) return [];\n\n try {\n const response = await connection.client.listTools();\n return (response?.tools || []).map((tool) => {\n if (!tool.inputSchema) return tool;\n\n if (!this.compatibilityInitialized) this.initializeToolCompatibility();\n\n try {\n return { ...tool, inputSchema: this.applyToolCompatibility(tool.inputSchema) };\n } catch {\n return tool;\n }\n });\n } catch (error) {\n logger.error({ error: errMsg(error), serverName }, `Failed to fetch tools: ${serverName}`);\n return [];\n }\n }\n\n private async fetchResourcesList(name: string): Promise<Resource[]> {\n const conn = this.connections.get(name);\n if (!conn) return [];\n try {\n return (await conn.client.listResources())?.resources || [];\n } catch (error) {\n logger.debug({ error: errMsg(error), serverName: name }, `No resources for ${name}`);\n return [];\n }\n }\n\n private async fetchResourceTemplatesList(name: string): Promise<ResourceTemplate[]> {\n const conn = this.connections.get(name);\n if (!conn) return [];\n try {\n return (await conn.client.listResourceTemplates())?.resourceTemplates || [];\n } catch (error) {\n logger.debug({ error: errMsg(error), serverName: name }, `No resource templates for ${name}`);\n return [];\n }\n }\n\n public getServers(): McpServer[] {\n return Array.from(this.connections.values())\n .filter((conn) => !conn.server.disabled)\n .map((conn) => conn.server);\n }\n\n public getProviderData(): McpProvider {\n return this.mcpProvider;\n }\n\n public async callTool(\n serverName: string,\n toolName: string,\n args?: Record<string, unknown>\n ): Promise<CallToolResult> {\n const conn = this.connections.get(serverName);\n if (!conn) throw new Error(`No connection: ${serverName}`);\n if (conn.server.disabled) throw new Error(`Server disabled: ${serverName}`);\n\n const config = JSON.parse(conn.server.config) as StdioMcpServerConfig | HttpMcpServerConfig;\n const timeout =\n (config.type === \"stdio\" ? config.timeoutInMillis : config.timeout) ??\n DEFAULT_MCP_TIMEOUT_SECONDS;\n\n const result = await conn.client.callTool({ name: toolName, arguments: args }, undefined, {\n timeout,\n });\n if (!result.content) throw new Error(\"Invalid tool result: missing content\");\n return result as CallToolResult;\n }\n\n public async readResource(serverName: string, uri: string): Promise<McpResourceResponse> {\n const conn = this.connections.get(serverName);\n if (!conn) throw new Error(`No connection: ${serverName}`);\n if (conn.server.disabled) throw new Error(`Server disabled: ${serverName}`);\n return conn.client.readResource({ uri });\n }\n\n public async restartConnection(serverName: string): Promise<void> {\n const conn = this.connections.get(serverName);\n if (!conn) throw new Error(`No connection: ${serverName}`);\n\n const config = conn.server.config;\n conn.server.status = \"connecting\";\n conn.server.error = \"\";\n\n await this.deleteConnection(serverName);\n await this.initializeConnection(serverName, JSON.parse(config));\n }\n\n private initializeToolCompatibility(): void {\n if (this.compatibilityInitialized) return;\n this.toolCompatibility = createMcpToolCompatibility(this.runtime);\n this.compatibilityInitialized = true;\n }\n\n public applyToolCompatibility(toolSchema: any): any {\n if (!this.compatibilityInitialized) this.initializeToolCompatibility();\n if (!this.toolCompatibility || !toolSchema) return toolSchema;\n\n try {\n return this.toolCompatibility.transformToolSchema(toolSchema);\n } catch {\n return toolSchema;\n }\n }\n}\n"
|
|
86
|
+
"import Ajv from \"ajv\";\nimport JSON5 from \"json5\";\n\n/** Find matching closing bracket/brace using depth counting */\nfunction findMatchingClose(str: string, start: number, open: string, close: string): number {\n let depth = 0;\n let inString = false;\n let escape = false;\n\n for (let i = start; i < str.length; i++) {\n const ch = str[i];\n\n if (escape) {\n escape = false;\n continue;\n }\n\n if (ch === '\\\\' && inString) {\n escape = true;\n continue;\n }\n\n if (ch === '\"') {\n inString = !inString;\n continue;\n }\n\n if (inString) continue;\n\n if (ch === open) depth++;\n else if (ch === close) {\n depth--;\n if (depth === 0) return i;\n }\n }\n return -1;\n}\n\nexport function parseJSON<T>(input: string): T {\n // Remove code blocks\n let cleanedInput = input.replace(/^```(?:json)?\\s*|\\s*```$/g, \"\").trim();\n\n // Find first JSON start character\n const firstBrace = cleanedInput.indexOf('{');\n const firstBracket = cleanedInput.indexOf('[');\n\n // Determine which comes first (or only one exists)\n let start = -1;\n let isArray = false;\n\n if (firstBrace === -1 && firstBracket === -1) {\n // No JSON found, try parsing as-is (might be primitive)\n return JSON5.parse(cleanedInput);\n } else if (firstBrace === -1) {\n start = firstBracket;\n isArray = true;\n } else if (firstBracket === -1) {\n start = firstBrace;\n isArray = false;\n } else {\n // Both exist, use whichever comes first\n if (firstBracket < firstBrace) {\n start = firstBracket;\n isArray = true;\n } else {\n start = firstBrace;\n isArray = false;\n }\n }\n\n // Find matching closing character\n const end = isArray\n ? findMatchingClose(cleanedInput, start, '[', ']')\n : findMatchingClose(cleanedInput, start, '{', '}');\n\n if (end !== -1) {\n cleanedInput = cleanedInput.substring(start, end + 1);\n }\n\n return JSON5.parse(cleanedInput);\n}\n\nconst ajv = new Ajv({\n allErrors: true,\n strict: false,\n});\n\nexport function validateJsonSchema<T = unknown>(\n data: unknown,\n schema: Record<string, unknown>\n): { success: true; data: T } | { success: false; error: string } {\n try {\n const validate = ajv.compile(schema);\n const valid = validate(data);\n\n if (!valid) {\n const errors = (validate.errors || []).map((err: any) => {\n const path = err.instancePath ? `${err.instancePath.replace(/^\\//, \"\")}` : \"value\";\n return `${path}: ${err.message}`;\n });\n\n return { success: false, error: errors.join(\", \") };\n }\n\n return { success: true, data: data as T };\n } catch (error) {\n return {\n success: false,\n error: `Schema validation error: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n}\n",
|
|
87
|
+
"import type { State } from \"@elizaos/core\";\nimport { type McpProviderData, ResourceSelectionSchema, type ValidationResult } from \"../types\";\nimport { validateJsonSchema } from \"./json\";\n\nexport interface ResourceSelection {\n serverName: string;\n uri: string;\n reasoning?: string;\n noResourceAvailable?: boolean;\n}\n\nexport function validateResourceSelection(\n selection: unknown\n): ValidationResult<ResourceSelection> {\n return validateJsonSchema<ResourceSelection>(selection, ResourceSelectionSchema);\n}\n\nexport function createResourceSelectionFeedbackPrompt(\n originalResponse: string,\n errorMessage: string,\n composedState: State,\n userMessage: string\n): string {\n let description = \"\";\n\n for (const [serverName, server] of Object.entries(composedState.values.mcp || {}) as [\n string,\n McpProviderData[string],\n ][]) {\n if (server.status !== \"connected\") continue;\n\n for (const [uri, resource] of Object.entries(server.resources || {}) as [\n string,\n { description?: string; name?: string },\n ][]) {\n description += `Resource: ${uri} (Server: ${serverName})\\n`;\n description += `Name: ${resource.name || \"No name\"}\\n`;\n description += `Description: ${resource.description || \"No description\"}\\n\\n`;\n }\n }\n\n return `Error parsing JSON: ${errorMessage}\n\nYour original response:\n${originalResponse}\n\nPlease try again with valid JSON for resource selection.\nAvailable resources:\n${description}\n\nUser request: ${userMessage}`;\n}\n",
|
|
88
|
+
"import {\n type HandlerCallback,\n type Memory,\n type IAgentRuntime,\n type State,\n logger,\n ModelType,\n} from \"@elizaos/core\";\nimport { parseJSON } from \"./json\";\nimport { DEFAULT_MAX_RETRIES, type ValidationResult } from \"../types\";\n\nexport interface WithModelRetryOptions<T> {\n runtime: IAgentRuntime;\n message: Memory;\n state: State;\n input: string | object;\n validationFn: (data: unknown) => ValidationResult<T>;\n createFeedbackPromptFn: (original: string | object, error: string, state: State, userMsg: string) => string;\n callback?: HandlerCallback;\n failureMsg?: string;\n retryCount?: number;\n}\n\n/**\n * Retries model selection with feedback on parse errors\n */\nexport async function withModelRetry<T>({\n runtime,\n message,\n state,\n callback,\n input,\n validationFn,\n createFeedbackPromptFn,\n failureMsg,\n retryCount = 0,\n}: WithModelRetryOptions<T>): Promise<T | null> {\n const maxRetries = getMaxRetries(runtime);\n\n try {\n const parsed = typeof input === \"string\" ? parseJSON<unknown>(input) : input;\n const result = validationFn(parsed);\n if (!result.success) throw new Error(result.error);\n return result.data as T;\n } catch (e) {\n const error = e instanceof Error ? e.message : \"Parse error\";\n logger.error({ error }, \"[Retry] Parse failed\");\n\n if (retryCount < maxRetries) {\n const feedback = createFeedbackPromptFn(input, error, state, message.content.text || \"\");\n const retry = await runtime.useModel(ModelType.OBJECT_LARGE, { prompt: feedback });\n return withModelRetry({\n runtime,\n input: retry,\n validationFn,\n message,\n state,\n createFeedbackPromptFn,\n callback,\n failureMsg,\n retryCount: retryCount + 1,\n });\n }\n\n if (callback && failureMsg) {\n await callback({ text: failureMsg, thought: \"Parse failed after retries\", actions: [\"REPLY\"] });\n }\n return null;\n }\n}\n\nfunction getMaxRetries(runtime: IAgentRuntime): number {\n try {\n const mcp = runtime.getSetting(\"mcp\");\n if (mcp?.maxRetries !== undefined) {\n const val = Number(mcp.maxRetries);\n if (!isNaN(val) && val >= 0) return val;\n }\n } catch (e) {\n logger.debug({ error: e instanceof Error ? e.message : e }, \"[Retry] Failed to get maxRetries setting\");\n }\n return DEFAULT_MAX_RETRIES;\n}\n",
|
|
89
|
+
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport type { McpService } from \"./service\";\nimport { MCP_SERVICE_NAME } from \"./types\";\n\nconst EMPTY_PROVIDER = { values: { mcp: {} }, data: { mcp: {} }, text: \"No MCP servers available.\" };\n\nexport const provider: Provider = {\n name: \"MCP\",\n description: \"Connected MCP servers, tools, and resources\",\n\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State) => {\n const svc = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!svc) return EMPTY_PROVIDER;\n await svc.waitForInitialization();\n return svc.getProviderData();\n },\n};\n",
|
|
90
|
+
"import { type Action, type IAgentRuntime, Service, logger } from \"@elizaos/core\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport type { CallToolResult, Resource, ResourceTemplate, Tool } from \"@modelcontextprotocol/sdk/types.js\";\n\nimport { createMcpToolActions, type McpToolAction } from \"./actions/dynamic-tool-actions\";\nimport { getSchemaCache, McpSchemaCache } from \"./cache\";\nimport {\n MCP_SERVICE_NAME,\n DEFAULT_MCP_TIMEOUT_SECONDS,\n DEFAULT_PING_CONFIG,\n MAX_RECONNECT_ATTEMPTS,\n BACKOFF_MULTIPLIER,\n INITIAL_RETRY_DELAY,\n type McpConnection,\n type McpProvider,\n type McpServer,\n type McpServerConfig,\n type McpSettings,\n type HttpMcpServerConfig,\n type StdioMcpServerConfig,\n type ConnectionState,\n type PingConfig,\n} from \"./types\";\nimport { buildMcpProviderData } from \"./utils/mcp\";\nimport { createMcpToolCompatibilitySync, type McpToolCompatibility } from \"./tool-compatibility\";\n\nconst err = (e: unknown): string => (e instanceof Error ? e.message : String(e));\n\nexport class McpService extends Service {\n static serviceType = MCP_SERVICE_NAME;\n capabilityDescription = \"Enables the agent to interact with MCP servers\";\n\n private connections = new Map<string, McpConnection>();\n private connectionStates = new Map<string, ConnectionState>();\n private mcpProvider: McpProvider = { values: { mcp: {}, mcpText: \"\" }, data: { mcp: {} }, text: \"\" };\n private pingConfig: PingConfig = DEFAULT_PING_CONFIG;\n private toolCompatibility: McpToolCompatibility | null = null;\n private initPromise: Promise<void> | null = null;\n private registeredActions = new Map<string, McpToolAction>();\n private schemaCache = getSchemaCache();\n private lazyConnections = new Map<string, McpServerConfig>();\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n this.initPromise = this.init();\n }\n\n static async start(runtime: IAgentRuntime): Promise<McpService> {\n const svc = new McpService(runtime);\n await svc.initPromise;\n return svc;\n }\n\n async waitForInitialization(): Promise<void> {\n await this.initPromise;\n }\n\n async stop(): Promise<void> {\n for (const name of this.connections.keys()) {\n await this.disconnect(name);\n }\n }\n\n // ─── Initialization ────────────────────────────────────────────────────────\n\n private async init(): Promise<void> {\n try {\n const settings = this.getSettings();\n if (!settings?.servers || Object.keys(settings.servers).length === 0) {\n this.mcpProvider = buildMcpProviderData([]);\n return;\n }\n\n const start = Date.now();\n const entries = Object.entries(settings.servers);\n const results = { cached: [] as string[], connected: [] as string[], failed: [] as string[] };\n\n await Promise.allSettled(\n entries.map(async ([name, config]) => {\n try {\n const hash = this.schemaCache.hashConfig(config);\n\n // Try cache first\n if (this.schemaCache.isEnabled) {\n const cached = await this.schemaCache.getSchemas(this.runtime.agentId, name, hash);\n if (cached) {\n this.registerToolsAsActions(name, McpSchemaCache.toTools(cached));\n this.lazyConnections.set(name, config);\n results.cached.push(`${name}:${cached.tools.length}`);\n return;\n }\n }\n\n // Connect directly\n await this.connect(name, config);\n const server = this.connections.get(name)?.server;\n if (this.schemaCache.isEnabled && server?.tools?.length) {\n await this.schemaCache.setSchemas(this.runtime.agentId, name, hash, server.tools);\n }\n results.connected.push(`${name}:${server?.tools?.length || 0}`);\n } catch (e) {\n logger.error({ error: err(e), server: name }, `[MCP] Failed: ${name}`);\n results.failed.push(name);\n }\n })\n );\n\n const total = results.cached.length + results.connected.length;\n logger.info(\n `[MCP] Ready ${total}/${entries.length} in ${Date.now() - start}ms ` +\n `(${results.cached.length} cached, ${results.connected.length} connected, ${results.failed.length} failed)`\n );\n\n this.mcpProvider = buildMcpProviderData(this.getServers());\n } catch (e) {\n logger.error({ error: err(e) }, \"[MCP] Init failed\");\n this.mcpProvider = buildMcpProviderData([]);\n }\n }\n\nprivate getSettings(): McpSettings | undefined {\n let s = this.runtime.getSetting(\"mcp\");\n if (!s?.servers) s = (this.runtime as any).character?.settings?.mcp;\n if (!s?.servers) s = (this.runtime as any).settings?.mcp;\n return s?.servers ? (s as McpSettings) : undefined;\n }\n\n // ─── Connection Management ─────────────────────────────────────────────────\n\n private async connect(name: string, config: McpServerConfig): Promise<void> {\n await this.disconnect(name);\n const state: ConnectionState = { status: \"connecting\", reconnectAttempts: 0, consecutivePingFailures: 0 };\n this.connectionStates.set(name, state);\n\n try {\n const client = new Client({ name: \"ElizaOS\", version: \"1.0.0\" }, { capabilities: {} });\n const transport = config.type === \"stdio\"\n ? this.createStdioTransport(name, config)\n : this.createHttpTransport(name, config);\n\n const conn: McpConnection = {\n server: { name, config: JSON.stringify(config), status: \"connecting\" },\n client,\n transport: transport as any,\n };\n this.connections.set(name, conn);\n this.setupTransportHandlers(name, conn, state, config.type === \"stdio\");\n\n await Promise.race([\n client.connect(transport),\n new Promise<never>((_, rej) => setTimeout(() => rej(new Error(\"Connection timeout\")), 60000)),\n ]);\n\n const caps = client.getServerCapabilities();\n const tools = await this.fetchTools(name);\n const resources = caps?.resources ? await this.fetchResources(name) : [];\n const resourceTemplates = caps?.resources ? await this.fetchResourceTemplates(name) : [];\n\n conn.server = { status: \"connected\", name, config: JSON.stringify(config), error: \"\", tools, resources, resourceTemplates };\n state.status = \"connected\";\n state.lastConnected = new Date();\n state.reconnectAttempts = 0;\n state.consecutivePingFailures = 0;\n\n if (config.type === \"stdio\") this.startPingMonitor(name);\n this.registerToolsAsActions(name, tools);\n\n logger.info(`[MCP] Connected: ${name} (${tools?.length || 0} tools)`);\n } catch (e) {\n state.status = \"disconnected\";\n state.lastError = e instanceof Error ? e : new Error(String(e));\n this.handleDisconnect(name, e);\n throw e;\n }\n }\n\n async disconnect(name: string): Promise<void> {\n this.unregisterToolsAsActions(name);\n const conn = this.connections.get(name);\n if (conn) {\n try {\n await conn.transport.close();\n await conn.client.close();\n } catch (e) {\n logger.debug({ error: err(e), server: name }, `[MCP] Error during disconnect (expected during shutdown)`);\n }\n this.connections.delete(name);\n }\n const state = this.connectionStates.get(name);\n if (state) {\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n this.connectionStates.delete(name);\n }\n }\n\n private createStdioTransport(name: string, config: StdioMcpServerConfig): StdioClientTransport {\n if (!config.command) throw new Error(`Missing command for stdio server ${name}`);\n return new StdioClientTransport({\n command: config.command,\n args: config.args,\n env: { ...config.env, ...(process.env.PATH ? { PATH: process.env.PATH } : {}) },\n stderr: \"pipe\",\n cwd: config.cwd,\n });\n }\n\n private createHttpTransport(name: string, config: HttpMcpServerConfig): SSEClientTransport | StreamableHTTPClientTransport {\n if (!config.url) throw new Error(`Missing URL for server ${name}`);\n const url = new URL(config.url);\n const opts = config.headers ? { requestInit: { headers: config.headers } } : undefined;\n return config.type === \"sse\" ? new SSEClientTransport(url, opts) : new StreamableHTTPClientTransport(url, opts);\n }\n\n private setupTransportHandlers(name: string, conn: McpConnection, state: ConnectionState, isStdio: boolean): void {\n conn.transport.onerror = async (e) => {\n const msg = e?.message || \"\";\n if (isStdio || (!msg.includes(\"SSE\") && !msg.includes(\"timeout\") && msg !== \"undefined\")) {\n logger.error({ error: e, server: name }, `[MCP] Transport error: ${name}`);\n conn.server.status = \"disconnected\";\n conn.server.error = (conn.server.error || \"\") + \"\\n\" + msg;\n }\n if (isStdio) this.handleDisconnect(name, e);\n };\n\n conn.transport.onclose = async () => {\n if (isStdio) {\n conn.server.status = \"disconnected\";\n this.handleDisconnect(name, new Error(\"Transport closed\"));\n }\n };\n }\n\n // ─── Ping & Reconnect ──────────────────────────────────────────────────────\n\n private startPingMonitor(name: string): void {\n const state = this.connectionStates.get(name);\n if (!state || !this.pingConfig.enabled) return;\n if (state.pingInterval) clearInterval(state.pingInterval);\n\n state.pingInterval = setInterval(async () => {\n const conn = this.connections.get(name);\n if (!conn) return;\n try {\n await Promise.race([\n conn.client.listTools(),\n new Promise((_, r) => setTimeout(() => r(new Error(\"Ping timeout\")), this.pingConfig.timeoutMs)),\n ]);\n state.consecutivePingFailures = 0;\n } catch (e) {\n state.consecutivePingFailures++;\n if (state.consecutivePingFailures >= this.pingConfig.failuresBeforeDisconnect) {\n this.handleDisconnect(name, e);\n }\n }\n }, this.pingConfig.intervalMs);\n }\n\n private handleDisconnect(name: string, error: unknown): void {\n const state = this.connectionStates.get(name);\n if (!state) return;\n state.status = \"disconnected\";\n state.lastError = error instanceof Error ? error : new Error(String(error));\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n\n if (state.reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {\n logger.error(`[MCP] Max reconnect attempts for ${name}`);\n return;\n }\n\n const delay = INITIAL_RETRY_DELAY * Math.pow(BACKOFF_MULTIPLIER, state.reconnectAttempts);\n state.reconnectTimeout = setTimeout(async () => {\n state.reconnectAttempts++;\n const config = this.connections.get(name)?.server.config;\n if (config) {\n try {\n await this.connect(name, JSON.parse(config));\n } catch (e) {\n this.handleDisconnect(name, e);\n }\n }\n }, delay);\n }\n\n // ─── Data Fetching ─────────────────────────────────────────────────────────\n\n private async fetchTools(name: string): Promise<Tool[]> {\n const conn = this.connections.get(name);\n if (!conn) return [];\n try {\n const res = await conn.client.listTools();\n return (res?.tools || []).map(t => {\n if (!t.inputSchema) return t;\n if (!this.toolCompatibility) this.toolCompatibility = createMcpToolCompatibilitySync(this.runtime);\n try {\n return { ...t, inputSchema: this.toolCompatibility.transformToolSchema(t.inputSchema) };\n } catch (e) {\n logger.debug({ error: err(e), tool: t.name }, `[MCP] Schema transform failed, using original`);\n return t;\n }\n });\n } catch (e) {\n logger.warn({ error: err(e), server: name }, `[MCP] Failed to fetch tools`);\n return [];\n }\n }\n\n private async fetchResources(name: string): Promise<Resource[]> {\n try {\n return (await this.connections.get(name)?.client.listResources())?.resources || [];\n } catch (e) {\n logger.debug({ error: err(e), server: name }, `[MCP] Failed to fetch resources`);\n return [];\n }\n }\n\n private async fetchResourceTemplates(name: string): Promise<ResourceTemplate[]> {\n try {\n return (await this.connections.get(name)?.client.listResourceTemplates())?.resourceTemplates || [];\n } catch (e) {\n logger.debug({ error: err(e), server: name }, `[MCP] Failed to fetch resource templates`);\n return [];\n }\n }\n\n // ─── Action Registration ───────────────────────────────────────────────────\n\n private registerToolsAsActions(serverName: string, tools: Tool[]): void {\n if (!tools?.length) return;\n\n const existing = new Set([...this.runtime.actions.map(a => a.name), ...this.registeredActions.keys()]);\n const actions = createMcpToolActions(serverName, tools, existing);\n\n for (const action of actions) {\n if (!this.registeredActions.has(action.name)) {\n this.runtime.registerAction(action);\n this.registeredActions.set(action.name, action);\n }\n }\n\n logger.info(`[MCP] Registered ${actions.length} actions for ${serverName}`);\n }\n\n private unregisterToolsAsActions(serverName: string): void {\n const toRemove: string[] = [];\n for (const [name, action] of this.registeredActions) {\n if (action._mcpMeta.serverName === serverName) toRemove.push(name);\n }\n\n for (const name of toRemove) {\n const idx = this.runtime.actions.findIndex(a => a.name === name);\n if (idx !== -1) this.runtime.actions.splice(idx, 1);\n this.registeredActions.delete(name);\n }\n }\n\n // ─── Public API ────────────────────────────────────────────────────────────\n\n getServers(): McpServer[] {\n return Array.from(this.connections.values())\n .filter(c => !c.server.disabled)\n .map(c => c.server);\n }\n\n getProviderData(): McpProvider {\n return this.mcpProvider;\n }\n\n getRegisteredActions(): McpToolAction[] {\n return Array.from(this.registeredActions.values());\n }\n\n isLazyConnection(serverName: string): boolean {\n return this.lazyConnections.has(serverName);\n }\n\n async ensureConnected(serverName: string): Promise<void> {\n if (this.connections.has(serverName)) return;\n\n const config = this.lazyConnections.get(serverName);\n if (!config) throw new Error(`Unknown server: ${serverName}`);\n\n const start = Date.now();\n await this.connect(serverName, config);\n this.lazyConnections.delete(serverName);\n\n const server = this.connections.get(serverName)?.server;\n if (this.schemaCache.isEnabled && server?.tools?.length) {\n await this.schemaCache.setSchemas(this.runtime.agentId, serverName, this.schemaCache.hashConfig(config), server.tools);\n }\n\n logger.info(`[MCP] Lazy connected: ${serverName} in ${Date.now() - start}ms`);\n this.mcpProvider = buildMcpProviderData(this.getServers());\n }\n\n async callTool(serverName: string, toolName: string, args?: Record<string, unknown>): Promise<CallToolResult> {\n await this.ensureConnected(serverName);\n const conn = this.connections.get(serverName);\n if (!conn) throw new Error(`No connection: ${serverName}`);\n if (conn.server.disabled) throw new Error(`Server disabled: ${serverName}`);\n\n const config = JSON.parse(conn.server.config);\n const timeout = config.timeoutInMillis || DEFAULT_MCP_TIMEOUT_SECONDS;\n const result = await conn.client.callTool({ name: toolName, arguments: args }, undefined, { timeout });\n if (!result.content) throw new Error(\"Invalid tool result\");\n return result as CallToolResult;\n }\n\n async readResource(serverName: string, uri: string): Promise<any> {\n await this.ensureConnected(serverName);\n const conn = this.connections.get(serverName);\n if (!conn) throw new Error(`No connection: ${serverName}`);\n if (conn.server.disabled) throw new Error(`Server disabled: ${serverName}`);\n return conn.client.readResource({ uri });\n }\n\n async restartConnection(serverName: string): Promise<void> {\n const conn = this.connections.get(serverName);\n if (!conn) throw new Error(`No connection: ${serverName}`);\n const config = conn.server.config;\n await this.disconnect(serverName);\n await this.connect(serverName, JSON.parse(config));\n }\n}\n",
|
|
91
|
+
"import {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n type State,\n logger,\n} from \"@elizaos/core\";\nimport type { Tool } from \"@modelcontextprotocol/sdk/types.js\";\nimport type { McpService } from \"../service\";\nimport { MCP_SERVICE_NAME } from \"../types\";\nimport { type ActionParameter, convertJsonSchemaToActionParams, validateParamsAgainstSchema } from \"../utils/schema-converter\";\nimport { toActionName, generateSimiles, makeUniqueActionName } from \"../utils/action-naming\";\nimport { processToolResult } from \"../utils/processing\";\n\nexport interface McpToolAction extends Action {\n parameters?: Record<string, ActionParameter>;\n _mcpMeta: { serverName: string; toolName: string; originalSchema: Tool[\"inputSchema\"] };\n}\n\nfunction extractParams(message: Memory, state?: State): Record<string, unknown> {\n const content = message.content as Record<string, unknown>;\n return (content.actionParams as Record<string, unknown>) ||\n (content.actionInput as Record<string, unknown>) ||\n (state?.data?.actionParams as Record<string, unknown>) ||\n {};\n}\n\nexport function createMcpToolAction(serverName: string, tool: Tool, existingNames: Set<string>): McpToolAction {\n const actionName = makeUniqueActionName(serverName, tool.name, existingNames);\n const description = `${tool.description || `Execute ${tool.name}`} (MCP: ${serverName}/${tool.name})`;\n\n return {\n name: actionName,\n description,\n similes: generateSimiles(serverName, tool.name),\n parameters: convertJsonSchemaToActionParams(tool.inputSchema),\n\n validate: async (runtime: IAgentRuntime) => {\n const svc = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!svc) return false;\n if (svc.isLazyConnection(serverName)) return true;\n\n const server = svc.getServers().find(s => s.name === serverName);\n return server?.status === \"connected\" && !!server.tools?.some(t => t.name === tool.name);\n },\n\n handler: async (runtime, message, state, _options, callback): Promise<ActionResult> => {\n const svc = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!svc) {\n return { success: false, error: \"MCP service not available\", data: { actionName, serverName, toolName: tool.name } };\n }\n\n const params = extractParams(message, state);\n logger.info({ serverName, toolName: tool.name, params }, `[MCP] Executing ${actionName}`);\n\n const errors = validateParamsAgainstSchema(params, tool.inputSchema);\n const missing = errors.filter(e => e.startsWith(\"Missing required\"));\n if (missing.length > 0) {\n logger.error({ missing, params }, `[MCP] Missing required params for ${actionName}`);\n return { success: false, error: missing.join(\", \"), data: { actionName, serverName, toolName: tool.name } };\n }\n\n const warnings = errors.filter(e => !e.startsWith(\"Missing required\"));\n if (warnings.length > 0) {\n logger.warn({ warnings, params }, `[MCP] Type warnings for ${actionName}`);\n }\n\n const result = await svc.callTool(serverName, tool.name, params);\n const { toolOutput, hasAttachments, attachments } = processToolResult(result, serverName, tool.name, runtime, message.entityId);\n\n if (result.isError) {\n logger.error({ serverName, toolName: tool.name, output: toolOutput }, `[MCP] Tool error`);\n return {\n success: false,\n error: toolOutput || \"Tool execution failed\",\n text: toolOutput,\n data: { actionName, serverName, toolName: tool.name, toolArguments: params, isError: true },\n };\n }\n\n if (callback && hasAttachments && attachments.length > 0) {\n await callback({ text: `Executed ${serverName}/${tool.name}`, attachments });\n }\n\n return {\n success: true,\n text: toolOutput,\n values: { success: true, serverName, toolName: tool.name, hasAttachments, output: toolOutput },\n data: { actionName, serverName, toolName: tool.name, toolArguments: params, output: toolOutput, attachments: attachments.length > 0 ? attachments : undefined },\n };\n },\n\n examples: [[\n { name: \"{{user}}\", content: { text: `Can you use ${tool.name}?` } },\n { name: \"{{assistant}}\", content: { text: `I'll execute ${tool.name} for you.`, actions: [actionName] } },\n ]],\n\n _mcpMeta: { serverName, toolName: tool.name, originalSchema: tool.inputSchema },\n };\n}\n\nexport function createMcpToolActions(serverName: string, tools: Tool[], existingNames: Set<string>): McpToolAction[] {\n const actions = tools.map(tool => {\n const action = createMcpToolAction(serverName, tool, existingNames);\n existingNames.add(action.name);\n logger.debug({ actionName: action.name, serverName, toolName: tool.name }, `[MCP] Created action`);\n return action;\n });\n\n logger.info({ serverName, toolCount: actions.length }, `[MCP] Created ${actions.length} actions for ${serverName}`);\n return actions;\n}\n\nexport function isMcpToolAction(action: Action): action is McpToolAction {\n return \"_mcpMeta\" in action && typeof (action as McpToolAction)._mcpMeta === \"object\";\n}\n\nexport function getMcpToolActionsForServer(actions: Action[], serverName: string): McpToolAction[] {\n return actions.filter((a): a is McpToolAction => isMcpToolAction(a) && a._mcpMeta.serverName === serverName);\n}\n",
|
|
92
|
+
"import type { Tool } from \"@modelcontextprotocol/sdk/types.js\";\n\nexport interface ActionParameter {\n type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\";\n description: string;\n required?: boolean;\n}\n\ninterface JsonSchemaProperty {\n type?: string | string[];\n description?: string;\n enum?: unknown[];\n default?: unknown;\n items?: JsonSchemaProperty;\n properties?: Record<string, JsonSchemaProperty>;\n required?: string[];\n format?: string;\n minimum?: number;\n maximum?: number;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n}\n\nfunction mapJsonSchemaType(jsonType: string | string[] | undefined): ActionParameter[\"type\"] {\n if (Array.isArray(jsonType)) {\n return mapJsonSchemaType(jsonType.find(t => t !== \"null\"));\n }\n switch (jsonType) {\n case \"string\": return \"string\";\n case \"number\": case \"integer\": return \"number\";\n case \"boolean\": return \"boolean\";\n case \"array\": return \"array\";\n default: return \"object\";\n }\n}\n\nfunction buildDescription(name: string, prop: JsonSchemaProperty): string {\n const parts: string[] = [prop.description || `Parameter: ${name}`];\n\n if (prop.enum?.length) parts.push(`Allowed: ${prop.enum.map(v => JSON.stringify(v)).join(\", \")}`);\n if (prop.format) parts.push(`Format: ${prop.format}`);\n if (prop.minimum !== undefined || prop.maximum !== undefined) {\n parts.push(`Range: ${[prop.minimum !== undefined ? `min: ${prop.minimum}` : '', prop.maximum !== undefined ? `max: ${prop.maximum}` : ''].filter(Boolean).join(\", \")}`);\n }\n if (prop.minLength !== undefined || prop.maxLength !== undefined) {\n parts.push(`Length: ${[prop.minLength !== undefined ? `min: ${prop.minLength}` : '', prop.maxLength !== undefined ? `max: ${prop.maxLength}` : ''].filter(Boolean).join(\", \")}`);\n }\n if (prop.pattern) parts.push(`Pattern: ${prop.pattern}`);\n if (prop.default !== undefined) parts.push(`Default: ${JSON.stringify(prop.default)}`);\n if (prop.type === \"array\" && prop.items) parts.push(`Array of ${prop.items.type || \"any\"}`);\n if (prop.type === \"object\" && prop.properties) {\n const keys = Object.keys(prop.properties);\n parts.push(`Object with: ${keys.join(\", \")}`);\n }\n\n return parts.join(\". \");\n}\n\nexport function convertJsonSchemaToActionParams(schema?: Tool[\"inputSchema\"]): Record<string, ActionParameter> | undefined {\n const properties = schema?.properties as Record<string, JsonSchemaProperty> | undefined;\n if (!properties || Object.keys(properties).length === 0) return undefined;\n\n const required = new Set<string>(schema?.required as string[] || []);\n const params: Record<string, ActionParameter> = {};\n\n for (const [name, prop] of Object.entries(properties)) {\n params[name] = {\n type: mapJsonSchemaType(prop.type),\n description: buildDescription(name, prop),\n required: required.has(name),\n };\n }\n\n return Object.keys(params).length > 0 ? params : undefined;\n}\n\nexport function validateParamsAgainstSchema(params: Record<string, unknown>, schema?: Tool[\"inputSchema\"]): string[] {\n if (!schema) return [];\n\n const errors: string[] = [];\n const properties = schema.properties as Record<string, JsonSchemaProperty> | undefined;\n const required = new Set<string>(schema.required as string[] || []);\n\n for (const field of required) {\n if (params[field] === undefined || params[field] === null) {\n errors.push(`Missing required parameter: ${field}`);\n }\n }\n\n if (properties) {\n for (const [name, value] of Object.entries(params)) {\n const prop = properties[name];\n if (!prop) continue;\n\n const expected = mapJsonSchemaType(prop.type);\n const actual = getValueType(value);\n\n if (actual !== expected && value !== null && value !== undefined) {\n errors.push(`Parameter '${name}' expected ${expected}, got ${actual}`);\n }\n if (prop.enum && !prop.enum.includes(value)) {\n errors.push(`Parameter '${name}' must be one of: ${prop.enum.map(v => JSON.stringify(v)).join(\", \")}`);\n }\n }\n }\n\n return errors;\n}\n\nfunction getValueType(value: unknown): ActionParameter[\"type\"] {\n if (Array.isArray(value)) return \"array\";\n if (value === null) return \"object\";\n switch (typeof value) {\n case \"string\": return \"string\";\n case \"number\": return \"number\";\n case \"boolean\": return \"boolean\";\n default: return \"object\";\n }\n}\n",
|
|
93
|
+
"function normalize(str: string): string {\n return str.toUpperCase().replace(/[^A-Z0-9]+/g, \"_\").replace(/_+/g, \"_\").replace(/^_|_$/g, \"\");\n}\n\nexport function toActionName(serverName: string, toolName: string): string {\n const server = normalize(serverName);\n const tool = normalize(toolName);\n\n if (!server) return tool || \"_\";\n if (!tool) return server + \"_\";\n if (tool.startsWith(server + \"_\")) return tool;\n\n return `${server}_${tool}`;\n}\n\nexport function generateSimiles(serverName: string, toolName: string): string[] {\n const tool = normalize(toolName);\n const fullName = toActionName(serverName, toolName);\n\n const similes = [\n tool,\n `${serverName}/${toolName}`,\n `${serverName.toLowerCase()}/${toolName.toLowerCase()}`,\n `MCP_${fullName}`,\n ];\n\n const parts = toolName.split(\"_\");\n if (parts.length === 2) {\n const reversed = `${parts[1]}_${parts[0]}`.toUpperCase();\n if (reversed !== tool) similes.push(reversed);\n }\n\n return [...new Set(similes)].filter(s => s !== fullName);\n}\n\nexport function parseActionName(actionName: string): { serverName: string; toolName: string } | null {\n const normalized = normalize(actionName);\n const idx = normalized.indexOf(\"_\");\n if (idx === -1) return null;\n\n return {\n serverName: normalized.substring(0, idx).toLowerCase(),\n toolName: normalized.substring(idx + 1).toLowerCase(),\n };\n}\n\nexport function actionNamesCollide(name1: string, name2: string): boolean {\n return normalize(name1) === normalize(name2);\n}\n\nexport function makeUniqueActionName(serverName: string, toolName: string, existing: Set<string>): string {\n let name = toActionName(serverName, toolName);\n if (!existing.has(name)) return name;\n\n let suffix = 2;\n while (existing.has(`${name}_${suffix}`)) suffix++;\n return `${name}_${suffix}`;\n}\n",
|
|
94
|
+
"/**\n * MCP Schema Cache - Optional Redis caching for serverless cold start optimization\n *\n * When enabled (via env vars), caches tool schemas to avoid MCP connection on cold start.\n * When disabled or misconfigured, gracefully falls back to direct MCP connections.\n *\n * Environment variables:\n * - MCP_SCHEMA_CACHE_ENABLED: \"true\" to enable (default: disabled)\n * - MCP_CACHE_REDIS_URL: Upstash REST API URL (https://..., NOT rediss://)\n * - MCP_CACHE_REDIS_TOKEN: Upstash REST API token\n * - MCP_SCHEMA_CACHE_TTL: Cache TTL in seconds (default: 3600)\n */\n\nimport { createHash } from \"crypto\";\nimport { logger } from \"@elizaos/core\";\nimport type { CachedServerSchema, CachedToolSchema, McpServerConfig } from \"../types\";\nimport type { Tool } from \"@modelcontextprotocol/sdk/types.js\";\n\nconst CACHE_KEY_PREFIX = \"mcp:schema:v1\";\nconst DEFAULT_TTL = 3600;\n\n/** Simple Upstash REST client - avoids heavy dependencies */\nclass UpstashClient {\n constructor(private url: string, private token: string) {\n // Validate URL format\n if (url.startsWith(\"redis://\") || url.startsWith(\"rediss://\")) {\n throw new Error(\n \"MCP_CACHE_REDIS_URL must be Upstash REST URL (https://...), not Redis protocol URL\"\n );\n }\n this.url = url.replace(/\\/$/, \"\");\n }\n\n private async exec<T>(cmd: string[]): Promise<T | null> {\n try {\n const res = await fetch(this.url, {\n method: \"POST\",\n headers: { Authorization: `Bearer ${this.token}`, \"Content-Type\": \"application/json\" },\n body: JSON.stringify(cmd),\n });\n if (!res.ok) return null;\n const data = await res.json();\n return data.result as T;\n } catch {\n return null;\n }\n }\n\n get = (key: string) => this.exec<string>([\"GET\", key]);\n setex = (key: string, ttl: number, val: string) => this.exec([\"SETEX\", key, String(ttl), val]);\n del = (key: string) => this.exec([\"DEL\", key]);\n}\n\n/**\n * MCP Schema Cache - singleton for caching tool schemas\n */\nexport class McpSchemaCache {\n private client: UpstashClient | null = null;\n private ttl: number;\n\n constructor() {\n const enabled = process.env.MCP_SCHEMA_CACHE_ENABLED === \"true\";\n const url = process.env.MCP_CACHE_REDIS_URL;\n const token = process.env.MCP_CACHE_REDIS_TOKEN;\n this.ttl = parseInt(process.env.MCP_SCHEMA_CACHE_TTL || String(DEFAULT_TTL), 10);\n\n if (!enabled) {\n logger.debug(\"[McpSchemaCache] Disabled\");\n return;\n }\n\n if (!url || !token) {\n logger.warn(\"[McpSchemaCache] Enabled but missing MCP_CACHE_REDIS_URL or MCP_CACHE_REDIS_TOKEN\");\n return;\n }\n\n try {\n this.client = new UpstashClient(url, token);\n logger.info(`[McpSchemaCache] Enabled (TTL: ${this.ttl}s)`);\n } catch (e) {\n logger.error(`[McpSchemaCache] Init failed: ${e instanceof Error ? e.message : e}`);\n }\n }\n\n get isEnabled(): boolean {\n return this.client !== null;\n }\n\n /** Hash config to detect changes */\n hashConfig(config: McpServerConfig): string {\n // Sort keys recursively to ensure consistent hashing regardless of key order\n const sortedJson = JSON.stringify(config, (_, value) =>\n value && typeof value === \"object\" && !Array.isArray(value)\n ? Object.keys(value).sort().reduce((sorted: Record<string, unknown>, key) => {\n sorted[key] = value[key];\n return sorted;\n }, {})\n : value\n );\n return createHash(\"sha256\").update(sortedJson).digest(\"hex\").slice(0, 16);\n }\n\n private key(agentId: string, serverName: string): string {\n return `${CACHE_KEY_PREFIX}:${agentId}:${serverName}`;\n }\n\n /** Get cached schemas (returns null on miss or error) */\n async getSchemas(agentId: string, serverName: string, configHash: string): Promise<CachedServerSchema | null> {\n if (!this.client) return null;\n\n try {\n const raw = await this.client.get(this.key(agentId, serverName));\n if (!raw) return null;\n\n const cached: CachedServerSchema = JSON.parse(raw);\n if (cached.configHash !== configHash) {\n await this.client.del(this.key(agentId, serverName));\n logger.debug(`[McpSchemaCache] Config changed for ${serverName}, invalidated`);\n return null;\n }\n\n logger.info(`[McpSchemaCache] Hit: ${serverName} (${cached.tools.length} tools)`);\n return cached;\n } catch {\n return null;\n }\n }\n\n /** Cache schemas (fails silently) */\n async setSchemas(agentId: string, serverName: string, configHash: string, tools: Tool[]): Promise<void> {\n if (!this.client) return;\n\n try {\n const cached: CachedServerSchema = {\n serverName,\n tools: tools.map(t => ({ name: t.name, description: t.description, inputSchema: t.inputSchema })),\n cachedAt: Date.now(),\n configHash,\n };\n await this.client.setex(this.key(agentId, serverName), this.ttl, JSON.stringify(cached));\n logger.info(`[McpSchemaCache] Cached: ${serverName} (${tools.length} tools)`);\n } catch {\n // Silent fail - caching is optional\n }\n }\n\n /** Convert cached schemas to Tool format */\n static toTools(cached: CachedServerSchema): Tool[] {\n return cached.tools.map(t => ({\n name: t.name,\n description: t.description,\n inputSchema: t.inputSchema || { type: \"object\" as const, properties: {} },\n }));\n }\n}\n\n// Singleton\nlet instance: McpSchemaCache | null = null;\nexport function getSchemaCache(): McpSchemaCache {\n if (!instance) instance = new McpSchemaCache();\n return instance;\n}\n",
|
|
95
|
+
"import type { JSONSchema7 } from 'json-schema';\n\nexport type ModelProvider = 'openai' | 'anthropic' | 'google' | 'openrouter' | 'unknown';\n\nexport interface ModelInfo {\n provider: ModelProvider;\n modelId: string;\n supportsStructuredOutputs?: boolean;\n isReasoningModel?: boolean;\n}\n\nexport abstract class McpToolCompatibility {\n protected modelInfo: ModelInfo;\n\n constructor(modelInfo: ModelInfo) {\n this.modelInfo = modelInfo;\n }\n\n abstract shouldApply(): boolean;\n\n transformToolSchema(toolSchema: JSONSchema7): JSONSchema7 {\n return this.shouldApply() ? this.processSchema(toolSchema) : toolSchema;\n }\n\n protected processSchema(schema: JSONSchema7): JSONSchema7 {\n const processed = { ...schema };\n\n switch (processed.type) {\n case 'string':\n return this.processTypeSchema(processed, this.getUnsupportedStringProperties());\n case 'number':\n case 'integer':\n return this.processTypeSchema(processed, this.getUnsupportedNumberProperties());\n case 'array':\n return this.processArraySchema(processed);\n case 'object':\n return this.processObjectSchema(processed);\n default:\n return this.processGenericSchema(processed);\n }\n }\n\n protected processTypeSchema(schema: JSONSchema7, unsupported: string[]): JSONSchema7 {\n const processed = { ...schema };\n const constraints: Record<string, unknown> = {};\n\n // Extract all constraint properties\n for (const prop of ['minLength', 'maxLength', 'pattern', 'format', 'enum',\n 'minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf',\n 'minItems', 'maxItems', 'uniqueItems']) {\n if (schema[prop as keyof JSONSchema7] !== undefined) {\n constraints[prop] = schema[prop as keyof JSONSchema7];\n }\n }\n\n for (const prop of unsupported) {\n delete (processed as any)[prop];\n }\n\n if (Object.keys(constraints).length > 0) {\n processed.description = this.mergeDescription(schema.description, constraints);\n }\n\n return processed;\n }\n\n protected processArraySchema(schema: JSONSchema7): JSONSchema7 {\n const processed = this.processTypeSchema(schema, this.getUnsupportedArrayProperties());\n\n if (schema.items && typeof schema.items === 'object' && !Array.isArray(schema.items)) {\n processed.items = this.processSchema(schema.items as JSONSchema7);\n }\n\n return processed;\n }\n\n protected processObjectSchema(schema: JSONSchema7): JSONSchema7 {\n const processed = this.processTypeSchema(schema, this.getUnsupportedObjectProperties());\n\n if (schema.properties) {\n processed.properties = {};\n for (const [key, prop] of Object.entries(schema.properties)) {\n processed.properties[key] = typeof prop === 'object' && !Array.isArray(prop)\n ? this.processSchema(prop as JSONSchema7)\n : prop;\n }\n }\n\n return processed;\n }\n\n protected processGenericSchema(schema: JSONSchema7): JSONSchema7 {\n const processed = { ...schema };\n\n for (const key of ['oneOf', 'anyOf', 'allOf'] as const) {\n if (Array.isArray(schema[key])) {\n (processed as any)[key] = schema[key]!.map(s =>\n typeof s === 'object' ? this.processSchema(s as JSONSchema7) : s\n );\n }\n }\n\n return processed;\n }\n\n protected mergeDescription(original: string | undefined, constraints: Record<string, unknown>): string {\n const json = JSON.stringify(constraints);\n return original ? `${original}\\n${json}` : json;\n }\n\n protected abstract getUnsupportedStringProperties(): string[];\n protected abstract getUnsupportedNumberProperties(): string[];\n protected abstract getUnsupportedArrayProperties(): string[];\n protected abstract getUnsupportedObjectProperties(): string[];\n}\n",
|
|
96
|
+
"import { McpToolCompatibility, type ModelInfo } from '../base.js';\n\nexport class OpenAIMcpCompatibility extends McpToolCompatibility {\n constructor(modelInfo: ModelInfo) {\n super(modelInfo);\n }\n\n shouldApply(): boolean {\n return this.modelInfo.provider === 'openai' &&\n (!this.modelInfo.supportsStructuredOutputs || this.modelInfo.isReasoningModel === true);\n }\n\n protected getUnsupportedStringProperties(): string[] {\n return this.modelInfo.isReasoningModel || this.modelInfo.modelId.includes('gpt-3.5')\n ? ['format', 'pattern']\n : ['format'];\n }\n\n protected getUnsupportedNumberProperties(): string[] {\n return this.modelInfo.isReasoningModel\n ? ['exclusiveMinimum', 'exclusiveMaximum', 'multipleOf']\n : [];\n }\n\n protected getUnsupportedArrayProperties(): string[] {\n return this.modelInfo.isReasoningModel ? ['uniqueItems'] : [];\n }\n\n protected getUnsupportedObjectProperties(): string[] {\n return ['minProperties', 'maxProperties'];\n }\n}\n\nexport class OpenAIReasoningMcpCompatibility extends McpToolCompatibility {\n constructor(modelInfo: ModelInfo) {\n super(modelInfo);\n }\n\n shouldApply(): boolean {\n return this.modelInfo.provider === 'openai' && this.modelInfo.isReasoningModel === true;\n }\n\n protected getUnsupportedStringProperties(): string[] {\n return ['format', 'pattern', 'minLength', 'maxLength'];\n }\n\n protected getUnsupportedNumberProperties(): string[] {\n return ['exclusiveMinimum', 'exclusiveMaximum', 'multipleOf'];\n }\n\n protected getUnsupportedArrayProperties(): string[] {\n return ['uniqueItems', 'minItems', 'maxItems'];\n }\n\n protected getUnsupportedObjectProperties(): string[] {\n return ['minProperties', 'maxProperties', 'additionalProperties'];\n }\n\n protected mergeDescription(original: string | undefined, constraints: Record<string, unknown>): string {\n const rules: string[] = [];\n if (constraints.minLength) rules.push(`minimum ${constraints.minLength} characters`);\n if (constraints.maxLength) rules.push(`maximum ${constraints.maxLength} characters`);\n if (constraints.minimum !== undefined) rules.push(`must be >= ${constraints.minimum}`);\n if (constraints.maximum !== undefined) rules.push(`must be <= ${constraints.maximum}`);\n if (constraints.format === 'email') rules.push(`must be a valid email`);\n if (constraints.format === 'uri' || constraints.format === 'url') rules.push(`must be a valid URL`);\n if (constraints.pattern) rules.push(`must match: ${constraints.pattern}`);\n if (constraints.enum) rules.push(`must be one of: ${(constraints.enum as string[]).join(', ')}`);\n if (constraints.minItems) rules.push(`at least ${constraints.minItems} items`);\n if (constraints.maxItems) rules.push(`at most ${constraints.maxItems} items`);\n\n const text = rules.length > 0 ? `IMPORTANT: ${rules.join(', ')}` : JSON.stringify(constraints);\n return original ? `${original}\\n\\n${text}` : text;\n }\n}\n",
|
|
97
|
+
"import { McpToolCompatibility, type ModelInfo } from '../base.js';\n\nexport class AnthropicMcpCompatibility extends McpToolCompatibility {\n constructor(modelInfo: ModelInfo) {\n super(modelInfo);\n }\n\n shouldApply(): boolean {\n return this.modelInfo.provider === 'anthropic';\n }\n\n protected getUnsupportedStringProperties(): string[] { return []; }\n protected getUnsupportedNumberProperties(): string[] { return []; }\n protected getUnsupportedArrayProperties(): string[] { return []; }\n protected getUnsupportedObjectProperties(): string[] { return ['additionalProperties']; }\n\n protected mergeDescription(original: string | undefined, constraints: Record<string, unknown>): string {\n const hints: string[] = [];\n if (constraints.additionalProperties === false) hints.push('Only use the specified properties');\n if (constraints.format === 'date-time') hints.push('Use ISO 8601 format');\n if (constraints.pattern) hints.push(`Must match: ${constraints.pattern}`);\n\n const text = hints.join('. ');\n return original && text ? `${original}. ${text}` : original || text || '';\n }\n}\n",
|
|
98
|
+
"import { McpToolCompatibility, type ModelInfo } from '../base.js';\n\nexport class GoogleMcpCompatibility extends McpToolCompatibility {\n constructor(modelInfo: ModelInfo) {\n super(modelInfo);\n }\n\n shouldApply(): boolean {\n return this.modelInfo.provider === 'google';\n }\n\n protected getUnsupportedStringProperties(): string[] {\n return ['minLength', 'maxLength', 'pattern', 'format'];\n }\n\n protected getUnsupportedNumberProperties(): string[] {\n return ['minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf'];\n }\n\n protected getUnsupportedArrayProperties(): string[] {\n return ['minItems', 'maxItems', 'uniqueItems'];\n }\n\n protected getUnsupportedObjectProperties(): string[] {\n return ['minProperties', 'maxProperties', 'additionalProperties'];\n }\n\n protected mergeDescription(original: string | undefined, constraints: Record<string, unknown>): string {\n const rules: string[] = [];\n if (constraints.minLength) rules.push(`at least ${constraints.minLength} chars`);\n if (constraints.maxLength) rules.push(`at most ${constraints.maxLength} chars`);\n if (constraints.minimum !== undefined) rules.push(`>= ${constraints.minimum}`);\n if (constraints.maximum !== undefined) rules.push(`<= ${constraints.maximum}`);\n if (constraints.format === 'email') rules.push(`valid email`);\n if (constraints.format === 'uri' || constraints.format === 'url') rules.push(`valid URL`);\n if (constraints.pattern) rules.push(`matches ${constraints.pattern}`);\n if (constraints.enum) rules.push(`one of: ${(constraints.enum as string[]).join(', ')}`);\n if (constraints.minItems) rules.push(`>= ${constraints.minItems} items`);\n if (constraints.maxItems) rules.push(`<= ${constraints.maxItems} items`);\n if (constraints.uniqueItems) rules.push(`unique items`);\n\n const text = rules.length > 0 ? `Constraints: ${rules.join('; ')}` : '';\n return original && text ? `${original}\\n\\n${text}` : original || text;\n }\n}\n",
|
|
99
|
+
"export { McpToolCompatibility, type ModelInfo, type ModelProvider } from './base.js';\n\nimport type { ModelInfo, ModelProvider } from './base.js';\nimport { OpenAIMcpCompatibility, OpenAIReasoningMcpCompatibility } from './providers/openai.js';\nimport { AnthropicMcpCompatibility } from './providers/anthropic.js';\nimport { GoogleMcpCompatibility } from './providers/google.js';\n\nexport function detectModelProvider(runtime: any): ModelInfo {\n const providerString = String(runtime?.modelProvider || '').toLowerCase();\n const modelString = String(runtime?.model || '').toLowerCase();\n\n let provider: ModelProvider = 'unknown';\n let supportsStructuredOutputs = false;\n let isReasoningModel = false;\n\n if (providerString.includes('openai') || modelString.includes('gpt-') || modelString.includes('o1') || modelString.includes('o3')) {\n provider = 'openai';\n supportsStructuredOutputs = modelString.includes('gpt-4') || modelString.includes('o1') || modelString.includes('o3');\n isReasoningModel = modelString.includes('o1') || modelString.includes('o3');\n } else if (providerString.includes('anthropic') || modelString.includes('claude')) {\n provider = 'anthropic';\n supportsStructuredOutputs = true;\n } else if (providerString.includes('google') || modelString.includes('gemini')) {\n provider = 'google';\n supportsStructuredOutputs = true;\n } else if (providerString.includes('openrouter') || modelString.includes('openrouter')) {\n provider = 'openrouter';\n }\n\n return { provider, modelId: modelString || providerString || 'unknown', supportsStructuredOutputs, isReasoningModel };\n}\n\nexport function createMcpToolCompatibilitySync(runtime: any) {\n const info = detectModelProvider(runtime);\n\n switch (info.provider) {\n case 'openai':\n return info.isReasoningModel ? new OpenAIReasoningMcpCompatibility(info) : new OpenAIMcpCompatibility(info);\n case 'anthropic':\n return new AnthropicMcpCompatibility(info);\n case 'google':\n return new GoogleMcpCompatibility(info);\n default:\n return null;\n }\n}\n\n// Async alias for API compatibility\nexport const createMcpToolCompatibility = createMcpToolCompatibilitySync;\n"
|
|
29
100
|
],
|
|
30
|
-
"mappings": "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",
|
|
31
|
-
"debugId": "
|
|
101
|
+
"mappings": "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",
|
|
102
|
+
"debugId": "95A205CC7B3513C264756E2164756E21",
|
|
32
103
|
"names": []
|
|
33
104
|
}
|