massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / node_modules / ajv / dist / compile / jtd / parse.js
index aa0be5b30c6ff60888a48d165ad9e355d7715bc7..96ab74de87b28bb1afcb22c8769d86a0525751be 100644 (file)
@@ -65,23 +65,23 @@ function compileParser(sch, definitions) {
     return sch;
 }
 exports.default = compileParser;
-const undef = codegen_1._ `undefined`;
+const undef = (0, codegen_1._) `undefined`;
 function parserFunction(cxt) {
     const { gen, parseName, char } = cxt;
-    gen.func(parseName, codegen_1._ `${names_1.default.json}, ${names_1.default.jsonPos}, ${names_1.default.jsonPart}`, false, () => {
+    gen.func(parseName, (0, codegen_1._) `${names_1.default.json}, ${names_1.default.jsonPos}, ${names_1.default.jsonPart}`, false, () => {
         gen.let(names_1.default.data);
         gen.let(char);
-        gen.assign(codegen_1._ `${parseName}.message`, undef);
-        gen.assign(codegen_1._ `${parseName}.position`, undef);
-        gen.assign(names_1.default.jsonPos, codegen_1._ `${names_1.default.jsonPos} || 0`);
-        gen.const(names_1.default.jsonLen, codegen_1._ `${names_1.default.json}.length`);
+        gen.assign((0, codegen_1._) `${parseName}.message`, undef);
+        gen.assign((0, codegen_1._) `${parseName}.position`, undef);
+        gen.assign(names_1.default.jsonPos, (0, codegen_1._) `${names_1.default.jsonPos} || 0`);
+        gen.const(names_1.default.jsonLen, (0, codegen_1._) `${names_1.default.json}.length`);
         parseCode(cxt);
         skipWhitespace(cxt);
         gen.if(names_1.default.jsonPart, () => {
-            gen.assign(codegen_1._ `${parseName}.position`, names_1.default.jsonPos);
+            gen.assign((0, codegen_1._) `${parseName}.position`, names_1.default.jsonPos);
             gen.return(names_1.default.data);
         });
-        gen.if(codegen_1._ `${names_1.default.jsonPos} === ${names_1.default.jsonLen}`, () => gen.return(names_1.default.data));
+        gen.if((0, codegen_1._) `${names_1.default.jsonPos} === ${names_1.default.jsonLen}`, () => gen.return(names_1.default.data));
         jsonSyntaxError(cxt);
     });
 }
@@ -109,17 +109,17 @@ function parseElements(cxt) {
     const { gen, schema, data } = cxt;
     parseToken(cxt, "[");
     const ix = gen.let("i", 0);
-    gen.assign(data, codegen_1._ `[]`);
+    gen.assign(data, (0, codegen_1._) `[]`);
     parseItems(cxt, "]", () => {
         const el = gen.let("el");
         parseCode({ ...cxt, schema: schema.elements, data: el });
-        gen.assign(codegen_1._ `${data}[${ix}++]`, el);
+        gen.assign((0, codegen_1._) `${data}[${ix}++]`, el);
     });
 }
 function parseValues(cxt) {
     const { gen, schema, data } = cxt;
     parseToken(cxt, "{");
-    gen.assign(data, codegen_1._ `{}`);
+    gen.assign(data, (0, codegen_1._) `{}`);
     parseItems(cxt, "}", () => parseKeyValue(cxt, schema.values));
 }
 function parseItems(cxt, endToken, block) {
@@ -128,7 +128,7 @@ function parseItems(cxt, endToken, block) {
 }
 function tryParseItems(cxt, endToken, block) {
     const { gen } = cxt;
-    gen.for(codegen_1._ `;${names_1.default.jsonPos}<${names_1.default.jsonLen} && ${jsonSlice(1)}!==${endToken};`, () => {
+    gen.for((0, codegen_1._) `;${names_1.default.jsonPos}<${names_1.default.jsonLen} && ${jsonSlice(1)}!==${endToken};`, () => {
         block();
         tryParseToken(cxt, ",", () => gen.break(), hasItem);
     });
@@ -147,7 +147,7 @@ function parseDiscriminator(cxt) {
     const { gen, data, schema } = cxt;
     const { discriminator, mapping } = schema;
     parseToken(cxt, "{");
-    gen.assign(data, codegen_1._ `{}`);
+    gen.assign(data, (0, codegen_1._) `{}`);
     const startPos = gen.const("pos", names_1.default.jsonPos);
     const value = gen.let("value");
     const tag = gen.let("tag");
@@ -155,28 +155,28 @@ function parseDiscriminator(cxt) {
         const key = gen.let("key");
         parseString({ ...cxt, data: key });
         parseToken(cxt, ":");
-        gen.if(codegen_1._ `${key} === ${discriminator}`, () => {
+        gen.if((0, codegen_1._) `${key} === ${discriminator}`, () => {
             parseString({ ...cxt, data: tag });
-            gen.assign(codegen_1._ `${data}[${key}]`, tag);
+            gen.assign((0, codegen_1._) `${data}[${key}]`, tag);
             gen.break();
         }, () => parseEmpty({ ...cxt, data: value }) // can be discarded/skipped
         );
     });
     gen.assign(names_1.default.jsonPos, startPos);
-    gen.if(codegen_1._ `${tag} === undefined`);
-    parsingError(cxt, codegen_1.str `discriminator tag not found`);
+    gen.if((0, codegen_1._) `${tag} === undefined`);
+    parsingError(cxt, (0, codegen_1.str) `discriminator tag not found`);
     for (const tagValue in mapping) {
-        gen.elseIf(codegen_1._ `${tag} === ${tagValue}`);
+        gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);
         parseSchemaProperties({ ...cxt, schema: mapping[tagValue] }, discriminator);
     }
     gen.else();
-    parsingError(cxt, codegen_1.str `discriminator value not in schema`);
+    parsingError(cxt, (0, codegen_1.str) `discriminator value not in schema`);
     gen.endIf();
 }
 function parseProperties(cxt) {
     const { gen, data } = cxt;
     parseToken(cxt, "{");
-    gen.assign(data, codegen_1._ `{}`);
+    gen.assign(data, (0, codegen_1._) `{}`);
     parseSchemaProperties(cxt);
 }
 function parseSchemaProperties(cxt, discriminator) {
@@ -190,37 +190,37 @@ function parseSchemaProperties(cxt, discriminator) {
         parseDefinedProperty(cxt, key, properties);
         parseDefinedProperty(cxt, key, optionalProperties);
         if (discriminator) {
-            gen.elseIf(codegen_1._ `${key} === ${discriminator}`);
+            gen.elseIf((0, codegen_1._) `${key} === ${discriminator}`);
             const tag = gen.let("tag");
             parseString({ ...cxt, data: tag }); // can be discarded, it is already assigned
         }
         gen.else();
         if (additionalProperties) {
-            parseEmpty({ ...cxt, data: codegen_1._ `${data}[${key}]` });
+            parseEmpty({ ...cxt, data: (0, codegen_1._) `${data}[${key}]` });
         }
         else {
-            parsingError(cxt, codegen_1.str `property ${key} not allowed`);
+            parsingError(cxt, (0, codegen_1.str) `property ${key} not allowed`);
         }
         gen.endIf();
     });
     if (properties) {
-        const hasProp = code_1.hasPropFunc(gen);
-        const allProps = codegen_1.and(...Object.keys(properties).map((p) => codegen_1._ `${hasProp}.call(${data}, ${p})`));
-        gen.if(codegen_1.not(allProps), () => parsingError(cxt, codegen_1.str `missing required properties`));
+        const hasProp = (0, code_1.hasPropFunc)(gen);
+        const allProps = (0, codegen_1.and)(...Object.keys(properties).map((p) => (0, codegen_1._) `${hasProp}.call(${data}, ${p})`));
+        gen.if((0, codegen_1.not)(allProps), () => parsingError(cxt, (0, codegen_1.str) `missing required properties`));
     }
 }
 function parseDefinedProperty(cxt, key, schemas = {}) {
     const { gen } = cxt;
     for (const prop in schemas) {
-        gen.elseIf(codegen_1._ `${key} === ${prop}`);
+        gen.elseIf((0, codegen_1._) `${key} === ${prop}`);
         parsePropertyValue(cxt, key, schemas[prop]);
     }
 }
 function parsePropertyValue(cxt, key, schema) {
-    parseCode({ ...cxt, schema, data: codegen_1._ `${cxt.data}[${key}]` });
+    parseCode({ ...cxt, schema, data: (0, codegen_1._) `${cxt.data}[${key}]` });
 }
 function parseType(cxt) {
-    const { gen, schema, data } = cxt;
+    const { gen, schema, data, self } = cxt;
     switch (schema.type) {
         case "boolean":
             parseBoolean(cxt);
@@ -229,10 +229,14 @@ function parseType(cxt) {
             parseString(cxt);
             break;
         case "timestamp": {
-            // TODO parse timestamp?
             parseString(cxt);
-            const vts = util_1.useFunc(gen, timestamp_1.default);
-            gen.if(codegen_1._ `!${vts}(${data})`, () => parsingError(cxt, codegen_1.str `invalid timestamp`));
+            const vts = (0, util_1.useFunc)(gen, timestamp_1.default);
+            const { allowDate, parseDate } = self.opts;
+            const notValid = allowDate ? (0, codegen_1._) `!${vts}(${data}, true)` : (0, codegen_1._) `!${vts}(${data})`;
+            const fail = parseDate
+                ? (0, codegen_1.or)(notValid, (0, codegen_1._) `(${data} = new Date(${data}), false)`, (0, codegen_1._) `isNaN(${data}.valueOf())`)
+                : notValid;
+            gen.if(fail, () => parsingError(cxt, (0, codegen_1.str) `invalid timestamp`));
             break;
         }
         case "float32":
@@ -240,9 +244,18 @@ function parseType(cxt) {
             parseNumber(cxt);
             break;
         default: {
-            const [min, max, maxDigits] = type_1.intRange[schema.type];
-            parseNumber(cxt, maxDigits);
-            gen.if(codegen_1._ `${data} < ${min} || ${data} > ${max}`, () => parsingError(cxt, codegen_1.str `integer out of range`));
+            const t = schema.type;
+            if (!self.opts.int32range && (t === "int32" || t === "uint32")) {
+                parseNumber(cxt, 16); // 2 ** 53 - max safe integer
+                if (t === "uint32") {
+                    gen.if((0, codegen_1._) `${data} < 0`, () => parsingError(cxt, (0, codegen_1.str) `integer out of range`));
+                }
+            }
+            else {
+                const [min, max, maxDigits] = type_1.intRange[t];
+                parseNumber(cxt, maxDigits);
+                gen.if((0, codegen_1._) `${data} < ${min} || ${data} > ${max}`, () => parsingError(cxt, (0, codegen_1.str) `integer out of range`));
+            }
         }
     }
 }
@@ -258,8 +271,8 @@ function parseEnum(cxt) {
     gen.if(false);
     for (const value of enumSch) {
         const valueStr = JSON.stringify(value).slice(1); // remove starting quote
-        gen.elseIf(codegen_1._ `${jsonSlice(valueStr.length)} === ${valueStr}`);
-        gen.assign(data, codegen_1.str `${value}`);
+        gen.elseIf((0, codegen_1._) `${jsonSlice(valueStr.length)} === ${valueStr}`);
+        gen.assign(data, (0, codegen_1.str) `${value}`);
         gen.add(names_1.default.jsonPos, valueStr.length);
     }
     gen.else();
@@ -269,7 +282,7 @@ function parseEnum(cxt) {
 function parseNumber(cxt, maxDigits) {
     const { gen } = cxt;
     skipWhitespace(cxt);
-    gen.if(codegen_1._ `"-0123456789".indexOf(${jsonSlice(1)}) < 0`, () => jsonSyntaxError(cxt), () => parseWith(cxt, parseJson_1.parseJsonNumber, maxDigits));
+    gen.if((0, codegen_1._) `"-0123456789".indexOf(${jsonSlice(1)}) < 0`, () => jsonSyntaxError(cxt), () => parseWith(cxt, parseJson_1.parseJsonNumber, maxDigits));
 }
 function parseBooleanToken(bool, fail) {
     return (cxt) => {
@@ -283,7 +296,7 @@ function parseRef(cxt) {
     const refSchema = definitions[ref];
     if (!refSchema)
         throw new ref_error_1.default("", ref, `No definition ${ref}`);
-    if (!ref_1.hasRef(refSchema))
+    if (!(0, ref_1.hasRef)(refSchema))
         return parseCode({ ...cxt, schema: refSchema });
     const { root } = schemaEnv;
     const sch = compileParser.call(self, new __1.SchemaEnv({ schema: refSchema, root }), definitions);
@@ -292,19 +305,19 @@ function parseRef(cxt) {
 function getParser(gen, sch) {
     return sch.parse
         ? gen.scopeValue("parse", { ref: sch.parse })
-        : codegen_1._ `${gen.scopeValue("wrapper", { ref: sch })}.parse`;
+        : (0, codegen_1._) `${gen.scopeValue("wrapper", { ref: sch })}.parse`;
 }
 function parseEmpty(cxt) {
     parseWith(cxt, parseJson_1.parseJson);
 }
 function parseWith(cxt, parseFunc, args) {
-    partialParse(cxt, util_1.useFunc(cxt.gen, parseFunc), args);
+    partialParse(cxt, (0, util_1.useFunc)(cxt.gen, parseFunc), args);
 }
 function partialParse(cxt, parseFunc, args) {
     const { gen, data } = cxt;
-    gen.assign(data, codegen_1._ `${parseFunc}(${names_1.default.json}, ${names_1.default.jsonPos}${args ? codegen_1._ `, ${args}` : codegen_1.nil})`);
-    gen.assign(names_1.default.jsonPos, codegen_1._ `${parseFunc}.position`);
-    gen.if(codegen_1._ `${data} === undefined`, () => parsingError(cxt, codegen_1._ `${parseFunc}.message`));
+    gen.assign(data, (0, codegen_1._) `${parseFunc}(${names_1.default.json}, ${names_1.default.jsonPos}${args ? (0, codegen_1._) `, ${args}` : codegen_1.nil})`);
+    gen.assign(names_1.default.jsonPos, (0, codegen_1._) `${parseFunc}.position`);
+    gen.if((0, codegen_1._) `${data} === undefined`, () => parsingError(cxt, (0, codegen_1._) `${parseFunc}.message`));
 }
 function parseToken(cxt, tok) {
     tryParseToken(cxt, tok, jsonSyntaxError);
@@ -313,25 +326,25 @@ function tryParseToken(cxt, tok, fail, success) {
     const { gen } = cxt;
     const n = tok.length;
     skipWhitespace(cxt);
-    gen.if(codegen_1._ `${jsonSlice(n)} === ${tok}`, () => {
+    gen.if((0, codegen_1._) `${jsonSlice(n)} === ${tok}`, () => {
         gen.add(names_1.default.jsonPos, n);
         success === null || success === void 0 ? void 0 : success(cxt);
     }, () => fail(cxt));
 }
 function skipWhitespace({ gen, char: c }) {
-    gen.code(codegen_1._ `while((${c}=${names_1.default.json}[${names_1.default.jsonPos}],${c}===" "||${c}==="\\n"||${c}==="\\r"||${c}==="\\t"))${names_1.default.jsonPos}++;`);
+    gen.code((0, codegen_1._) `while((${c}=${names_1.default.json}[${names_1.default.jsonPos}],${c}===" "||${c}==="\\n"||${c}==="\\r"||${c}==="\\t"))${names_1.default.jsonPos}++;`);
 }
 function jsonSlice(len) {
     return len === 1
-        ? codegen_1._ `${names_1.default.json}[${names_1.default.jsonPos}]`
-        : codegen_1._ `${names_1.default.json}.slice(${names_1.default.jsonPos}, ${names_1.default.jsonPos}+${len})`;
+        ? (0, codegen_1._) `${names_1.default.json}[${names_1.default.jsonPos}]`
+        : (0, codegen_1._) `${names_1.default.json}.slice(${names_1.default.jsonPos}, ${names_1.default.jsonPos}+${len})`;
 }
 function jsonSyntaxError(cxt) {
-    parsingError(cxt, codegen_1._ `"unexpected token " + ${names_1.default.json}[${names_1.default.jsonPos}]`);
+    parsingError(cxt, (0, codegen_1._) `"unexpected token " + ${names_1.default.json}[${names_1.default.jsonPos}]`);
 }
 function parsingError({ gen, parseName }, msg) {
-    gen.assign(codegen_1._ `${parseName}.message`, msg);
-    gen.assign(codegen_1._ `${parseName}.position`, names_1.default.jsonPos);
+    gen.assign((0, codegen_1._) `${parseName}.message`, msg);
+    gen.assign((0, codegen_1._) `${parseName}.position`, names_1.default.jsonPos);
     gen.return(undef);
 }
 //# sourceMappingURL=parse.js.map
\ No newline at end of file