@cfworker/json-schema 4.1.1 → 4.1.3
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/commonjs/deep-compare-strict.d.ts +1 -0
- package/dist/commonjs/deep-compare-strict.d.ts.map +1 -0
- package/dist/commonjs/deep-compare-strict.js +10 -4
- package/dist/commonjs/deep-compare-strict.js.map +1 -0
- package/dist/commonjs/dereference.d.ts +1 -0
- package/dist/commonjs/dereference.d.ts.map +1 -0
- package/dist/commonjs/dereference.js +4 -2
- package/dist/commonjs/dereference.js.map +1 -0
- package/dist/commonjs/format.d.ts +1 -0
- package/dist/commonjs/format.d.ts.map +1 -0
- package/dist/commonjs/format.js +26 -9
- package/dist/commonjs/format.js.map +1 -0
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +1 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/package.json +2 -1
- package/dist/commonjs/pointer.d.ts +1 -0
- package/dist/commonjs/pointer.d.ts.map +1 -0
- package/dist/commonjs/pointer.js +1 -0
- package/dist/commonjs/pointer.js.map +1 -0
- package/dist/commonjs/types.d.ts +1 -0
- package/dist/commonjs/types.d.ts.map +1 -0
- package/dist/commonjs/types.js +1 -0
- package/dist/commonjs/types.js.map +1 -0
- package/dist/commonjs/ucs2-length.d.ts +1 -0
- package/dist/commonjs/ucs2-length.d.ts.map +1 -0
- package/dist/commonjs/ucs2-length.js +1 -0
- package/dist/commonjs/ucs2-length.js.map +1 -0
- package/dist/commonjs/validate.d.ts +1 -0
- package/dist/commonjs/validate.d.ts.map +1 -0
- package/dist/commonjs/validate.js +51 -25
- package/dist/commonjs/validate.js.map +1 -0
- package/dist/commonjs/validator.d.ts +1 -0
- package/dist/commonjs/validator.d.ts.map +1 -0
- package/dist/commonjs/validator.js +1 -0
- package/dist/commonjs/validator.js.map +1 -0
- package/dist/esm/deep-compare-strict.d.ts +1 -0
- package/dist/esm/deep-compare-strict.d.ts.map +1 -0
- package/dist/esm/deep-compare-strict.js +10 -4
- package/dist/esm/deep-compare-strict.js.map +1 -0
- package/dist/esm/dereference.d.ts +1 -0
- package/dist/esm/dereference.d.ts.map +1 -0
- package/dist/esm/dereference.js +4 -2
- package/dist/esm/dereference.js.map +1 -0
- package/dist/esm/format.d.ts +1 -0
- package/dist/esm/format.d.ts.map +1 -0
- package/dist/esm/format.js +26 -9
- package/dist/esm/format.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +2 -1
- package/dist/esm/pointer.d.ts +1 -0
- package/dist/esm/pointer.d.ts.map +1 -0
- package/dist/esm/pointer.js +1 -0
- package/dist/esm/pointer.js.map +1 -0
- package/dist/esm/types.d.ts +1 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/ucs2-length.d.ts +1 -0
- package/dist/esm/ucs2-length.d.ts.map +1 -0
- package/dist/esm/ucs2-length.js +1 -0
- package/dist/esm/ucs2-length.js.map +1 -0
- package/dist/esm/validate.d.ts +1 -0
- package/dist/esm/validate.d.ts.map +1 -0
- package/dist/esm/validate.js +51 -25
- package/dist/esm/validate.js.map +1 -0
- package/dist/esm/validator.d.ts +1 -0
- package/dist/esm/validator.d.ts.map +1 -0
- package/dist/esm/validator.js +1 -0
- package/dist/esm/validator.js.map +1 -0
- package/package.json +13 -10
- package/src/deep-compare-strict.ts +9 -4
- package/src/dereference.ts +3 -2
- package/src/format.ts +27 -9
- package/src/types.d.ts +1 -7
- package/src/types.ts +1 -7
- package/src/validate.ts +67 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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","sourcesContent":["import { deepCompareStrict } from './deep-compare-strict.js';\nimport { dereference } from './dereference.js';\nimport { format } from './format.js';\nimport { encodePointer } from './pointer.js';\nimport {\n InstanceType,\n OutputUnit,\n Schema,\n SchemaDraft,\n ValidationResult\n} from './types.js';\nimport { ucs2length } from './ucs2-length.js';\n\nexport type Evaluated = Record<string | number, boolean>;\n\nfunction hasOwnProperty(instance: object, key: PropertyKey): boolean {\n return Object.prototype.hasOwnProperty.call(instance, key);\n}\n\nfunction decimalInteger(\n value: number\n): [coefficient: bigint, exponent: number] {\n const coefficientAndExponent = Math.abs(value).toString().split('e');\n const coefficient = coefficientAndExponent[0]!;\n const exponent = coefficientAndExponent[1] ?? '0';\n const point = coefficient.indexOf('.');\n const fractionLength = point === -1 ? 0 : coefficient.length - point - 1;\n return [\n BigInt(coefficient.replace('.', '')),\n Number(exponent) - fractionLength\n ];\n}\n\nfunction isMultipleOf(instance: number, divisor: number): boolean {\n if (!Number.isFinite(instance) || !Number.isFinite(divisor) || divisor <= 0) {\n return false;\n }\n\n const [instanceCoefficient, instanceExponent] = decimalInteger(instance);\n const [divisorCoefficient, divisorExponent] = decimalInteger(divisor);\n const exponentDifference = instanceExponent - divisorExponent;\n\n if (exponentDifference >= 0) {\n return (\n (instanceCoefficient * 10n ** BigInt(exponentDifference)) %\n divisorCoefficient ===\n 0n\n );\n }\n\n return (\n instanceCoefficient %\n (divisorCoefficient * 10n ** BigInt(-exponentDifference)) ===\n 0n\n );\n}\n\nexport function validate(\n instance: any,\n schema: Schema | boolean,\n draft: SchemaDraft = '2019-09',\n lookup: Record<string, Schema | boolean> = dereference(schema),\n shortCircuit = true,\n recursiveAnchor: Schema | null = null,\n instanceLocation = '#',\n schemaLocation = '#',\n evaluated: Evaluated = Object.create(null)\n): ValidationResult {\n if (schema === true) {\n return { valid: true, errors: [] };\n }\n\n if (schema === false) {\n return {\n valid: false,\n errors: [\n {\n instanceLocation,\n keyword: 'false',\n keywordLocation: instanceLocation,\n error: 'False boolean schema.'\n }\n ]\n };\n }\n\n const rawInstanceType = typeof instance;\n let instanceType: Exclude<InstanceType, 'integer'>;\n switch (rawInstanceType) {\n case 'boolean':\n case 'number':\n case 'string':\n instanceType = rawInstanceType;\n break;\n case 'object':\n if (instance === null) {\n instanceType = 'null';\n } else if (Array.isArray(instance)) {\n instanceType = 'array';\n } else {\n instanceType = 'object';\n }\n break;\n default:\n // undefined, bigint, function, symbol\n throw new Error(\n `Instances of \"${rawInstanceType}\" type are not supported.`\n );\n }\n\n const {\n $ref,\n $recursiveRef,\n $recursiveAnchor,\n type: $type,\n const: $const,\n enum: $enum,\n required: $required,\n not: $not,\n anyOf: $anyOf,\n allOf: $allOf,\n oneOf: $oneOf,\n if: $if,\n then: $then,\n else: $else,\n\n format: $format,\n\n properties: $properties,\n patternProperties: $patternProperties,\n additionalProperties: $additionalProperties,\n unevaluatedProperties: $unevaluatedProperties,\n minProperties: $minProperties,\n maxProperties: $maxProperties,\n propertyNames: $propertyNames,\n dependentRequired: $dependentRequired,\n dependentSchemas: $dependentSchemas,\n dependencies: $dependencies,\n\n prefixItems: $prefixItems,\n items: $items,\n additionalItems: $additionalItems,\n unevaluatedItems: $unevaluatedItems,\n contains: $contains,\n minContains: $minContains,\n maxContains: $maxContains,\n minItems: $minItems,\n maxItems: $maxItems,\n uniqueItems: $uniqueItems,\n\n minimum: $minimum,\n maximum: $maximum,\n exclusiveMinimum: $exclusiveMinimum,\n exclusiveMaximum: $exclusiveMaximum,\n multipleOf: $multipleOf,\n\n minLength: $minLength,\n maxLength: $maxLength,\n pattern: $pattern,\n\n __absolute_ref__,\n __absolute_recursive_ref__\n } = schema;\n\n const errors: OutputUnit[] = [];\n\n if ($recursiveAnchor === true && recursiveAnchor === null) {\n recursiveAnchor = schema;\n }\n\n if ($recursiveRef === '#') {\n const refSchema =\n recursiveAnchor === null\n ? (lookup[__absolute_recursive_ref__!] as Schema)\n : recursiveAnchor;\n const keywordLocation = `${schemaLocation}/$recursiveRef`;\n const result = validate(\n instance,\n recursiveAnchor === null ? schema : recursiveAnchor,\n draft,\n lookup,\n shortCircuit,\n refSchema,\n instanceLocation,\n keywordLocation,\n evaluated\n );\n if (!result.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: '$recursiveRef',\n keywordLocation,\n error: 'A subschema had errors.'\n },\n ...result.errors\n );\n }\n }\n\n if ($ref !== undefined) {\n const uri = __absolute_ref__ || $ref;\n const refSchema = lookup[uri];\n if (refSchema === undefined) {\n let message = `Unresolved $ref \"${$ref}\".`;\n if (__absolute_ref__ && __absolute_ref__ !== $ref) {\n message += ` Absolute URI \"${__absolute_ref__}\".`;\n }\n message += `\\nKnown schemas:\\n- ${Object.keys(lookup).join('\\n- ')}`;\n throw new Error(message);\n }\n const keywordLocation = `${schemaLocation}/$ref`;\n const result = validate(\n instance,\n refSchema,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n instanceLocation,\n keywordLocation,\n evaluated\n );\n if (!result.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: '$ref',\n keywordLocation,\n error: 'A subschema had errors.'\n },\n ...result.errors\n );\n }\n if (draft === '4' || draft === '7') {\n return { valid: errors.length === 0, errors };\n }\n }\n\n if (Array.isArray($type)) {\n let length = $type.length;\n let valid = false;\n for (let i = 0; i < length; i++) {\n if (\n instanceType === $type[i] ||\n ($type[i] === 'integer' &&\n instanceType === 'number' &&\n instance % 1 === 0 &&\n instance === instance)\n ) {\n valid = true;\n break;\n }\n }\n if (!valid) {\n errors.push({\n instanceLocation,\n keyword: 'type',\n keywordLocation: `${schemaLocation}/type`,\n error: `Instance type \"${instanceType}\" is invalid. Expected \"${$type.join(\n '\", \"'\n )}\".`\n });\n }\n } else if ($type === 'integer') {\n if (instanceType !== 'number' || instance % 1 || instance !== instance) {\n errors.push({\n instanceLocation,\n keyword: 'type',\n keywordLocation: `${schemaLocation}/type`,\n error: `Instance type \"${instanceType}\" is invalid. Expected \"${$type}\".`\n });\n }\n } else if ($type !== undefined && instanceType !== $type) {\n errors.push({\n instanceLocation,\n keyword: 'type',\n keywordLocation: `${schemaLocation}/type`,\n error: `Instance type \"${instanceType}\" is invalid. Expected \"${$type}\".`\n });\n }\n\n if ($const !== undefined) {\n if (instanceType === 'object' || instanceType === 'array') {\n if (!deepCompareStrict(instance, $const)) {\n errors.push({\n instanceLocation,\n keyword: 'const',\n keywordLocation: `${schemaLocation}/const`,\n error: `Instance does not match ${JSON.stringify($const)}.`\n });\n }\n } else if (instance !== $const) {\n errors.push({\n instanceLocation,\n keyword: 'const',\n keywordLocation: `${schemaLocation}/const`,\n error: `Instance does not match ${JSON.stringify($const)}.`\n });\n }\n }\n\n if ($enum !== undefined) {\n if (instanceType === 'object' || instanceType === 'array') {\n if (!$enum.some(value => deepCompareStrict(instance, value))) {\n errors.push({\n instanceLocation,\n keyword: 'enum',\n keywordLocation: `${schemaLocation}/enum`,\n error: `Instance does not match any of ${JSON.stringify($enum)}.`\n });\n }\n } else if (!$enum.some(value => instance === value)) {\n errors.push({\n instanceLocation,\n keyword: 'enum',\n keywordLocation: `${schemaLocation}/enum`,\n error: `Instance does not match any of ${JSON.stringify($enum)}.`\n });\n }\n }\n\n if ($not !== undefined) {\n const keywordLocation = `${schemaLocation}/not`;\n const result = validate(\n instance,\n $not,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n instanceLocation,\n keywordLocation /*,\n evaluated*/\n );\n if (result.valid) {\n errors.push({\n instanceLocation,\n keyword: 'not',\n keywordLocation,\n error: 'Instance matched \"not\" schema.'\n });\n }\n }\n\n let subEvaluateds: Array<Evaluated> = [];\n\n if ($anyOf !== undefined) {\n const keywordLocation = `${schemaLocation}/anyOf`;\n const errorsLength = errors.length;\n let anyValid = false;\n for (const [i, subSchema] of $anyOf.entries()) {\n const subEvaluated: Evaluated = Object.create(evaluated);\n const result = validate(\n instance,\n subSchema,\n draft,\n lookup,\n shortCircuit,\n $recursiveAnchor === true ? recursiveAnchor : null,\n instanceLocation,\n `${keywordLocation}/${i}`,\n subEvaluated\n );\n errors.push(...result.errors);\n anyValid = anyValid || result.valid;\n if (result.valid) {\n subEvaluateds.push(subEvaluated);\n }\n }\n if (anyValid) {\n errors.length = errorsLength;\n } else {\n errors.splice(errorsLength, 0, {\n instanceLocation,\n keyword: 'anyOf',\n keywordLocation,\n error: 'Instance does not match any subschemas.'\n });\n }\n }\n\n if ($allOf !== undefined) {\n const keywordLocation = `${schemaLocation}/allOf`;\n const errorsLength = errors.length;\n let allValid = true;\n for (const [i, subSchema] of $allOf.entries()) {\n const subEvaluated: Evaluated = Object.create(evaluated);\n const result = validate(\n instance,\n subSchema,\n draft,\n lookup,\n shortCircuit,\n $recursiveAnchor === true ? recursiveAnchor : null,\n instanceLocation,\n `${keywordLocation}/${i}`,\n subEvaluated\n );\n errors.push(...result.errors);\n allValid = allValid && result.valid;\n if (result.valid) {\n subEvaluateds.push(subEvaluated);\n }\n }\n if (allValid) {\n errors.length = errorsLength;\n } else {\n errors.splice(errorsLength, 0, {\n instanceLocation,\n keyword: 'allOf',\n keywordLocation,\n error: `Instance does not match every subschema.`\n });\n }\n }\n\n if ($oneOf !== undefined) {\n const keywordLocation = `${schemaLocation}/oneOf`;\n const errorsLength = errors.length;\n const matches = $oneOf.filter((subSchema, i) => {\n const subEvaluated: Evaluated = Object.create(evaluated);\n const result = validate(\n instance,\n subSchema,\n draft,\n lookup,\n shortCircuit,\n $recursiveAnchor === true ? recursiveAnchor : null,\n instanceLocation,\n `${keywordLocation}/${i}`,\n subEvaluated\n );\n errors.push(...result.errors);\n if (result.valid) {\n subEvaluateds.push(subEvaluated);\n }\n return result.valid;\n }).length;\n if (matches === 1) {\n errors.length = errorsLength;\n } else {\n errors.splice(errorsLength, 0, {\n instanceLocation,\n keyword: 'oneOf',\n keywordLocation,\n error: `Instance does not match exactly one subschema (${matches} matches).`\n });\n }\n }\n\n if (instanceType === 'object' || instanceType === 'array') {\n Object.assign(evaluated, ...subEvaluateds);\n }\n\n if ($if !== undefined) {\n const keywordLocation = `${schemaLocation}/if`;\n const conditionResult = validate(\n instance,\n $if,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n instanceLocation,\n keywordLocation,\n evaluated\n ).valid;\n if (conditionResult) {\n if ($then !== undefined) {\n const thenResult = validate(\n instance,\n $then,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n instanceLocation,\n `${schemaLocation}/then`,\n evaluated\n );\n if (!thenResult.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: 'if',\n keywordLocation,\n error: `Instance does not match \"then\" schema.`\n },\n ...thenResult.errors\n );\n }\n }\n } else if ($else !== undefined) {\n const elseResult = validate(\n instance,\n $else,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n instanceLocation,\n `${schemaLocation}/else`,\n evaluated\n );\n if (!elseResult.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: 'if',\n keywordLocation,\n error: `Instance does not match \"else\" schema.`\n },\n ...elseResult.errors\n );\n }\n }\n }\n\n if (instanceType === 'object') {\n if ($required !== undefined) {\n for (const key of $required) {\n if (!hasOwnProperty(instance, key)) {\n errors.push({\n instanceLocation,\n keyword: 'required',\n keywordLocation: `${schemaLocation}/required`,\n error: `Instance does not have required property \"${key}\".`\n });\n }\n }\n }\n\n const keys = Object.keys(instance);\n\n if ($minProperties !== undefined && keys.length < $minProperties) {\n errors.push({\n instanceLocation,\n keyword: 'minProperties',\n keywordLocation: `${schemaLocation}/minProperties`,\n error: `Instance does not have at least ${$minProperties} properties.`\n });\n }\n\n if ($maxProperties !== undefined && keys.length > $maxProperties) {\n errors.push({\n instanceLocation,\n keyword: 'maxProperties',\n keywordLocation: `${schemaLocation}/maxProperties`,\n error: `Instance does not have at least ${$maxProperties} properties.`\n });\n }\n\n if ($propertyNames !== undefined) {\n const keywordLocation = `${schemaLocation}/propertyNames`;\n for (const key in instance) {\n const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n const result = validate(\n key,\n $propertyNames,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n subInstancePointer,\n keywordLocation\n );\n if (!result.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: 'propertyNames',\n keywordLocation,\n error: `Property name \"${key}\" does not match schema.`\n },\n ...result.errors\n );\n }\n }\n }\n\n if ($dependentRequired !== undefined) {\n const keywordLocation = `${schemaLocation}/dependantRequired`;\n for (const key in $dependentRequired) {\n if (hasOwnProperty(instance, key)) {\n const required = $dependentRequired[key] as string[];\n for (const dependantKey of required) {\n if (!hasOwnProperty(instance, dependantKey)) {\n errors.push({\n instanceLocation,\n keyword: 'dependentRequired',\n keywordLocation,\n error: `Instance has \"${key}\" but does not have \"${dependantKey}\".`\n });\n }\n }\n }\n }\n }\n\n if ($dependentSchemas !== undefined) {\n for (const [key, dependentSchema] of Object.entries($dependentSchemas)) {\n const keywordLocation = `${schemaLocation}/dependentSchemas`;\n if (hasOwnProperty(instance, key)) {\n const result = validate(\n instance,\n dependentSchema,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n instanceLocation,\n `${keywordLocation}/${encodePointer(key)}`,\n evaluated\n );\n if (!result.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: 'dependentSchemas',\n keywordLocation,\n error: `Instance has \"${key}\" but does not match dependant schema.`\n },\n ...result.errors\n );\n }\n }\n }\n }\n\n if ($dependencies !== undefined) {\n const keywordLocation = `${schemaLocation}/dependencies`;\n for (const key in $dependencies) {\n if (hasOwnProperty(instance, key)) {\n const propsOrSchema = $dependencies[key] as Schema | string[];\n if (Array.isArray(propsOrSchema)) {\n for (const dependantKey of propsOrSchema) {\n if (!hasOwnProperty(instance, dependantKey)) {\n errors.push({\n instanceLocation,\n keyword: 'dependencies',\n keywordLocation,\n error: `Instance has \"${key}\" but does not have \"${dependantKey}\".`\n });\n }\n }\n } else {\n const result = validate(\n instance,\n propsOrSchema,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n instanceLocation,\n `${keywordLocation}/${encodePointer(key)}`\n );\n if (!result.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: 'dependencies',\n keywordLocation,\n error: `Instance has \"${key}\" but does not match dependant schema.`\n },\n ...result.errors\n );\n }\n }\n }\n }\n }\n\n const thisEvaluated = Object.create(null);\n\n let stop = false;\n\n if ($properties !== undefined) {\n const keywordLocation = `${schemaLocation}/properties`;\n for (const [key, propertySchema] of Object.entries($properties)) {\n if (!hasOwnProperty(instance, key)) {\n continue;\n }\n const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n const result = validate(\n instance[key],\n propertySchema,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n subInstancePointer,\n `${keywordLocation}/${encodePointer(key)}`\n );\n // Covered by \"properties\" whether or not it is valid, so \"additionalProperties\"\n // must not apply to it. Only a valid result is an annotation for \"unevaluatedProperties\".\n thisEvaluated[key] = true;\n if (result.valid) {\n evaluated[key] = true;\n } else {\n stop = shortCircuit;\n errors.push(\n {\n instanceLocation,\n keyword: 'properties',\n keywordLocation,\n error: `Property \"${key}\" does not match schema.`\n },\n ...result.errors\n );\n if (stop) break;\n }\n }\n }\n\n if (!stop && $patternProperties !== undefined) {\n const keywordLocation = `${schemaLocation}/patternProperties`;\n for (const [pattern, subSchema] of Object.entries($patternProperties)) {\n const regex = new RegExp(pattern, 'u');\n for (const key in instance) {\n if (!regex.test(key)) {\n continue;\n }\n const subInstancePointer = `${instanceLocation}/${encodePointer(\n key\n )}`;\n const result = validate(\n instance[key],\n subSchema,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n subInstancePointer,\n `${keywordLocation}/${encodePointer(pattern)}`\n );\n // Covered by \"patternProperties\" whether or not it is valid; see \"properties\" above.\n thisEvaluated[key] = true;\n if (result.valid) {\n evaluated[key] = true;\n } else {\n stop = shortCircuit;\n errors.push(\n {\n instanceLocation,\n keyword: 'patternProperties',\n keywordLocation,\n error: `Property \"${key}\" matches pattern \"${pattern}\" but does not match associated schema.`\n },\n ...result.errors\n );\n }\n }\n }\n }\n\n if (!stop && $additionalProperties !== undefined) {\n const keywordLocation = `${schemaLocation}/additionalProperties`;\n for (const key in instance) {\n if (thisEvaluated[key]) {\n continue;\n }\n const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n const result = validate(\n instance[key],\n $additionalProperties,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n subInstancePointer,\n keywordLocation\n );\n if (result.valid) {\n evaluated[key] = true;\n } else {\n stop = shortCircuit;\n errors.push(\n {\n instanceLocation,\n keyword: 'additionalProperties',\n keywordLocation,\n error: `Property \"${key}\" does not match additional properties schema.`\n },\n ...result.errors\n );\n }\n }\n } else if (!stop && $unevaluatedProperties !== undefined) {\n const keywordLocation = `${schemaLocation}/unevaluatedProperties`;\n for (const key in instance) {\n if (!evaluated[key]) {\n const subInstancePointer = `${instanceLocation}/${encodePointer(\n key\n )}`;\n const result = validate(\n instance[key],\n $unevaluatedProperties,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n subInstancePointer,\n keywordLocation\n );\n if (result.valid) {\n evaluated[key] = true;\n } else {\n errors.push(\n {\n instanceLocation,\n keyword: 'unevaluatedProperties',\n keywordLocation,\n error: `Property \"${key}\" does not match unevaluated properties schema.`\n },\n ...result.errors\n );\n }\n }\n }\n }\n } else if (instanceType === 'array') {\n if ($maxItems !== undefined && instance.length > $maxItems) {\n errors.push({\n instanceLocation,\n keyword: 'maxItems',\n keywordLocation: `${schemaLocation}/maxItems`,\n error: `Array has too many items (${instance.length} > ${$maxItems}).`\n });\n }\n\n if ($minItems !== undefined && instance.length < $minItems) {\n errors.push({\n instanceLocation,\n keyword: 'minItems',\n keywordLocation: `${schemaLocation}/minItems`,\n error: `Array has too few items (${instance.length} < ${$minItems}).`\n });\n }\n\n const length: number = instance.length;\n let i = 0;\n let stop = false;\n\n if ($prefixItems !== undefined) {\n const keywordLocation = `${schemaLocation}/prefixItems`;\n const length2 = Math.min($prefixItems.length, length);\n for (; i < length2; i++) {\n const result = validate(\n instance[i],\n $prefixItems[i]!,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n `${instanceLocation}/${i}`,\n `${keywordLocation}/${i}`\n );\n evaluated[i] = true;\n if (!result.valid) {\n stop = shortCircuit;\n errors.push(\n {\n instanceLocation,\n keyword: 'prefixItems',\n keywordLocation,\n error: `Items did not match schema.`\n },\n ...result.errors\n );\n if (stop) break;\n }\n }\n }\n\n if ($items !== undefined) {\n const keywordLocation = `${schemaLocation}/items`;\n if (Array.isArray($items)) {\n const length2 = Math.min($items.length, length);\n for (; i < length2; i++) {\n const result = validate(\n instance[i],\n $items[i]!,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n `${instanceLocation}/${i}`,\n `${keywordLocation}/${i}`\n );\n evaluated[i] = true;\n if (!result.valid) {\n stop = shortCircuit;\n errors.push(\n {\n instanceLocation,\n keyword: 'items',\n keywordLocation,\n error: `Items did not match schema.`\n },\n ...result.errors\n );\n if (stop) break;\n }\n }\n } else {\n for (; i < length; i++) {\n const result = validate(\n instance[i],\n $items,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n `${instanceLocation}/${i}`,\n keywordLocation\n );\n evaluated[i] = true;\n if (!result.valid) {\n stop = shortCircuit;\n errors.push(\n {\n instanceLocation,\n keyword: 'items',\n keywordLocation,\n error: `Items did not match schema.`\n },\n ...result.errors\n );\n if (stop) break;\n }\n }\n }\n\n if (!stop && $additionalItems !== undefined) {\n const keywordLocation = `${schemaLocation}/additionalItems`;\n for (; i < length; i++) {\n const result = validate(\n instance[i],\n $additionalItems,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n `${instanceLocation}/${i}`,\n keywordLocation\n );\n evaluated[i] = true;\n if (!result.valid) {\n stop = shortCircuit;\n errors.push(\n {\n instanceLocation,\n keyword: 'additionalItems',\n keywordLocation,\n error: `Items did not match additional items schema.`\n },\n ...result.errors\n );\n }\n }\n }\n }\n\n if ($contains !== undefined) {\n if (length === 0 && $minContains === undefined) {\n errors.push({\n instanceLocation,\n keyword: 'contains',\n keywordLocation: `${schemaLocation}/contains`,\n error: `Array is empty. It must contain at least one item matching the schema.`\n });\n } else if ($minContains !== undefined && length < $minContains) {\n errors.push({\n instanceLocation,\n keyword: 'minContains',\n keywordLocation: `${schemaLocation}/minContains`,\n error: `Array has less items (${length}) than minContains (${$minContains}).`\n });\n } else {\n const keywordLocation = `${schemaLocation}/contains`;\n const errorsLength = errors.length;\n let contained = 0;\n for (let j = 0; j < length; j++) {\n const result = validate(\n instance[j],\n $contains,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n `${instanceLocation}/${j}`,\n keywordLocation\n );\n if (result.valid) {\n evaluated[j] = true;\n contained++;\n } else {\n errors.push(...result.errors);\n }\n }\n\n if (contained >= ($minContains || 0)) {\n errors.length = errorsLength;\n }\n\n if ($minContains === undefined && contained === 0) {\n errors.splice(errorsLength, 0, {\n instanceLocation,\n keyword: 'contains',\n keywordLocation,\n error: `Array does not contain item matching schema.`\n });\n } else if ($minContains !== undefined && contained < $minContains) {\n errors.push({\n instanceLocation,\n keyword: 'minContains',\n keywordLocation: `${schemaLocation}/minContains`,\n error: `Array must contain at least ${$minContains} items matching schema. Only ${contained} items were found.`\n });\n } else if ($maxContains !== undefined && contained > $maxContains) {\n errors.push({\n instanceLocation,\n keyword: 'maxContains',\n keywordLocation: `${schemaLocation}/maxContains`,\n error: `Array may contain at most ${$maxContains} items matching schema. ${contained} items were found.`\n });\n }\n }\n }\n\n if (!stop && $unevaluatedItems !== undefined) {\n const keywordLocation = `${schemaLocation}/unevaluatedItems`;\n for (i; i < length; i++) {\n if (evaluated[i]) {\n continue;\n }\n const result = validate(\n instance[i],\n $unevaluatedItems,\n draft,\n lookup,\n shortCircuit,\n recursiveAnchor,\n `${instanceLocation}/${i}`,\n keywordLocation\n );\n evaluated[i] = true;\n if (!result.valid) {\n errors.push(\n {\n instanceLocation,\n keyword: 'unevaluatedItems',\n keywordLocation,\n error: `Items did not match unevaluated items schema.`\n },\n ...result.errors\n );\n }\n }\n }\n\n if ($uniqueItems) {\n for (let j = 0; j < length; j++) {\n const a = instance[j];\n const ao = typeof a === 'object' && a !== null;\n for (let k = 0; k < length; k++) {\n if (j === k) {\n continue;\n }\n const b = instance[k];\n const bo = typeof b === 'object' && b !== null;\n if (a === b || (ao && bo && deepCompareStrict(a, b))) {\n errors.push({\n instanceLocation,\n keyword: 'uniqueItems',\n keywordLocation: `${schemaLocation}/uniqueItems`,\n error: `Duplicate items at indexes ${j} and ${k}.`\n });\n j = Number.MAX_SAFE_INTEGER;\n k = Number.MAX_SAFE_INTEGER;\n }\n }\n }\n }\n } else if (instanceType === 'number') {\n if (draft === '4') {\n if (\n $minimum !== undefined &&\n (($exclusiveMinimum === true && instance <= $minimum) ||\n instance < $minimum)\n ) {\n errors.push({\n instanceLocation,\n keyword: 'minimum',\n keywordLocation: `${schemaLocation}/minimum`,\n error: `${instance} is less than ${\n $exclusiveMinimum ? 'or equal to ' : ''\n } ${$minimum}.`\n });\n }\n if (\n $maximum !== undefined &&\n (($exclusiveMaximum === true && instance >= $maximum) ||\n instance > $maximum)\n ) {\n errors.push({\n instanceLocation,\n keyword: 'maximum',\n keywordLocation: `${schemaLocation}/maximum`,\n error: `${instance} is greater than ${\n $exclusiveMaximum ? 'or equal to ' : ''\n } ${$maximum}.`\n });\n }\n } else {\n if ($minimum !== undefined && instance < $minimum) {\n errors.push({\n instanceLocation,\n keyword: 'minimum',\n keywordLocation: `${schemaLocation}/minimum`,\n error: `${instance} is less than ${$minimum}.`\n });\n }\n if ($maximum !== undefined && instance > $maximum) {\n errors.push({\n instanceLocation,\n keyword: 'maximum',\n keywordLocation: `${schemaLocation}/maximum`,\n error: `${instance} is greater than ${$maximum}.`\n });\n }\n if ($exclusiveMinimum !== undefined && instance <= $exclusiveMinimum) {\n errors.push({\n instanceLocation,\n keyword: 'exclusiveMinimum',\n keywordLocation: `${schemaLocation}/exclusiveMinimum`,\n error: `${instance} is less than ${$exclusiveMinimum}.`\n });\n }\n if ($exclusiveMaximum !== undefined && instance >= $exclusiveMaximum) {\n errors.push({\n instanceLocation,\n keyword: 'exclusiveMaximum',\n keywordLocation: `${schemaLocation}/exclusiveMaximum`,\n error: `${instance} is greater than or equal to ${$exclusiveMaximum}.`\n });\n }\n }\n if ($multipleOf !== undefined) {\n if (!isMultipleOf(instance, $multipleOf)) {\n errors.push({\n instanceLocation,\n keyword: 'multipleOf',\n keywordLocation: `${schemaLocation}/multipleOf`,\n error: `${instance} is not a multiple of ${$multipleOf}.`\n });\n }\n }\n } else if (instanceType === 'string') {\n const length =\n $minLength === undefined && $maxLength === undefined\n ? 0\n : ucs2length(instance);\n if ($minLength !== undefined && length < $minLength) {\n errors.push({\n instanceLocation,\n keyword: 'minLength',\n keywordLocation: `${schemaLocation}/minLength`,\n error: `String is too short (${length} < ${$minLength}).`\n });\n }\n if ($maxLength !== undefined && length > $maxLength) {\n errors.push({\n instanceLocation,\n keyword: 'maxLength',\n keywordLocation: `${schemaLocation}/maxLength`,\n error: `String is too long (${length} > ${$maxLength}).`\n });\n }\n if ($pattern !== undefined && !new RegExp($pattern, 'u').test(instance)) {\n errors.push({\n instanceLocation,\n keyword: 'pattern',\n keywordLocation: `${schemaLocation}/pattern`,\n error: `String does not match pattern.`\n });\n }\n if (\n $format !== undefined &&\n format[$format] &&\n !format[$format](instance)\n ) {\n errors.push({\n instanceLocation,\n keyword: 'format',\n keywordLocation: `${schemaLocation}/format`,\n error: `String does not match format \"${$format}\".`\n });\n }\n }\n\n return { valid: errors.length === 0, errors };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnE,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAL/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAExD,YACmB,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,GAAE,WAAuB,EAC9B,YAAY,UAAO,EAGrC;IAEM,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,CAQ/C;IAEM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAKlD;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+CAAyC;AAEzC;IAIqB,MAAM;IACN,KAAK;IACL,YAAY;IALd,MAAM,CAAiC;IAExD,YACmB,MAAwB,EACxB,KAAK,GAAgB,SAAS,EAC9B,YAAY,GAAG,IAAI;sBAFnB,MAAM;qBACN,KAAK;4BACL,YAAY;QAE7B,IAAI,CAAC,MAAM,GAAG,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,QAAQ,CAAC,QAAa;QAC3B,OAAO,IAAA,sBAAQ,EACb,QAAQ,EACR,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAEM,SAAS,CAAC,MAAc,EAAE,EAAW;QAC1C,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAClC,CAAC;QACD,IAAA,4BAAW,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACF","sourcesContent":["import { dereference } from './dereference.js';\nimport { Schema, SchemaDraft, ValidationResult } from './types.js';\nimport { validate } from './validate.js';\n\nexport class Validator {\n private readonly lookup: ReturnType<typeof dereference>;\n\n constructor(\n private readonly schema: Schema | boolean,\n private readonly draft: SchemaDraft = '2019-09',\n private readonly shortCircuit = true\n ) {\n this.lookup = dereference(schema);\n }\n\n public validate(instance: any): ValidationResult {\n return validate(\n instance,\n this.schema,\n this.draft,\n this.lookup,\n this.shortCircuit\n );\n }\n\n public addSchema(schema: Schema, id?: string): void {\n if (id) {\n schema = { ...schema, $id: id };\n }\n dereference(schema, this.lookup);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-compare-strict.d.ts","sourceRoot":"","sources":["../../src/deep-compare-strict.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CA2CzD"}
|
|
@@ -3,10 +3,12 @@ export function deepCompareStrict(a, b) {
|
|
|
3
3
|
if (typeofa !== typeof b) {
|
|
4
4
|
return false;
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const aIsArray = Array.isArray(a);
|
|
7
|
+
const bIsArray = Array.isArray(b);
|
|
8
|
+
if (aIsArray !== bIsArray) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if (aIsArray) {
|
|
10
12
|
const length = a.length;
|
|
11
13
|
if (length !== b.length) {
|
|
12
14
|
return false;
|
|
@@ -29,6 +31,9 @@ export function deepCompareStrict(a, b) {
|
|
|
29
31
|
return false;
|
|
30
32
|
}
|
|
31
33
|
for (const k of aKeys) {
|
|
34
|
+
if (!Object.prototype.hasOwnProperty.call(b, k)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
32
37
|
if (!deepCompareStrict(a[k], b[k])) {
|
|
33
38
|
return false;
|
|
34
39
|
}
|
|
@@ -37,3 +42,4 @@ export function deepCompareStrict(a, b) {
|
|
|
37
42
|
}
|
|
38
43
|
return a === b;
|
|
39
44
|
}
|
|
45
|
+
//# sourceMappingURL=deep-compare-strict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-compare-strict.js","sourceRoot":"","sources":["../../src/deep-compare-strict.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,CAAM,EAAE,CAAM;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC;IACzB,IAAI,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACxB,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC","sourcesContent":["export function deepCompareStrict(a: any, b: any): boolean {\n const typeofa = typeof a;\n if (typeofa !== typeof b) {\n return false;\n }\n const aIsArray = Array.isArray(a);\n const bIsArray = Array.isArray(b);\n if (aIsArray !== bIsArray) {\n return false;\n }\n if (aIsArray) {\n const length = a.length;\n if (length !== b.length) {\n return false;\n }\n for (let i = 0; i < length; i++) {\n if (!deepCompareStrict(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (typeofa === 'object') {\n if (!a || !b) {\n return a === b;\n }\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const length = aKeys.length;\n if (length !== bKeys.length) {\n return false;\n }\n for (const k of aKeys) {\n if (!Object.prototype.hasOwnProperty.call(b, k)) {\n return false;\n }\n if (!deepCompareStrict(a[k], b[k])) {\n return false;\n }\n }\n return true;\n }\n return a === b;\n}\n"]}
|
|
@@ -5,3 +5,4 @@ export declare const schemaMapKeyword: Record<string, boolean>;
|
|
|
5
5
|
export declare const ignoredKeyword: Record<string, boolean>;
|
|
6
6
|
export declare let initialBaseURI: URL;
|
|
7
7
|
export declare function dereference(schema: Schema | boolean, lookup?: Record<string, Schema | boolean>, baseURI?: URL, basePointer?: string): Record<string, Schema | boolean>;
|
|
8
|
+
//# sourceMappingURL=dereference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dereference.d.ts","sourceRoot":"","sources":["../../src/dereference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAYjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAMtD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAMpD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA4BlD,CAAC;AAOF,eAAO,IAAI,cAAc,EAAE,GAOiB,CAAC;AAE7C,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAuB,EAC9D,OAAO,GAAE,GAAoB,EAC7B,WAAW,SAAK,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CA+FlC"}
|
package/dist/esm/dereference.js
CHANGED
|
@@ -38,6 +38,7 @@ export const ignoredKeyword = {
|
|
|
38
38
|
enum: true,
|
|
39
39
|
const: true,
|
|
40
40
|
required: true,
|
|
41
|
+
dependentRequired: true,
|
|
41
42
|
type: true,
|
|
42
43
|
maximum: true,
|
|
43
44
|
minimum: true,
|
|
@@ -62,7 +63,7 @@ export let initialBaseURI = typeof self !== 'undefined' &&
|
|
|
62
63
|
: new URL('https://github.com/cfworker');
|
|
63
64
|
export function dereference(schema, lookup = Object.create(null), baseURI = initialBaseURI, basePointer = '') {
|
|
64
65
|
if (schema && typeof schema === 'object' && !Array.isArray(schema)) {
|
|
65
|
-
const id = schema.$id || schema
|
|
66
|
+
const id = schema.$id || schema['id'];
|
|
66
67
|
if (id) {
|
|
67
68
|
const url = new URL(id, baseURI.href);
|
|
68
69
|
if (url.hash.length > 1) {
|
|
@@ -83,7 +84,7 @@ export function dereference(schema, lookup = Object.create(null), baseURI = init
|
|
|
83
84
|
return lookup;
|
|
84
85
|
}
|
|
85
86
|
const schemaURI = baseURI.href + (basePointer ? '#' + basePointer : '');
|
|
86
|
-
if (lookup[schemaURI] !== undefined) {
|
|
87
|
+
if (lookup[schemaURI] !== undefined && lookup[schemaURI] !== schema) {
|
|
87
88
|
throw new Error(`Duplicate schema URI "${schemaURI}".`);
|
|
88
89
|
}
|
|
89
90
|
lookup[schemaURI] = schema;
|
|
@@ -141,3 +142,4 @@ export function dereference(schema, lookup = Object.create(null), baseURI = init
|
|
|
141
142
|
}
|
|
142
143
|
return lookup;
|
|
143
144
|
}
|
|
145
|
+
//# sourceMappingURL=dereference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dereference.js","sourceRoot":"","sources":["../../src/dereference.ts"],"names":[],"mappings":"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","sourcesContent":["import { encodePointer } from './pointer.js';\nimport { Schema } from './types.js';\n\nexport const schemaKeyword: Record<string, boolean> = {\n additionalItems: true,\n unevaluatedItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n unevaluatedProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\nexport const schemaArrayKeyword: Record<string, boolean> = {\n prefixItems: true,\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\nexport const schemaMapKeyword: Record<string, boolean> = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependentSchemas: true\n};\n\nexport const ignoredKeyword: Record<string, boolean> = {\n id: true,\n $id: true,\n $ref: true,\n $schema: true,\n $anchor: true,\n $vocabulary: true,\n $comment: true,\n default: true,\n enum: true,\n const: true,\n required: true,\n dependentRequired: true,\n type: 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/**\n * Default base URI for schemas without an $id.\n * https://json-schema.org/draft/2019-09/json-schema-core.html#initial-base\n * https://tools.ietf.org/html/rfc3986#section-5.1\n */\nexport let initialBaseURI: URL =\n // @ts-ignore\n typeof self !== 'undefined' &&\n self.location &&\n self.location.origin !== 'null'\n ? //@ts-ignore\n new URL(self.location.origin + self.location.pathname + location.search)\n : new URL('https://github.com/cfworker');\n\nexport function dereference(\n schema: Schema | boolean,\n lookup: Record<string, Schema | boolean> = Object.create(null),\n baseURI: URL = initialBaseURI,\n basePointer = ''\n): Record<string, Schema | boolean> {\n if (schema && typeof schema === 'object' && !Array.isArray(schema)) {\n const id: string = schema.$id || schema['id'];\n if (id) {\n const url = new URL(id, baseURI.href);\n if (url.hash.length > 1) {\n lookup[url.href] = schema;\n } else {\n url.hash = ''; // normalize hash https://url.spec.whatwg.org/#dom-url-hash\n if (basePointer === '') {\n baseURI = url;\n } else {\n dereference(schema, lookup, baseURI);\n }\n }\n }\n } else if (schema !== true && schema !== false) {\n return lookup;\n }\n\n // compute the schema's URI and add it to the mapping.\n const schemaURI = baseURI.href + (basePointer ? '#' + basePointer : '');\n if (lookup[schemaURI] !== undefined && lookup[schemaURI] !== schema) {\n throw new Error(`Duplicate schema URI \"${schemaURI}\".`);\n }\n lookup[schemaURI] = schema;\n\n // exit early if this is a boolean schema.\n if (schema === true || schema === false) {\n return lookup;\n }\n\n // set the schema's absolute URI.\n if (schema.__absolute_uri__ === undefined) {\n Object.defineProperty(schema, '__absolute_uri__', {\n enumerable: false,\n value: schemaURI\n });\n }\n\n // if a $ref is found, resolve it's absolute URI.\n if (schema.$ref && schema.__absolute_ref__ === undefined) {\n const url = new URL(schema.$ref, baseURI.href);\n url.hash = url.hash; // normalize hash https://url.spec.whatwg.org/#dom-url-hash\n Object.defineProperty(schema, '__absolute_ref__', {\n enumerable: false,\n value: url.href\n });\n }\n\n // if a $recursiveRef is found, resolve it's absolute URI.\n if (schema.$recursiveRef && schema.__absolute_recursive_ref__ === undefined) {\n const url = new URL(schema.$recursiveRef, baseURI.href);\n url.hash = url.hash; // normalize hash https://url.spec.whatwg.org/#dom-url-hash\n Object.defineProperty(schema, '__absolute_recursive_ref__', {\n enumerable: false,\n value: url.href\n });\n }\n\n // if an $anchor is found, compute it's URI and add it to the mapping.\n if (schema.$anchor) {\n const url = new URL('#' + schema.$anchor, baseURI.href);\n lookup[url.href] = schema;\n }\n\n // process subschemas.\n for (let key in schema) {\n if (ignoredKeyword[key]) {\n continue;\n }\n const keyBase = `${basePointer}/${encodePointer(key)}`;\n const subSchema = schema[key];\n if (Array.isArray(subSchema)) {\n if (schemaArrayKeyword[key]) {\n const length = subSchema.length;\n for (let i = 0; i < length; i++) {\n dereference(subSchema[i], lookup, baseURI, `${keyBase}/${i}`);\n }\n }\n } else if (schemaMapKeyword[key]) {\n for (let subKey in subSchema) {\n dereference(\n subSchema[subKey],\n lookup,\n baseURI,\n `${keyBase}/${encodePointer(subKey)}`\n );\n }\n } else {\n dereference(subSchema, lookup, baseURI, keyBase);\n }\n }\n\n return lookup;\n}\n\n// schema identification examples\n// https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.appendix.A\n// $ref delegation\n// https://github.com/json-schema-org/json-schema-spec/issues/514\n// output format\n// https://json-schema.org/draft/2019-09/json-schema-core.html#output\n// JSON pointer\n// https://tools.ietf.org/html/rfc6901\n// JSON relative pointer\n// https://tools.ietf.org/html/draft-handrews-relative-json-pointer-01\n"]}
|
package/dist/esm/format.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAiFA,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAkBzD,CAAC"}
|
package/dist/esm/format.js
CHANGED
|
@@ -64,21 +64,33 @@ function date(str) {
|
|
|
64
64
|
const matches = str.match(DATE);
|
|
65
65
|
if (!matches)
|
|
66
66
|
return false;
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
const
|
|
67
|
+
const yearPart = matches[1];
|
|
68
|
+
const monthPart = matches[2];
|
|
69
|
+
const dayPart = matches[3];
|
|
70
|
+
if (!yearPart || !monthPart || !dayPart)
|
|
71
|
+
return false;
|
|
72
|
+
const year = +yearPart;
|
|
73
|
+
const month = +monthPart;
|
|
74
|
+
const day = +dayPart;
|
|
75
|
+
const maxDay = month == 2 && isLeapYear(year) ? 29 : DAYS[month];
|
|
70
76
|
return (month >= 1 &&
|
|
71
77
|
month <= 12 &&
|
|
72
78
|
day >= 1 &&
|
|
73
|
-
|
|
79
|
+
maxDay !== undefined &&
|
|
80
|
+
day <= maxDay);
|
|
74
81
|
}
|
|
75
82
|
function time(full, str) {
|
|
76
83
|
const matches = str.match(TIME);
|
|
77
84
|
if (!matches)
|
|
78
85
|
return false;
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
const
|
|
86
|
+
const hourPart = matches[1];
|
|
87
|
+
const minutePart = matches[2];
|
|
88
|
+
const secondPart = matches[3];
|
|
89
|
+
if (!hourPart || !minutePart || !secondPart)
|
|
90
|
+
return false;
|
|
91
|
+
const hour = +hourPart;
|
|
92
|
+
const minute = +minutePart;
|
|
93
|
+
const second = +secondPart;
|
|
82
94
|
const timeZone = !!matches[5];
|
|
83
95
|
return (((hour <= 23 && minute <= 59 && second <= 59) ||
|
|
84
96
|
(hour == 23 && minute == 59 && second == 60)) &&
|
|
@@ -86,8 +98,12 @@ function time(full, str) {
|
|
|
86
98
|
}
|
|
87
99
|
const DATE_TIME_SEPARATOR = /t|\s/i;
|
|
88
100
|
function date_time(str) {
|
|
89
|
-
const
|
|
90
|
-
return
|
|
101
|
+
const [datePart, timePart, extra] = str.split(DATE_TIME_SEPARATOR);
|
|
102
|
+
return (datePart !== undefined &&
|
|
103
|
+
timePart !== undefined &&
|
|
104
|
+
extra === undefined &&
|
|
105
|
+
date(datePart) &&
|
|
106
|
+
time(true, timePart));
|
|
91
107
|
}
|
|
92
108
|
const NOT_URI_FRAGMENT = /\/|:/;
|
|
93
109
|
const URI_PATTERN = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
@@ -106,3 +122,4 @@ function regex(str) {
|
|
|
106
122
|
return false;
|
|
107
123
|
}
|
|
108
124
|
}
|
|
125
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"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","sourcesContent":["// based on https://github.com/epoberezkin/ajv/blob/master/lib/compile/formats.js\n\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nconst HOSTNAME =\n /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\n// const URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nconst URIREF =\n /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nconst URITEMPLATE =\n /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\nconst URL_ =\n /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nconst UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nconst JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nconst JSON_POINTER_URI_FRAGMENT =\n /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nconst RELATIVE_JSON_POINTER =\n /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n// // date: http://tools.ietf.org/html/rfc3339#section-5.6\n// const FASTDATE = /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/;\n// // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n// const FASTTIME =\n// /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\n// const FASTDATETIME =\n// /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i;\n// // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n// // const FASTURI = /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i;\n// const FASTURIREFERENCE =\n// /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i;\n\n// https://github.com/ExodusMovement/schemasafe/blob/master/src/formats.js\nconst EMAIL = (input: string) => {\n if (input[0] === '\"') return false;\n const [name, host, ...rest] = input.split('@');\n if (\n !name ||\n !host ||\n rest.length !== 0 ||\n name.length > 64 ||\n host.length > 253\n )\n return false;\n if (name[0] === '.' || name.endsWith('.') || name.includes('..'))\n return false;\n if (\n !/^[a-z0-9.-]+$/i.test(host) ||\n !/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(name)\n )\n return false;\n return host\n .split('.')\n .every(part => /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(part));\n};\n\n// optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\nconst IPV4 =\n /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\n// optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\nconst IPV6 =\n /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i;\n\n// https://github.com/ExodusMovement/schemasafe/blob/master/src/formats.js\nconst DURATION = (input: string) =>\n input.length > 1 &&\n input.length < 80 &&\n (/^P\\d+([.,]\\d+)?W$/.test(input) ||\n (/^P[\\dYMDTHS]*(\\d[.,]\\d+)?[YMDHS]$/.test(input) &&\n /^P([.,\\d]+Y)?([.,\\d]+M)?([.,\\d]+D)?(T([.,\\d]+H)?([.,\\d]+M)?([.,\\d]+S)?)?$/.test(\n input\n )));\n\nfunction bind(r: RegExp) {\n return r.test.bind(r);\n}\n\nexport const format: Record<string, (s: string) => boolean> = {\n date,\n time: time.bind(undefined, false),\n 'date-time': date_time,\n duration: DURATION,\n uri,\n 'uri-reference': bind(URIREF),\n 'uri-template': bind(URITEMPLATE),\n url: bind(URL_),\n email: EMAIL,\n hostname: bind(HOSTNAME),\n ipv4: bind(IPV4),\n ipv6: bind(IPV6),\n regex: regex,\n uuid: bind(UUID),\n 'json-pointer': bind(JSON_POINTER),\n 'json-pointer-uri-fragment': bind(JSON_POINTER_URI_FRAGMENT),\n 'relative-json-pointer': bind(RELATIVE_JSON_POINTER)\n};\n\nfunction isLeapYear(year: number) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nfunction date(str: string) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = str.match(DATE);\n if (!matches) return false;\n\n const yearPart = matches[1];\n const monthPart = matches[2];\n const dayPart = matches[3];\n if (!yearPart || !monthPart || !dayPart) return false;\n\n const year = +yearPart;\n const month = +monthPart;\n const day = +dayPart;\n const maxDay = month == 2 && isLeapYear(year) ? 29 : DAYS[month];\n\n return (\n month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n maxDay !== undefined &&\n day <= maxDay\n );\n}\n\nfunction time(full: boolean, str: string) {\n const matches = str.match(TIME);\n if (!matches) return false;\n\n const hourPart = matches[1];\n const minutePart = matches[2];\n const secondPart = matches[3];\n if (!hourPart || !minutePart || !secondPart) return false;\n\n const hour = +hourPart;\n const minute = +minutePart;\n const second = +secondPart;\n const timeZone = !!matches[5];\n return (\n ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone)\n );\n}\n\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str: string) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const [datePart, timePart, extra] = str.split(DATE_TIME_SEPARATOR);\n return (\n datePart !== undefined &&\n timePart !== undefined &&\n extra === undefined &&\n date(datePart) &&\n time(true, timePart)\n );\n}\n\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI_PATTERN =\n /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n\nfunction uri(str: string): boolean {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI_PATTERN.test(str);\n}\n\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str: string) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str, 'u');\n return true;\n } catch (e) {\n return false;\n }\n}\n"]}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './deep-compare-strict.js';\nexport * from './dereference.js';\nexport * from './format.js';\nexport * from './pointer.js';\nexport * from './types.js';\nexport * from './ucs2-length.js';\nexport * from './validate.js';\nexport * from './validator.js';\n"]}
|
package/dist/esm/package.json
CHANGED
package/dist/esm/pointer.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../src/pointer.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C"}
|
package/dist/esm/pointer.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer.js","sourceRoot":"","sources":["../../src/pointer.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,OAAO,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC","sourcesContent":["export function encodePointer(p: string): string {\n return encodeURI(escapePointer(p));\n}\n\nexport function escapePointer(p: string): string {\n return p.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n"]}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAkB,YAIjB;AAJD,WAAkB,YAAY;IAC5B,+CAAa,CAAA;IACb,iDAAc,CAAA;IACd,uDAAiB,CAAA;AACnB,CAAC,EAJiB,YAAY,KAAZ,YAAY,QAI7B","sourcesContent":["export type SchemaDraft = '4' | '7' | '2019-09' | '2020-12';\n\nexport const enum OutputFormat {\n Flag = 1 << 0,\n Basic = 1 << 1,\n Detailed = 1 << 2\n}\n\nexport type InstanceType =\n 'array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string';\n\nexport interface Schema {\n $id?: string;\n $anchor?: string;\n $recursiveAnchor?: boolean;\n $ref?: string;\n $recursiveRef?: '#';\n $schema?: string;\n $comment?: string;\n $defs?: any;\n $vocabulary?: Record<string, boolean>;\n\n type?: InstanceType | InstanceType[];\n const?: any;\n enum?: any[];\n required?: string[];\n not?: Schema;\n anyOf?: Schema[];\n allOf?: Schema[];\n oneOf?: Schema[];\n if?: Schema;\n then?: Schema;\n else?: Schema;\n\n format?: string;\n\n properties?: Record<string | number, Schema | boolean>;\n patternProperties?: Record<string, Schema | boolean>;\n additionalProperties?: Schema | boolean;\n unevaluatedProperties?: Schema | boolean;\n minProperties?: number;\n maxProperties?: number;\n propertyNames?: Schema;\n dependentRequired?: Record<string, string[]>;\n dependentSchemas?: Record<string, Schema>;\n dependencies?: Record<string, Schema | string[]>;\n\n prefixItems?: Array<Schema | boolean>;\n items?: Schema | boolean | Array<Schema | boolean>;\n additionalItems?: Schema | boolean;\n unevaluatedItems?: Schema | boolean;\n contains?: Schema | boolean;\n minContains?: number;\n maxContains?: number;\n minItems?: number;\n maxItems?: number;\n uniqueItems?: boolean;\n\n minimum?: number;\n maximum?: number;\n exclusiveMinimum?: number | boolean;\n exclusiveMaximum?: number | boolean;\n multipleOf?: number;\n\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n\n __absolute_ref__?: string;\n __absolute_recursive_ref__?: string;\n __absolute_uri__?: string;\n\n [key: string]: any;\n}\n\nexport interface OutputUnit {\n keyword: string;\n keywordLocation: string;\n instanceLocation: string;\n error: string;\n}\n\nexport interface ValidationResult {\n valid: boolean;\n errors: OutputUnit[];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ucs2-length.d.ts","sourceRoot":"","sources":["../../src/ucs2-length.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB5C"}
|
package/dist/esm/ucs2-length.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ucs2-length.js","sourceRoot":"","sources":["../../src/ucs2-length.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAgB,CAAC;IACrB,OAAO,KAAK,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,EAAE,CAAC;QACT,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;YAE/D,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBAElC,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["/**\n * Get UCS-2 length of a string\n * https://mathiasbynens.be/notes/javascript-encoding\n * https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\n */\nexport function ucs2length(s: string): number {\n let result = 0;\n let length = s.length;\n let index = 0;\n let charCode: number;\n while (index < length) {\n result++;\n charCode = s.charCodeAt(index++);\n if (charCode >= 0xd800 && charCode <= 0xdbff && index < length) {\n // high surrogate, and there is a next character\n charCode = s.charCodeAt(index);\n if ((charCode & 0xfc00) == 0xdc00) {\n // low surrogate\n index++;\n }\n }\n }\n return result;\n}\n"]}
|
package/dist/esm/validate.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { Schema, SchemaDraft, ValidationResult } from './types.js';
|
|
2
2
|
export type Evaluated = Record<string | number, boolean>;
|
|
3
3
|
export declare function validate(instance: any, schema: Schema | boolean, draft?: SchemaDraft, lookup?: Record<string, Schema | boolean>, shortCircuit?: boolean, recursiveAnchor?: Schema | null, instanceLocation?: string, schemaLocation?: string, evaluated?: Evaluated): ValidationResult;
|
|
4
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,MAAM,EACN,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;AA4CzD,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,GAAE,WAAuB,EAC9B,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAuB,EAC9D,YAAY,UAAO,EACnB,eAAe,GAAE,MAAM,GAAG,IAAW,EACrC,gBAAgB,SAAM,EACtB,cAAc,SAAM,EACpB,SAAS,GAAE,SAA+B,GACzC,gBAAgB,CAgnClB"}
|